안녕하세요, 이번 글은 그린필드 프로젝트를 하며 경험한 몇 가지 굵직한 것 들을 써보려 합니다.

저는 프런트엔드 개발자로써, react-native 앱을 만들었습니다.

1. 스키마는 모든 것이다.

여기서 말하는 스키마는 http rest api를 통해서 내려오는 스키마를 말합니다.

제가 조금 축약해서 제목을 붙여 보았는데요, 조금 더 상세한 제목으로 가자면 도메인에 따른 DB스키마는 모든 것 이다 라고 부제를 붙여도 무방할 정도 입니다.

제가 일반적으로 경험한 빅테크나 자신이 맡은 분야 외에 신경 쓰지 않아도 될 정도로 분업화가 많이 된 기업에서는 사실 스키마에 대한 의사결정을 모두 해서 내려오기 때문에 서버팀과 같이 논의할 일이 없었습니다. 결론적으로, 자신이 맡은 분야만 볼 수 있고 그 뒷단에서 이루어지는 의사결정은 경험하지 못 했던 것이 사실입니다.

이번 프로젝트를 진행하면서는 서버팀과 협업하여 http schema에 대한 논의부터 같이 해 나갔습니다.

그 논의를 할 때에 직접적으로 도메인에 따른 DB 테이블까지는 논의한 건 아닙니다. 하지만 스키마를 추상화 하면서 서버와 클라이언트 간에 공통 규약을 설정했습니다.

그러다보니 가장 크게 와닿았던 점은 결론적으로 유저들이 인터랙션을 하고 쓰는 프로덕트는 모든 것이 뒷단에서 이루어지는 관계형 DB 테이블의 움직임을 형상화 한 것 이구나 라는 것을 깨달았습니다.

따라서 도메인에 따른 스키마는 굉장히 중요합니다. 해당 프로덕트의 뼈대와 기반을 마련해주는 녀석들이니까요.

2. 아, 그렇다면 나도 이제 무언가 할 수 있겠구나!

두번째로 들었던 생각은 이제 앱을 배포할 때 쯤 모든 것을 완성해 나갈때 쯤 느꼈던 생각입니다.

제가 사실 사이드 프로젝트를 하면서 가장 크게 직면했던 트러블은 과연 내가 어디서 부터 기반을 잡고 작업 해야 할까? 였습니다.

커리어를 클라이언트 개발자로 시작하고 해 왔다보니 풀스택으로 개발 할 때에 어느 부분을 중점적으로 생각하고 그 부분부터 뻗어나가야 할지에 대한 감이 크게 오지 않았습니다. 이러다보니 재미를 잃게 되고 중단하게 된 사이드 프로젝트들이 꽤나 많았습니다.

그래서 요즘은 아이디어는 있었지만 하다보니 중단 된 사이드 프로젝트들을 열심히 진행 하고 있습니다.

서브도메인을 기반으로 여러 서비스를 일단 속도감 있게 만들어 나가고 있는데요, 요즘은 yarn workspace를 많이 쓰는 트렌드이다보니 공통 유틸들은 모듈화를 해서 하나의 package로 관리 중 입니다.

또한 AWS 기반의 로드밸런서와 route 53 을 사용하여 각 서비스들에 대한 서브도메인을 붙여서 서버를 배포 및 관리 중이고, vercel + next.js 기반으로 클라이언트를 배포 및 관리 중입니다.

← Go home