Photo by David Siglin on Unsplash

 2021년 3월부터 2022년 2월까지 1년간 스타트업 수공에서 웹사이트와 앱을 개발하였다.

 처음 수공으로 갔을 때 웹사이트와 어드민은 개발되어 운영중이었고, 마스터(수리 기사님들)용 안드로이드앱은 개발 중이었다. 이 당시 아키텍쳐는 프론트엔드는 react 로 되어 있었고, 백엔드는 ruby, 인프라는 aws ec2 등으로 구성되어 있었다. 내가 입사한 이후 기존 개발자 분들 4분이 모두 다 퇴사하시고, 훌륭한 분들이 입사하셔서 내가 퇴사할 때는 개발팀이 6명까지 되었다.

 마스터용 안드로이드앱은 한 개발자분이 담당하셔서 나는 개발환경까지만 세팅하고 개발에 기여한 부분이 없었다.

 기존 개발자분들이 퇴사하시고, 안드로이드 개발자 한 분과 프론트엔드 개발자 한 분이 있었는데, 이 때 나는 내가 백엔드 이외에 다른 모든 개발내용을 알아야겠다고 판단하고, 백엔드에 집중하기 보다는 생산성을 높이기 위해 최근 프로젝트에서 활용했던 amplify 를 이용해 개발해보려 했으나 한 달이라는 시간내에 react-admin 과 카테고리 관리 기능 등의 기본적인 세팅까지만 마치고 amplify 를 이용한 개발은 멈춰야 했다.

 이후 백엔드 개발자 한 분이 오셔서 java springboot 로 기존 database 를 활용하는 방법으로 새롭게 개발을 시작하였다. 이 때 나는 springboot 를 aws lambda 로 배포하는 것을 테스트해보고, 이후 ecs 를 활용하여 개발, 테스트, 메인 서버를 구성하였다.

 그리고 프론트엔드는 aws amplify 를 통해 nextjs 를 배포하니 버지니아에 배포되어 서버가 느린 현상이 발견되어, serverless 를 활용하여 aws lambda@edge 로 배포하여 프론트엔드 서버 속도를 향상 시켰다. 웹사이트 메인서버 릴리즈 직전에는 카카오, 네이버 등 SNS 로그인을 연계하여 문의가 접수되는 프로세스를 개발하였다.

 이렇게 개발되어가는 중 백엔드 개발자 한 분이 오셔서 어드민 프론트엔드와 백엔드를 개발하셨는데, 이때 해당 개발자 분이 백엔드를 희망하는 것을 확인하고 내가 어드민 프론트엔드를 맡겠다고 했고, 어드민 프론트엔드를 일부 작업하다가 웹사이트 프론트엔드 작업이 많아져서 다시 웹사이트 프론트엔드 작업을 하였다. 그리고 웹 백엔드 작업도 일부 참여하였다.

 웹백엔드에서 어드민 백엔드 서버 분리가 필요하다고 하여 어드민 백엔드는 ec2 와 로드밸런서 등을 활용하여 구성하였고, ecs 배포 시간이 오래걸려서 웹 백엔드 개발서버도 ecs 에서 ec2 로 변경하였다.

 이렇게 백엔드와 프론트엔드의 인프라 부분을 작업하면서 github action 을 활용하여 CI/CD 도 세팅하였다.

 그리고 프론트엔드 개발자 한 분이 더 채용되셔서 개발자 6명이 팀이 되었고, 나는 리액트네이티브 웹뷰를 활용하여 안드로이드 앱과 iOS 앱을 배포하였다. 리액트네이티브 앱은 외주업체에서 2주간 작업하여 넘겨준 소스코드가 있었는데, 앱 웹뷰와 웹사이트가 통신하는 것과 카카오, 애플로그인이 자연스럽게 이루어지도록 웹사이트 프론트엔드 작업과 일부 백엔드 작업도 하였다.

 

 내가 수공에서 일하며 가장 중요하게 생각했던 것은 인프라, 소스코드에 대한 권한을 모두다 공유하고 이상적인 개발환경에서 일하는 것이었다. 이 부분에 대해서는 잘 이루어져서 좋은 팀을 이루고 떠나게 되어 기쁘다. 단 한 가지 아쉬운 점은 이런 상황에서 내 포지션을 명확히 하지 못했다는 것이다. 왜 프론트엔드와 백엔드를 구분해야 하는가? 에 대한 여러 이유 중 한 가지를 배울 수 있던 시간이었다.

Photo by Nina Strehl on Unsplash

짧은 시간안에 개발이 필요하여 워드프레스 기반으로 모임서비스를 만들었다.

 

개발서버를 따로 구축하지 못하고 atom 을 이용해서 운영서버에 ftp로 접근하여 바로 작업을 하였다.

 

각종 플러그인들 수정작업까지 하게되어 wordpress, php 에 대해 깊이 배울 수 있는 프로젝트였다.

 

다음에 이와 비슷한 서비스를 개발하게 된다면, 클라우드 서버를 활용해서 dev, test, prod 환경을 구분하고, 기획 디자인은 figma 를 활용하고, 프론트엔드는 react 나 최신 js 기술을 활용하고, 백엔드는 상황에 맞추어 개발을 하고 싶다.

+ Recent posts