2018년 11월 연구실을 나오면서 서울행 또는 대구에서 창업을 한번 더 할 지 고민하던 차에 전자 계약 서비스를 하고 있는 모두싸인을 알게 되었다. 랜딩 페이지를 봤을 때, 어느 정도 규모도 있어 보였고, MSA, DDD, AWS 등 지방에서는 보기 드문 기술 스택이라 더 흥미를 가지게 되었다.

약 1개월 간의 채용 프로세스를 거쳐 2018년 12월 모두싸인에 백엔드 개발자로 입사하게 되었다. 입사 이후 서비스 개발을 위해 서비스 인프라 및 백엔드 앱들을 살펴 보았다. 모두싸인은 기본적으로 AWS를 사용하며 백엔드 서비스는 MSA로 되어 있었다, 단순히 몇몇 기능을 람다로 작성한 것이 아니라 어플리케이션 레벨에서 컨텍스트가 분리된 서비스들이었다. MSA에서 통합은 메시징 큐를 사용한 이벤트 드리븐 형태로 되어 있었다.

그리고 처음 소스 코드를 확인 했을 때, 뭔가 "지금까지 프로그래밍을 너무 쉽게 생각했나?" 라는 생각이 들 정도로 레이어와 각 컴포넌트들이 정교하게 구성되어 있었다. 2013년 여름 동아리에서 만난 선배들과 함께 플랫폼 서비스를 창업한 이후로 스타트업과 창업 그리고 연구실을 다니면서 나름 모바일, 프론트엔드, 백엔드 그리고 인프라까지 어느정도 건드려 봤기에 프로그래밍에 대해서는 어느정도 자신 있던 터라 그 충격이 조금 더 심했던 것 같다.

첫 프로젝트

서비스 들을 살펴보고 나서 첫 프로젝트를 할당 받았다. 백엔드 마이크로 서비스들 중 하나인 템플릿 서비스를 새 기술 스택으로 포팅 하는 작업이었다. 기존의 템플릿 서비스는 Js와 Express로 되어 있었고, 이것을 Ts와 Koa로 수정해야 했다. 언어와 프레임워크 뿐만 아니라 아키텍처도 수정 해야 했었다. 기존 서비스는 MVC로 구성 되어 있었는데 이를 다음과 같이 Infra, Interface, Application, Domain의 레이어로 나눈 다음 각 레이어 별로 컴포넌트들을 추가 해야 했다.

Domain

Infrastructure

Application