개요
내가 지금 참여하고 있는 항해플러스 백엔드 7기의 Chapter 2가 끝났다.
Chapter 2의 끝을 기점으로 정확히 반이 끝난 시점에서, Chapter 2의 회고를 기록한다.
Chapter 2
Chapter 2는 본격적으로 백엔드 서버를 구축하는 챕터로,
e-커머스 서비스 혹은 콘서트 예약 서비스 중 하나를 선택하게 된다.
선택한 서비스 하나를 과정이 종료될 때까지 계속 고도화해 나가는 커리큘럼이다.
나는 두 도메인 다 현업에서 겪어본 적은 없지만,
최근 사이드로 e-커머스를 경험해보기도 했고,
예약 프로세스 자체가 머릿속에 잘 그려지지 않아서 콘서트 예약 도메인을 선택하게 되었다.
그전에는
Chapter 2가 되기 전에 Chapter 1에서는 TDD와 클린 아키텍처를 다지는 2주였다.
두 이론 다 공부는 해보았고, 개념은 잘 알고 있었지만 실전에서 잘할 자신이 없는 것들이었다.
또한 동시성 처리에 대한 내용도 학습했다.
얼마 전에 영한님의 자바 고급 1편을 완강하며 들었던 동시성 처리에 대한 내용이 바로 나와서 반가웠다.
공부했던 내용들이 머릿속에 있는 상태에서 써먹어보며 익히는 유익한 시간이 되었다.
Chapter 1에서는 모르거나 헷갈리는 부분들에 대해 명확히 알게 되는 시간들이었고,
내가 맞게 하던 부분들은 확신을 얻을 수 있었던 2주였다.
그만큼 코치님들의 발제나 멘토링이 정말 유익하고 도움이 많이 되었다.
Chapter 1에서 기본기들을 다지고,
Chapter 2에서 처음부터 구축해 나가는 커리큘럼이 상당히 잘 짜여있다는 생각이 들었다.
실제로 프로젝트를 구축할 때 도움이 많이 되었고, 방향을 잡을 수 있었다.
문서 작성
Chapter 2의 시작은 문서 작성이었다.
개발자로서 자꾸만 기피하게 되는 영역인데, 아예 한 주차의 커리큘럼으로 잡혀있었다.
마일스톤, 시퀀스 다이어그램, 플로우 차트 등등.
처음부터 지속적으로 코치님들한테 듣는 공통적인 이야기로
"프로젝트 요구사항을 뾰족하게 분석해야 한다"는 말씀을 자주 듣는다.
요구사항을 제대로 분석하고, 분석한 요구사항을 잘 표현할 수 있게 된다면
초기 커뮤니케이션이 수월해질뿐더러 무턱대고 코드부터 짜기 시작하는 경우보다 시행착오를 줄일 수 있다.
이때 나도 문서를 하나하나 만들어가면서 문서의 중요성을 많이 깨달았다.
특히 코치님 중 한 분이 추천해 주신 "UML 실전에서는 이것만 쓴다" 책은 바로 구매하였다.
그러나 그만큼 정말 익숙하지 않아서 어려운 한 주였다.
서버 구축
그다음 2주차는 본격적으로 프로젝트에 필요한 모든 API를 개발하는 주차이다.
2주에 걸쳐 비즈니스 로직부터 API 문서, 공통 설정 및 모든 테스트 등
아는 것 및 배우는 것을 모두 태워서 만들어 내야 한다.
도메인 지식도 거의 없고, 제로부터 시작하다 보니
정말 코치님들의 멘토링 청강을 엄청 돌아다녔다.
코치님들끼리도 성향과 스타일이 다 다른데,
이 중 나와 우리 팀의 스타일과 니즈에 맞는 코치님을 찾기까지 시간이 좀 걸렸다.
4주차까지 한 번도 겹친 적 없이 계속 다른 코치님의 멘토링을 신청하여 듣고 팀원들과 논의하는 시간을 가졌었다.
지금은 팀원들의 의견이 잘 모여서, 아마 앞으로는 웬만하면 우리의 멘토링은 코치님 변경 없이 고정적으로 진행할 것 같다.
고정적으로 하더라도 다른 코치님들이 멘토링을 청강할 수 있어서 꾸준히 다니며 다양한 의견을 들어보려고 한다.
다시 프로젝트 얘기로 돌아와서,
첫 주차에 프로젝트를 개발할 때 TDD에 제대로 꽂혀서 필요해 보이는 대부분의 곳에 레이어 가리지 않고 테스트 코드를 만들었다.
결과적으로 한 주만에 API 7개를 만드는 데 70개 가까운 테스트 코드를 작성했다.
아직은 오히려 테스트 코드를 생략해도 되거나 효율적으로 작성하는 데에 감이 잘 없어서
최소한 과제 요구사항에 미달되지는 않았으면 하는 마음에 더 작성하려고 했다.
(이런 강박 때문에 더 무리하게 되는 것 같지만..)
그래도 TDD 기반으로 초기 구축을 Application을 거의 실행하지 않고 완성하는 경험을 했다.
아직은 어색한데 이게 되네 하는 신기함도 있었다.
앞으로는 조금 더 적재적소에 걸맞은 효율적인 테스트 코드에 대한 고민을 하면서
조금 더 체화시켜 나가는 과정이 필요할 것 같다.
또한 개인적으로 동시성 처리와 MySQL에 대해 계속 고민하고 깊게 파는 시간을 좀 가졌다.
실무에서도 꽤 겪던 문제기도 했고, 기존에 동시성 처리를 위해 작업해 두었던 것들이 알고 보니 좋지 않은 방향이었다는 것도 이번에서야 알게 되었기 때문이다.
코치님은 동시성 문제에 깊이 빠져 잘못된 방향으로 개발하는 것에 우려를 표하신 적이 있는데,
그래서 더욱 잘못된 방향으로 가고 싶지 않아서 여러 자료들 찾아보면서 더 정확히 깊게 공부하려고 한 것 같다.
이번 기회를 바탕으로 드디어(?) MySQL에 대해 감을 좀 잡은 것 같다. 아직 DB랑은 덜 친하지만..
아무튼 지금까지 Chapter 2에서 드디어 API와 기본적인 로직은 구현이 끝났다.
다음 주부터는 DB뿐만 아니라 Redis, Kafka 등도 도입해 가며 고도화하는 커리큘럼들이 있다.
개인적으로 정말 기대가 많이 되고, 재밌을 것 같다.
앞으로
지금까지는 All Pass로 순항 중이지만, 요즘 개인적인 일정이 너무 많아서 꽤나 버겁다.
회사 업무, 다른 업무 및 토요지식회 발표 준비, 다른 멘토링 및 외부 활동 등등..
또한 다양한 코치님들의 멘토링을 청강하고 공부하다 보니 프로젝트 구축에 쏟는 시간이 자꾸 줄어든다.
그래서 계속 제출 전날 밤늦게까지 작업하고.. 그러다 보니 번아웃도 오려고 하고..
하지만 그럴 때일수록 계속 마음을 다잡으려고 한다.
운이 좋게도 모두가 지금까지 All Pass인 잘하는 팀원들이 있고,
그러한 팀에서 팀장을 하겠다고 했으니 더 책임감을 갖고 잘 이끌어나가야 한다.
또한 실제로 이러한 과정을 거치며 성장하고 있다는 확신을 계속 얻고 있으니.
그런데 이번 기수부터 블랙 배지 기준에 "코치님의 Best Practice 선정 1회 이상"이라는 기준이 생겼다.
지금까지 아직 받지 못해서 이것 때문에 상당히 마음에 부담이 있어 무리를 하게 되는 것 같다.
고민을 토로했을 때 팀원 한 분이 해주셨던 말씀처럼,
우리는 배우고 성장하러 온 것이니 너무 결과에 연연하지 말고 열심히 해보자.
혹시라도 항해플러스 참여 생각 있으신 분들을 위해,
항해플러스 신청 시 아래 추천 코드를 입력하시면 할인 받으실 수 있습니다 :)
- B80DOG
'항해플러스' 카테고리의 다른 글
[항해플러스] 1주차 - 시작하는 마음 (0) | 2024.12.14 |
---|