Supabase에서 자체 API 서버로 전환하는 과정에서 제어의 역전(IoC)과 의존성 제어를 어떻게 활용했는지에 대한 경험
배경
처음에는 개발자가 2명뿐이었다. AI 엔지니어와 웹 개발자인 나.
대부분의 스타트업들이 그렇듯이 빠르게 시장에 던져보고, 반응을 살펴야했다. 그렇기 때문에 Supabase는 우리에게 최적의 솔루션이었다.
서비스 초기, 우리 팀은 제품 개발과 신규 기획, 마케팅 등 수많은 일들을 빠른 시간 안에 해내야했다.
하지만 동시에 제품의 엔지니어로서 기술 부채를 쌓지 않기 위해 외부 의존성을 제어할 수 있는 아키텍처에 대한 고민을 놓치지 않고싶었다.
사실 지금이나 그 때나 햇병아리 개발자인 것은 똑같지만, 그 당시에는 책에서 배운 개념들을 실무에 녹여내고 싶어했던 것 같다.
- 외부 의존성에 직접 의존하지 말 것
- 구현이 아닌 추상화에 의존할 것
돌이켜보면, 당장 내일 사라질지도 모르는 제품에 오버 엔지니어링을 한 게 아닐까 싶기도하다.
- 아마 웹 개발자 팀원이 한 명이라도 더 있었다면, 왜 이런 구조를 택했냐고 했을 것 같다.
하지만 마냥 근거 없는 선택은 아니었다. 판단 기준은 아래와 같았다.
- Supabase는 MVP에 쓰일 백엔드이다.
- 추상화로 인한 복잡성 비용 대비 이점이 있는가?
- 구독 결제와 같은 비즈니스 로직이 Supabase만으로는 힘들었다.
- 내가 백엔드 스킬이 부족해서 그럴 수도 있다.
