모바일 앱에서 sqlite를 사용하는 이유

"Frontend development is just showing json data in a pretty way" "프론트엔드 개발은 단지 json 데이터를 예쁘게 보여주는 일이다" 유명한 개발자 유머입니다. 이 유머는 프론트엔드(모바일 앱)을 단지 백엔드에서 생산한 데이터의 뷰어(단말기) 정도로 격하시키는 거죠. 물론 현존하는 많은 서비스에서 위 유머를 반박하기 힘든 경우가 꽤 있을 겁니다. 백엔드는 비즈니스 로직과 데이터 처리/저장을 담당하고, 프론트엔드는 사용자의 입력을 백엔드에 전달하고 백엔드에서 처리된 데이터를 단순히 사용자에게 보여주는 거죠. 이런 단순한 설계로 인해, 백엔드는 복잡해지고, 백엔드 API 콜의 횟수가 늘어나며, 백엔드가 처리할 데이터 양이 증가함에 따라 서버 성능이 저하됩니다. 이는 곧 서비스 비용의 증가로 이어지게 되죠. 모바일 앱이 동작하는 환경이 예전 2G 폰 정도라면 위 구조를 바꾸기 힘들 수도 있습니다. 하지만 스마트폰의 컴퓨팅 파워가 나날이 증가하고 있는 요즘이라면, 위 구조에 대한 다음과 같은 근본적인 재검토가 필요할 수 있습니다. 1. 프론트엔드가 비즈니스 로직의 많은 부분을 처리할 수 있어야 합니다. 프론트엔드가 비즈니스 로직을 전처리하고 최종 결과만 백엔드에 전달하는 방식을 도입함으로써 백엔드의 부하를 최소화하는 것입니다. 2. 단순 조회성 데이터는 백엔드 API 콜을 통하지 않고 프론트엔드 내부에서 직접 쿼리해서 사용할 수 있어야 합니다. 이는 백엔드에서 관리하는 조회성 데이터베이스를 프론트엔드로 이동시킨다는 것을 의미합니다. 이를 통해 벡엔드 API 콜 횟수를 줄일 수 있습니다. 3. 다른 사용자들과 공유되지 않는 데이터는 프론트엔드 내부에서 관리할 수 있어야 합니다. 벡엔드는 사용자 데이터의 저장 스토리지만을 제공하는 방식으로 멀티 디바이스 호환을 유지하도록 합니다. 벡엔드는 사용자 데이터의 형식을 알 필요없이 단순한 파일 호스팅만을 담당하면 됩니다. 위의 3가지 목표를 달성하기 위해 프론트엔드에 필요한 것이 로컬 데이터베이스입니다. 이를 위한 적절한 데이터베이스가 sqlite입니다. 현재 sqlite는 안드로이드와 iOS에서 모두 사용할 수 있고, 웬만한 SQL 문은 높은 성능으로 처리할 수 있습니다. 컴퓨팅 자원의 활용을 백엔드에서 프론트엔드로 옮기게 될 때의 성능 상의 이점은 상당하다고 생각합니다. 요즘의 트렌드인 클라우드 컴퓨팅에서 에지 컴퓨팅으로의 이동과도 유사하다고 볼 수 있죠. 프론트엔드에 sqlite를 도입하여 간단한 방식의 처리부터 시작해본다면, 더욱 정교한 시스템 설계를 위한 감을 잡을 수 있을 것 같습니다.

다음 내용이 궁금하다면?

또는

이미 회원이신가요?

2023년 7월 3일 오전 9:44

 • 

저장 41조회 1,574

댓글 0

    함께 읽은 게시물

    무너지고 있는 프론트엔드, 백엔드 직군의 경계에 대한 고찰

    AI 기술이 우리 일상과 산업 전반에 스며들면서 소프트웨어 개발 환경 역시 큰 변화의 물결을 맞이하고 있다. 특히 코딩을 돕는 AI 에이전트의 등장은 개발 생산성에 대한 큰 변화를 만들고 있다. 나 역시 이러한 변화를 체감하며, 나에게 익숙한 소프트웨어 개발의 대표적인 두 축인 프론트엔드와 백엔드 영역에서 AI 기술이 미치는 영향과 그로 인해 변화하는 소프트웨어 엔지니어의 역할에 대해 개인적인 생각을 정리해 본다.

    ... 더 보기

     • 

    저장 33 • 조회 4,583


    Next.js 프로젝트를 AWS EKS에 배포하며 배운 것들

    ... 더 보기

    쿠버네티스를 활용한 클라우드 네이티브 데브옵스 | 존 어런들 - 교보문고

    product.kyobobook.co.kr

    쿠버네티스를 활용한 클라우드 네이티브 데브옵스 | 존 어런들 - 교보문고

     • 

    저장 14 • 조회 1,353


    직장생활은 결국 윗사람과 아랫사람이 나뉠 수밖에 없다. 기업들이 아무리 평등한 관계를 추구한다고 해도, 고용인과 피고용인의 관계마저 사라지는 것은 아니다. 아무리 평등하다 해도 월급 주는 사장님이 을이 될 수는 없지 않은가? 아무리 작은 조직이라도 일을 맡기는 사람과 일을 하는 사람이 존재한다.

    ... 더 보기

    리더 입장에서 보는 ‘일 못하는 직원’ TOP8,리더 입장에서 보는 ‘일 못하는 직원’ TOP8

    체인지그라운드,체인지그라운드

    리더 입장에서 보는 ‘일 못하는 직원’ TOP8,리더 입장에서 보는 ‘일 못하는 직원’ TOP8

    🌎 해외에서 일하면 뭐가 좋을까요❓

    외국어를 사용해서? 돈을 더 많이 벌어서? 새로운 기회가 많아서? 글로벌 경력을 쌓을 수 있어서?

    ... 더 보기

    IT 회사의 업무에서, 지금까지는 디자이너와 특히 개발자가 병목이었는데, 대 AI 시대에는 기획자가 병목이 될 수도 있겠다. 조금이라도 규모가 있는 기업에서의 가장 큰 병목은 보통 의사결정자라는 것을 생각해보면 그렇다.


    즉, 실무보다 의사결정을 AI에게 맡기는 것이 병목을 해소할 수 있는 가장 확실한 방법이며, 그러므로 부장님과 사장님을 AI로 대체하는 것이야말로 인류의 번영을 위한 가장 빠른 지름길이다. (아님. 아니 맞나?!)


    게임의 완성도는 고객이 결정한다

    예술 작품은 작가의 생각을 표현하는 도구다. 따라서, 작가의 의도를 얼마나 잘 담아내고 있느냐가 중요하다. 그 의도를 대중이 몰라줄 수도 있고, 알지만 공감하지 못할 수도 있다. 그래도 괜찮다. 대중의 인정을 받지 못해도 예술성은 사라지지 않는다. 잘 만든 작품으로 남아있을 수 있다.

    ... 더 보기