스타트업

[스타트업/기술] WebP 변환을 통한 이미지 로딩 최적화 및 GCS 업로드 자동화 | PNG 대비 용량 89%, 지연 시간 82% 개선

지난번 Firebase Storage의 오버헤드를 줄이기 위해 GCP Bucket 직접 호출로 전환 하며 Latency를 한 차례 개선한 적이 있다. 당시 네트워크 홉(Hop)을 줄임으로써 유의미한 성능 향상을 이뤄냈지만, 프로덕트를 직접 사용해 보며 여전히 아쉬움이 남았다. 이미지 하나를 불러오는 데 여전히 1초 남짓한 시간이 걸리고 있었기 때문 이다. 지난번 1차례 개선 결과 페이지 이동과 동시에 매끄럽게 이미지가 렌더링되는 다른 서비…

hyeon_B

[스타트업/기술] SSoT 기반 카탈로그 시스템 설계 | 파편화된 가격 데이터의 비효율성을 극복하고 프로모션 구조 구축하기

서비스를 고도화하는 작업을 진행하면 할수록 초기에 잘 동작하는 것처럼 보였던 설계가 발목을 잡는 순간이 온다. 최근 우리 서비스의 결제 및 가격 구조를 개편하면서 이 사실을 다시 한번 뼈저리게 느꼈다. 기존에는 각 콘텐츠마다 가격을 개별적으로 설정할 수 있도록 설계되어 있었다. 하지만 본격적으로 서비스 출시를 앞두고, 프로모션을 기획해야 하는 시점이 오자 이 구조는 기술 부채로 다가왔다. 오늘은 파편화된 데이터 구조의 한계를 SSoT(Sing…

hyeon_B

[스타트업/이슈] Google Play 인앱 결제 API | "insufficient permissions" 오류

지난 시간 을 통해 만든 서버에서 구글 플레이(Google Play) 인앱 결제 영수증 검증을 위해 백엔드 서버에서 API를 호출하는 과정 중 참 황당한 에러를 마주했다. 서버 로그에 남은 에러 메시지는 다음과 같았다. error_code: "internal" error_message: "The current user has insufficient permissions to perform the requested o…

hyeon_B

[스타트업/기술] Node.js & App Store 인앱결제 | 결제 시스템 아키텍처 (Part 2)

지난 글 에서는 안드로이드 생태계에서 구글 플레이 API를 활용하여 서버 검증 아키텍처를 어떻게 구축하는지 다루었다. 클라이언트의 상태를 신뢰하지 않고 서버가 주도권을 쥐어야 한다는 원칙은 iOS 환경인 앱스토어(App Store) 결제에서도 동일하게 적용된다. 하지만 Flutter를 통해 크로스 플랫폼 앱을 개발하면서, 구글과 애플이 Proof of Purchase을 다루는 방식에 꽤 큰 아키텍처적 차이가 있음을 알게 되었다. 애플은 WWD…

hyeon_B

[스타트업/기술] Node.js & Google Play 인앱결제 | 결제 시스템 아키텍처 설계 (Part 1)

이제 실제로 사용자에게 가치를 제공하고 그에 대한 정당한 대가를 받는 '결제 시스템'을 구축해야 할 시점이 왔다. 현재 개발 중인 서비스에 S-Coin이라는 재화 시스템을 도입하면서, 구글 플레이 스토어(Android)와 앱스토어(iOS)의 인앱결제(In-App Purchase) 프로세스를 연동하기로 했다. 이 글에서는 2편에 걸쳐 구성될 결제 시스템 구축기의 첫 번째로, 구글 플레이 스토어 인앱결제의 아키텍처와 검증 원리에 대…

hyeon_B

[스타트업/기술] GitHub Actions CI 파이프라인 | 프로덕션 배포 전 런타임 에러를 차단하는 테스트 자동화

서비스 출시 준비 중 발견한 치명적인 문제점 지난 시간 에 이어 sleuth의 백엔드 서버(FastAPI & Cloud Run) 로직을 프로덕션 환경을 위해 고도화하는 작업에 집중하고 있다. 평소처럼 로컬 환경에서 새로운 기능을 테스트해 보니 매끄럽게 잘 동작하기에, 큰 고민 없이 main 브랜치에 코드를 직접 푸시하고 배포를 진행했다. 팀에 개발을 담당하는 인력이 많이 없기도 하고, 백엔드 서버를 지금은 혼자 구축하고 있기에 편의를…

hyeon_B

[스타트업/기술] GCP Vertex AI | 프로덕션 환경을 위한 GeminiAPI 마이그레이션

지난 글들에서는 Sleuth의 코어 로직을 클라이언트에서 분리하여 FastAPI로 백엔드를 구축하고, 이를 GCP Cloud Run이라는 서버리스 인프라에 안착시킨 과정을 정리했다. (Cloud Run의 Scale-to-Zero와 콜드 스타트 최적화에 대한 내용은 이전 포스팅 을 참고하길 바란다.) 내부 아키텍처가 갖추어졌으니, 이제 실제 운영 환경의 쏟아지는 트래픽을 견뎌낼 수 있는지 검증할 차례다. 하지만 테스트를 시작하자마자 코드가 아닌…

hyeon_B

[스타트업/기술] FastAPI와 클라우드 네이티브 | Cloud Run 도입과 백엔드 전환기 (Part 2)

앞서 다룬 FastAPI 는 LLM serving을 최우선 목표로 삼은 서비스에서 파이썬의 AI 생태계를 완전히 활용할 수 있다는 점에서 최적의 기술이었다. 코드가 준비되었으니 다음은 '이 서버를 어디에 띄울 것인가'라는 물리적인 인프라 고민으로 넘어갈 차례다. 이 챕터에서는 FastAPI 기반의 Sleuth 백엔드가 어떻게 클라우드 네이티브의 이점을 활용할 수 있었는지 정리해보고자 한다. Cloud Run과 Scale-to-Z…

hyeon_B

[스타트업/기술] Firebase Storage 이미지 로딩 최적화 | GCP Bucket 직접 호출을 통한 Latency 개선

Firebase Storage의 편리함 속에 숨겨진 Latency 개발 중인 프로덕트에서 이미지 로딩 속도가 눈에 띄게 느리다는 것을 발견했다. 사실 처음 원격 파일 저장소를 활용할 때도 "왜 이렇게 로딩 속도가 느릴까" 생각은 하고 있었지만 지금껏 미뤄오다 드디어 해결하고자 한다. (연구에 따르면 지연시간이 1초 증가할 때마다 이탈률이 무려 10% 증가 한다고...!) 네트워크 탭을 열어 프로파일링을 해보니, 이미지 한 장…

hyeon_B

[스타트업/기술] FastAPI와 클라우드 네이티브 | 클라이언트 LLM 호출의 한계와 백엔드 전환기 (Part 1)

창업을 준비하며 AI 기반의 인터랙티브 추리 게임 'Sleuth(슬루스)'를 개발하고 있다. 유저가 용의자와 직접 대화를 나누며 단서를 찾아내는 것이 핵심 코어 로직이다 보니, 자연스럽게 LLM(거대 언어 모델)과의 통신이 서비스의 척추 역할을 하게 되었다. 초기 프로토타입에서는 개발 속도를 위해 클라이언트(프론트엔드)에서 직접 API를 호출하는 방식을 택했었다. 당장의 결과물은 눈에 보였지만, 게임의 룰이 복잡해지고 출시가 다…

hyeon_B

[스타트업/협업] 디스코드(Discord), 단순한 메신저를 넘어 우리 팀의 가상 오피스가 되기까지

물리적 거리라는 장벽 속 협업에 대한 고민  지난 회고 의 마지막 부분에서 언급하였듯, 1년 동안 팀을 이끌어가며 가장 큰 고민 중 하나는 '팀의 Alignment'이었다. 우리 팀원들은 모두 물리적으로 떨어져 작업한다. 각자의 공간에서 몰입하는 것도 좋지만, 서로가 지금 무엇을 고민하는지, 어떤 작업을 하고 있는지 실시간으로 체감하기 어렵다는 점이 늘 발목을 잡았다. (학교의 창업 사무실에 있으면서 다른 팀들이 옆에서 곧바로 …

hyeon_B

2025년 회고, 끊임없이 Goin' up, up, up 했던 순간들

2025년 회고, 끊임없이 Goin' Up, up, up 했던 순간들 어느덧 2025년이 얼마 남지 않았다. 어째 매년 시간이 점점 빠르게 흐르는 기분인데, 1년 전의 나보다 훨씬 성장한 기분이라 느낌이 다르다. 항상 블로그를 시험 공부용, 정보 전달용으로 작성해왔지만 이번만큼은 내 경험을 온전히 반추해보고자 한다. 올해 있었던, 해왔던 일들을 정리해보면 크게 창업 과 학업 으로 나눌 수 있다. 세부적으로 보면 1년 동안 이렇게 많은…

hyeon_B

[Firebase] 왜 스타트업의 빠른 프로토타이핑에 'BaaS'가 필수일까?

창업가로서 서비스를 구상하고 MVP(Minimum Viable Product)를 기획하다 보면 항상 '리소스의 한계'라는 현실적인 벽에 부딪히게 된다. 특히 아이디어를 빠르게 시장에서 검증해야 하는 프로토타이핑 단계에서, 사용자가 마주할 프론트엔드 개발에 더해 인증, 데이터베이스, API 서버, 파일 스토리지까지 갖춘 '제대로 된' 백엔드를 구축하는 것은 엄청난 시간과 인력을 요구한다. '이 아이디어가 정말…

hyeon_B
게시물 더보기
검색결과 없음