[네이버부스트캠프 웹・모바일 10기] 멤버십 4주차 회고
- 네이버부스트캠프
- 회고
들어가며
지난주에는 설계와 계획을 계속 수정하며 부족한 점을 많이 느꼈다. 그래서 이번 주에는 하나의 페이지에 필요한 클라이언트와 서버, 데이터베이스를 모두 완벽하게 구축해보자는 목표를 세웠고, 어려움은 있었지만 끝까지 마무리했다. 앞으로 무엇을 어떻게 학습하고 구현해 나가야 할지도 점차 명확해지는 느낌이었다. 그리고 이번 주에 가장 크게 남은 건, 코드를 완성한 경험 자체보다 피어 리뷰와 코드 리뷰를 거치며 다른 사람의 시선에서 내 코드를 다시 보게 된 경험이다.
피어 리뷰의 질문으로 계층 역할과 DTO를 채우다
피어 리뷰를 진행하며 고민했던 부분을 설명하고 궁금한 점을 적극적으로 질문했다. 어떤 기준과 목적으로 구조를 설계했는지 물으면서 각 계층의 역할을 정하고 지키는 일이 왜 중요한지 느꼈다. 트랜잭션이나 DTO처럼 처음 접한 개념도 왜 그런 방식을 쓰는지 물으며 사용 목적에 대한 궁금증을 풀어나갔다. 부족했던 백엔드 개념 대부분을 이번 주에 이렇게 채워나갔다.
코드 리뷰로 가독성을 다시 돌아보다
코드 리뷰를 받으며 다른 사람이 내 코드를 봤을 때 얼마나 잘 이해할 수 있을지를 고민하게 됐다. 피어 리뷰에서는 특정 코드의 역할에 대해 질문을 받았고, 현업자 리뷰에서는 함수명 같은 부분을 더 신중히 고려해보라는 조언을 들었다. 큰 생각 없이 작성했지만 다른 사람 입장에서는 이해하기 어려울 수 있다는 점을 그제야 깨달았다. 함수명이 역할을 잘 드러내더라도 다른 맥락에서 마주하면 충분히 이해하기 어려울 수 있다는 것도 마찬가지였다. 더 고민해서 작성하고, 이 부분은 계속 피드백을 받아 나가야겠다고 생각했다.
확인 없이 내 방식대로만 구현하다
반면 다른 캠퍼들이 어떻게 하고 있는지는 제대로 살펴보지 못했다. 캠퍼마다 진도와 우선순위가 달라 같은 그룹 안에서도 서로 다른 작업을 진행하는 경우가 많았는데, 이럴 때일수록 비슷한 진도의 캠퍼를 찾아 어떻게 진행했고 어떤 고민을 했는지 살펴봤어야 했다. MVP 패턴을 처음 시도했고 이벤트 위임과 옵저버 패턴도 여전히 낯선 상태라 부족한 부분이 많았는데, 곧장 내 방식대로만 구현한 게 옳았는지 의문이 남는다.
내가 제대로 진행하고 있는지, 놓친 부분은 없는지 확인하는 과정이 있었어야 했는데 그러지 못해 더 깊이 고민하고 학습할 기회를 놓쳤다고 생각한다. 그래서 PR 작성을 마친 뒤에는 비슷한 진행 상황의 캠퍼를 찾아 어떤 고민과 결정을 했는지 읽어보고, 내 방식과 다른 점은 무엇인지, 왜 달랐는지, 어떤 방식이 더 나은지 생각하는 시간을 가지려 한다.
예측 가능한 코드를 눈으로 확인하다
이전부터 잘한다고 느꼈던 캠퍼의 코드를 집중적으로 분석한 것도 같은 맥락이었다. 처음에는 코드 흐름조차 따라가기 어려웠지만, 근본부터 하나씩 이해해 나가면서 어떻게 이렇게 작성할 수 있었는지 감탄하게 됐다. 모든 함수와 모듈에 역할과 기준이 분명하게 드러나 있었다. 각 모듈을 하나씩 그려가며 연결해보니 코드 흐름이 한 번에 이해됐고, 흐름을 한 번 파악하고 나니 다음번에는 자연스럽게 예측할 수 있었으며 실제로도 예상한 대로 흘러갔다. 예측 가능한 코드가 좋다는 말이 이런 뜻이라는 걸 그제야 체감했다.
다음 주에는 이 감각을 다이어그램으로도 옮겨볼 생각이다. 진입점에서 화면 출력, 이벤트 처리에 이르는 전체 과정을 흐름으로 구상하면 모듈들의 역할을 더 명확히 나눌 수 있을 것 같다. 설계에 시간이 더 걸리겠지만, 장기적으로 수정 시간을 줄인다고 생각하면 오히려 효율적이라고 본다.
정리하며
캠퍼들 각자의 속도가 점점 다양해지고 있다고 느낀다. 중점을 두는 부분이 다르기 때문일 텐데, 그 안에서도 대충 하는 사람은 본 적 없고 모두가 하는 일마다 명확한 의도를 가지고 있었다. 나는 지금 어떤 부분에 중점을 두고 있는지 다시 생각해본다. 어느덧 멤버십 4주 차가 마무리됐다. 나름대로 열심히 발버둥 치고 있다고 느끼고, 더 나은 개발자가 되기 위해 다시 한 달을 채워갈 것이다. 한 달 단위로 체크포인트를 만들어두면 좋을 것 같다.