새 팀의 코드베이스에 적응하는 법: 내 코드로 만들어 가는 과정
Scala와 ZIO, DDD 기반 코드베이스를 익히며 새 팀에 녹아든 실전 적응기.
데브시스터즈에서 쿠키런: 마녀의 성 서버를 맡은 5년 차 게임 서버 개발자가, 전혀 다른 코드베이스에 적응한 과정을 공유한다.
이전에는 C# 기반 객체지향 환경에서 일했지만, 새 팀에서는 처음 접하는 Scala와 ZIO를 익혀야 했고, 헥사고날 아키텍처와 DDD도 함께 학습해야 했다. 혼자 학습해야 했던 상황이라 난도가 더 높았지만, 약 1주일은 문법과 프레임워크를 익히고 이후 3주 동안 실제 퀘스트를 수행하며 코드를 몸에 익혔다.
학습 순서는 세 단계였다.
- 문법 학습: Scala 기본 문법과 함수형 개념을 익힘
- 프레임워크 학습: 서버 개발에 쓰이는 ZIO 구조와 동작 방식을 파악
- 상업 코드 분석: 실제 운영 코드와 작은 퀘스트를 통해 경험 축적
초기에는 SignIn 기능부터 파고들며 서버 실행, 로컬 컴파일, 디버깅 흐름을 익혔다. 이후 로그인 보상 기능에서는 liftEvent를 통해 함수형 패러다임에서 사이드 이펙트를 다루는 방식을 실습했고, gRPC 작업에서는 println을 zio.succeed로 감싸는 방식과 for 표현식의 타입 일관성을 이해했다.
운영 로그 작업을 거치며 로그의 중요성과 분석 로그 클래스 계층, 이벤트 발생 패턴도 익혔다. 작은 광고 시스템 피처부터 쿠키 퍼즐 챌린지, 유적 탐험 이벤트 같은 큰 작업까지 이어지며 코드베이스 전체 흐름을 체득했고, 지금은 팀의 가이드 문서까지 작성할 정도로 익숙해졌다고 말한다.
가장 큰 어려움은 함수형 패러다임과 복잡한 Scala 문법, 그리고 문서화 부족이었다. 다만 질문 전에 스스로 원인을 정리해 두면 더 좋은 답을 얻을 수 있었고, 팀원과의 코드 리뷰·피드백, 타 직군과의 소통이 적응을 앞당겼다.
마지막으로, 팀 적응에는 두 가지 방식이 있다고 정리한다. 시간이 있다면 언어와 아키텍처를 충분히 익힌 뒤 작은 기능부터 진행하는 것이 정석이고, 빠른 기여가 필요하다면 프로젝트와 언어를 동시에 익혀야 한다. 다만 어떤 경우든 팀 적응에만 머무르지 말고, 프로젝트 구조와 이론적 배경을 지속적으로 파고드는 태도가 성장으로 이어진다고 강조한다.
이 요약은 원문 이해를 돕기 위한 큐레이션입니다. 저작권은 원저작자에게 있으며, 정확한 내용과 맥락은 원문을 확인하세요.
요약 오류, 출처 표기 문제, 삭제 요청은 문의 · 건의로 알려주세요.