2019년 회고
2018년 회고를 정말 간단히 했었는데, 벌써 2019년이 몇일 남지 않았다. 올해는 굵직한 사건들이 많은 한해 였기도 하고 나의 생활환경에 큰 변화가 생긴해이기도 한데 몇가지 카테고리로 나눠서 회고를 해보고자 한다.
먼데이 프로젝트
우아한형제들 (이하 우형)을 다닐때 배달의민족 광고, 가게, 업주시스템을 모두 신규로 재개발하는 프로젝트를 진행 했었다. 18년 12월 말에 프로젝트 범위가 정해지고 (아직도 왜 그렇게 정해졌는지가 궁금하다) 4월 1일을 목표로 개발을 시작했다. (그때 당시 말도 안되는 일정…)
개발을 진행함에 있어 타인의 설계를 이해하며 구현해 나가는게 너무 어려운 일이 였다. 그 결과로 내가 이해한 방향으로 1주일 동안 작업했던 결과물이 설계의 방향과 맞지 않아 전부 버리고 재개발해야 했으니 말이다. 이때 정말 심적으로 힘들었었는데 팀장님이 해주신 말이 큰 힘이 되었던것 같다.
“개발자는 불확실한 상황을 하나씩 정리해 나가는 일이다. 그렇지 않다면 단순한 코더나 기획자가 정리해 주는 일만하는 개발자일지도 모른다”
이때 까지만 해도 난 늘 미래가 불확실하면 분안해하면서 팀장님에게 미션을 요구하거나 청사진을 그려달라고 요구 하고는 했었다. 하지만 먼데이라는 큰 프로젝트를 하면서 불확실한 상황도 앞에 닥친일을 하나씩 하나씩 정리해 나가면 해결할 수 있다는 큰 경험을 얻었다. (사실 팀장님이 많이 정리 해주었는데, 너무 감사하고도 죄송하다)
일정이 빠듯한 상황에서 페어코딩과 극도의 몰입으로 스프린트가 진행되었다. 처음에는 3주 주기로 시작을 했었는데 예상보다 늦어지고 있어서 1주일 주기로 변경되었다. 1주일 단위로 목표설정과 계획하고 스프린트 종료시 데모데이를 진행 했었다. 첫 데모시연에서 목표했던 기능들을 모두 개발을 했지만 데모시연에서 동작하지 않아 자존심이 크게 상했던 일이 있었다. 그 다음 스프린트 부터는 데모데이를 준비함에 있어 완성도를 높이기 위해서(돌아가는 코드를 만들기 위해서) 엄청나게 노력을 했던 기억이 있다. 이런 과정을 통해서 시스템간의 통합에 대해서 피드백을 빨리 얻고 대처를 할 수 있었던 것 같다.
100 명 가까운 인원이 동시에 하나의 목표를 위해서 약 4개월간 개발한 결과물이 배달의민족 stage 앱에서 동작할때의 감정은 아직도 생생하다. 한마디로 믿기지가 않았다. 동작하고 있는게 이상했고, 배달 주문까지 동작 되는것도 이상했다. 불가능할 것 같았던 프로젝트가 오픈을 앞두고 있었기 때문이다. 지금에 와서 뒤돌아 보면 정말 배민은 일을 되게 만드는 조직인것 같다. 결과적으론 큰 문제없이 오픈을 했고 개인적으로는 프로젝트를 통해서 얻은 것도 많았다.
그럼 먼데이 프로젝트를 통해서 기술적으로 배운점을 정리 해보면
- 이벤트를 통한 시스템 통합,
- 프로젝트 초반에는 모듈리스 모놀리식 구조에서 2개의 시스템으로 점진적인 분리해가는 과정
- 총 4개의 데이터소스와 3개의 API 모듈 3개의 배치 application 이 하나의 코드베이스 였었다가 2개 / 1개로 분리 했음,
- 일정이 빡빡한 상황에서 어떻게 스프린트를 돌려야 하는지에 대한 배움
- 사이클은 짧을수록 좋음, 목표설정 플래닝을 하고, 사이클 종료시 베타 서버에서 데모 진행
마지막으로는 최고의 팀웍이 프로젝트를 성공적으로 이끌 수 있었지 않나 생각한다. 마이그레이션, 광고캠페인+인벤토리, 광고빌링 3가지 모듈이 유기적으로 스프린트간의 일정을 지켜가면서 개발을 진행 했었다. 기회가 된다면 정말 다시 한번 같이 일해 본다면 좋을 것 같다.
카카오 이직
그렇다. 이직을 했다. 5년동안 우형을 다니면서 많이 배우기도 했는데, (글 링크) 새로운 곳으로 이직을 했다. 왜 이직을 하게 되었는지에 대해서는 정말 많이 이유들이 복합적으로 더해져서 실행에 까지 옮기게 되었던 것 같다.
첫째는 앞으로 3년간 어떤일을 하고 싶냐고 했을때 꼭 배민이 아니어도 괜찮을 것 같다는 생각이 들었다. 여러 다른 테크기반의 기업에서 일해보고 싶었고 거기에서 내가 얼만큼 영향을 발휘할 수 있을 지도 궁금했었다.
둘째는 온라인 광고 시스템이 실제 어떻게 구현되어 있는지 궁금했고 실제로 개발하면서 운영해보고 싶었다. 실제 와보니 IAB 라는 국제 표준이 있었고 그에 따라 시스템에 구현이 되어 있었다.
결과론적이지만 이직을 하고 보니 이미 우아한형제들은 글로벌 기업이 되어버려서 난 글로벌 기업에서 국내 대기업으로 이직한셈이 되어 버렸다.
그리고 이직을 준비하면서 기술적으로 정말 많이 배우게 되었다. 어떤분은 2~3년 주기로 의도적으로 면접을 보러 다닌다고도 했었다. 왜 그렇게 하는지 이해 될 정도로 공부를 많이 되고 나의 과거를 돌아보는 계기가 되었다.
Kotlin 스터디
이직을 하고 나서 약간 즉흥적으로 코틀린 스터디를 시작하게 되었다. 스터디는 이미 우형다닐때 많이 진행했고 끝까지 성공시켰던 스터디도 많았었는데 큰 걱정을 하지 않고 시작했었다. 결과는 4명이서 시작해서 무려 2명이나 남아서 책을 끝낼 수 있었다.
코틀린 스터디를 하면서 모던한 언어들이 지원하는 문법들이나 관례들에 대해서 많이 배우게 되었으며, 자바로 작성된 코드의 코드리뷰시에 지적하는 항목들이 왜 주요 리뷰 대상이 되는지를 알 수 있었던 계기가 되었던것 같다. 근데 아직 코틀린의 문법들은 너무 낯설다. 실제 프로젝트에 사용 할 수 있을 지는 모르겠지만 개인 프로젝트에서는 조금씩 사용해 보고 싶다.
올해는 상대적으로 많은 스터디를 못했던것 같다. 내년에서 파트내에서도 스터디를 따로 진행해보고 싶다.
새로운 조직
현재 카카오에서 속한 조직은 광고플랫폼의 빌링 모듈을 담당하고 있다. 광고 데이터 파이프라인의 첫 시작이기도 하고 광고 데이터를 통해 과금해야 되는 데이터를 필터링하고 처리하는 시스템을 담당한다.
처음 합류해서 일을 할 때 동료들과 신뢰관계를 구성하는데 시간을 많이 들였던 것 같다. 히스토리 파악을 위해서 위키, 아지트등을 많이 둘러보고 읽어 봤던것 같다. 왜 이렇게 만들었을까? 왜 이렇게 할까? 분명 이유가 있을꺼야. 를 되내이며 업무 파악을 했었던것 같다. 새로운 시작은 모든게 낯설고 어색했다. 그리고 간혹 아직 우형을 다니는건지 카카오를 다니는 건지 구분이 안될때도 있고 향수병이 가끔 올때도 있었다.
하지만 이미 코드리뷰, 회고에 대해서 진행하고 있었고 동료들이 이런 문화에 대해서 거부감이 없었다. 그래서 오프라인 코드리뷰를 제안해서 매주 코드에 대해서 논의하고 우리 프로젝트 단위의 규약을 만들어 갔다. 또한 회고를 주기적으로 제안하면서 시스템이나 개발문화들을 점진적인 개선을 해가고 있다. 그래서 사실 내년이 더 기대가 된다.
개발공부
기술적으로는 클린 아키텍쳐, 오브젝트, 우아한 객체지향, 모듈리식 모놀리스 등을 통해서 소프트웨어 아키텍쳐에 대해서 관심이 많아 지는 계기가 되었다. 작게는 메소드, 클래스 단위부터 모듈, 시스템단위까지 어떻게 하면 변화에 유연하고 약한 의존성을 가지고 설계해야 할지에 대한 관심이 많아 졌다.
내년에는 이런 주제들로 논의할 수 있는 자리나 세미나가 있으면 적극 참여 해보려고 한다.
그리고 배운것에 대해서는 꾸준히 개인 위키에 정리를 해오고 있다. 인간은 똑같은 실수를 반복하게 되더라. 내년에는 좀더 풍성해 지길...
2020년은 업무적으로나 개인적으로나 큰 변화가 있을 예정이다. 좀더 현재 업무에 주도적으로 몰입해야 하며 광고플랫폼의 하나의 공통 모듈로서 진화시켜야 한다. 그리고 첫째 딸아이가 유치원을 가기 때문에 유치원 근처로 이사도 해야 한다. 와이프는 복직을 할 예정이다. 아마 더 여유가 없어질것 같다. 올해도 독서를 많이 못해서 아쉬운점이 많은데 내년에는 어떻게든 시간을 내서 독서를 좀더 해봐야 겠다.
마지막으로 이 글을 읽는 사람은 내년에도 모두 행복했으면 좋겠다. 결국 중요한건 내가 행복하게 살고 있느냐더라.