React 웹으로 네이티브 앱 같이 만들기

웹 플랫폼으로 앱 개발하기

by nlookme

요즘 코딩은 ‘바이브(Vibe)’라는 말이 어울릴 정도로 참 쉬워졌습니다. AI의 도움을 받으면 React 웹으로 앱을 개발하는 것쯤은 더 이상 무모한 도전이 아닌 시대가 되었죠. 누구나 쉽게 앱을 뚝딱 만들어내는 풍경 속 서, 저는 1년 전 시작했던 저의 프로젝트 nlook.me를 세상에 내놓으며 조금 다른 이야기를 들려드리고 싶습니다.


1. React라는 선택, 그리고 '앱스러움'에 대한 집착

처음 개발을 시작할 때 누구나 마주하는 질문이 있습니다. “어떤 언어와 플랫폼을 선택할 것인가?” 1인 개발자로서 유지보수와 효율을 고민한 끝에 저의 선택은 ‘React 웹’이었습니다.

하지만 React Native가 아닌 순수 React로 ‘앱 같은 사용자 경험(UX)’을 구현하는 건 결코 만만한 일이 아니었습니다. 서버 로직을 짜는 것보다 클라이언트의 인터랙션, 손끝에서 느껴지는 미세한 반응 속도를 잡는 데 훨씬 많은 시간을 쏟아야 했죠. 특히 Capacitor를 사용해 웹의 유연함 위에 네이티브 앱의 옷을 입히는 과정은 0.1초의 레이턴시(Latency)라도 줄여보려는 치열한 싸움이었습니다.


백엔드는 높은 생산성과 고성능을 보장하는 Go(Golang)를 선택했고, 전 세계 어디서든 지연 없는 접속을 위해 Fly.io 에지 서버에 배포했습니다. 단순히 네이티브 플랫폼으로 만들었다면 더 쉬웠을지도 모릅니다. 하지만 서비스가 고도화될수록 웹이라는 선택이 옳았다는 걸 체감합니다. 복잡해지는 기능 속에서 플랫폼마다 같은 코드를 중복해서 짤 필요가 없었으니까요. AI가 기술적인 한계는 어느 정도 해결해 주었지만, 기능을 넣고 빼는 UX의 결정만큼은 오직 만드는 이의 고통스러운 고민이 필요한 영역이었습니다.


2. 기능이 늘어날수록 멀어지는 사용자

배포만 하면 누구나 다운로드해 줄 것 같았던 기대와 달리, 현실의 지표는 냉정했습니다. 개발의 영역을 넘어 마케팅과 홍보라는 낯선 바다로 뛰어들어야 했죠.

지난 1년, AI가 모든 걸 다 해줄 것만 같았던 시기에 저는 수많은 기능을 의욕적으로 추가했습니다. 하지만 기능이 많아질수록 서비스는 점점 복잡해졌고, 어느 순간 제가 만든 서비스는 ‘나만 아는 기능’들로 가득 찬 저만의 성(Castle)이 되어 있었습니다. 사용자를 위해 만든 기능들이 역설적으로 사용자를 밀어내고 있었던 셈입니다.


3. 다시, 단순함의 위대함으로 : AI를 위한 컨텍스트

이 지점에서 저는 중요한 깨달음을 얻었습니다. 기술이 화려해질수록 서비스의 본질은 결국 **‘단순함에서 오는 사용자 경험’**에 있다는 사실을요.

그래서 요즘은 역설적으로 기능을 하나씩 빼는 작업을 하고 있습니다. “아이들도 쉽게 사용할 수 있는 서비스인가?”라는 질문을 스스로에게 던지며 단계를 줄이고 이해하기 쉬운 구조로 되돌아가는 중입니다. 복잡함을 걷어내고 나니 비로소 서비스가 나아가야 할 방향이 선명하게 보이기 시작했습니다.

흥미로운 건, 이렇게 단순화된 기록이 인간뿐만 아니라 AI에게도 훌륭한 ‘맥락(Context)’이 된다는 점입니다. nlook.me는 MCP(Model Context Protocol) 서버를 통해 AI가 사용자의 할 일과 아이디어를 즉시 이해하고 협업할 수 있는 구조로 진화했습니다. 기능을 덜어냄으로써 비로소 AI와 인간이 소통할 수 있는 가장 깨끗한 인터페이스가 완성된 것이죠.


4. 나만의 서사를 만든다는 것

기술이 평준화된 지금, 중요한 것은 ‘누가 더 많은 기능을 만드느냐’가 아니라 ‘어떤 경험을 선사하느냐’인 것 같습니다. nlook.me는 저에게 단순한 앱 이상의 경험을 주었습니다. 기능을 채우려는 욕심을 버리고 본질에 다가가는 과정, 그 자체가 저에게는 가장 큰 성장이었습니다.




누구나 도전할 수 있는 시대입니다. 여러분도 자신만의 서비스를 직접 만들고 도전해 보셨으면 좋겠습니다. 그 과정에서 마주하는 수많은 고민을 통해 여러분만의 본질을 발견해 보시길 진심으로 권합니다.

수, 금, 일 연재