Search

네이버 부스트캠프 웹・모바일 10기 멤버십 4주차 회고

생성일
2025/09/14
URL
벌써 부스트캠프 멤버십에 입과한지 4주가 지났다.
이상하게 챌린지 과정보다 멤버십 과정이 시간이 더 빠르게 흐르는 것 같다.
챌린지 과정은 하루 단위로 시간이 가는 반면, 멤버십 과정은 주 단위로 시간이 흐르는 느낌..?

나는 4주차에 무엇을 배웠나!

 미션

FE 디자인 패턴

이번 주에는 프론트엔드에서 사용하는 디자인 패턴과 상태 관리에 대해 깊이 학습해보자는 목표를 세웠다.
처음에는 controller, api, store, view 각각의 역할이 감이 잘 오지 않아 삽질을 많이 했다.
하지만 직접 기능들을 구현하면서 각 구성 요소가 어떻게 상호작용하는지 나름대로 해석할 수 있게 되었다.
예를 들어, controller가 중앙 관제 역할을 수행하도록 하고, store와 view의 강한 결합을 끊기 위해 옵저버 패턴을 도입했다.
이 경험을 통해 단순히 이론을 공부하는 것보다 직접 부딪히며 코드로 구현하며 깨달을 때 더 오래 기억에 남고, 스스로 이해했다고 확신할 수 있었다.
앞으로도 새로운 기술을 학습할 때 책이나 문서를 읽는 데 그치지 않고, 작은 기능이라도 직접 만들어봐야겠다.

FE/BE 역할과 책임

미션을 진행하면서 매번 책임을 프론트엔드에 둘지, 백엔드에 둘지 많이 고민했다.
예를 들어, API 응답을 서버에서 join 해서 내려주는 방식과 클라이언트에서 매핑하는 방식에서는 각각의 장단점이 있었다.
서버에서 join → 클라이언트 구현은 단순하고 데이터 일관성도 보장되지만, 응답 크기가 커지고 재사용성이 떨어질 수 있다.
클라이언트 매핑 → 재사용성은 높아지지만, 상태 관리와 동기화가 복잡해진다.
이번 미션에서는 학습의 목적에 맞춰 클라이언트 매핑을 선택했지만, 실제 서비스에서는 성능과 일관성을 위해 서버에서 join을 많이 사용한다는 점도 새롭게 알게 되었다.
이 과정을 통해 느낀 건, 프론트엔드와 백엔드 서로의 고충을 이해하는 가장 좋은 방법은 직접 풀스택을 경험해보는 것이라는 사실이었다.

문서화

지난 주까지는 PR 문서를 작성할 때 정해진 포맷 없이 프리스타일(?) 형태로 작성했다.
이렇게 작성하니 가끔은 글이 장황하게 길어져서 읽는 사람들이 불편해할 수도 있겠다는 생각이 들었다.
그래서 이번 주부터는 문제 접근 과정을  Problem -  Approach -  Result 순으로 핵심만 요약해서 작성해보았다.
덕분에 문서가 훨씬 명확하고 간결해졌고, 리뷰어도 빠르게 이해할 수 있었다.
또한, 스스로 글을 정리하면서 왜 이런 선택을 했는지, 어떤 과정을 거쳤는지 다시 점검할 수 있어 설계와 구현의 일관성을 확인하는 데 도움이 되었다.
앞으로도 이 구조를 유지하면서 중요한 의사결정과 학습 포인트를 문서에 담아 동료에게 공유하려고 한다.

피어 리뷰

코드 리뷰

이번 주는 피드백에 적극적인 동료들을 만나서 새로운 방식으로 코드 리뷰가 진행됐다.
리뷰 대상자는 꼬리잡기 방식으로 정해지는데, 덕분에 매일 다른 사람의 코드를 리뷰할 수 있었다.
내가 작성한 코드를 매일 누군가가 리뷰한다고 생각하니 조금 더 책임감 있게 코드와 PR 문서를 작성하게 됐다.
리뷰 과정에서는 단순히 잘한 점을 칭찬하는 데 그치지 않고, 구현 의도를 묻거나 더 나은 방법을 함께 고민하는 대화가 오갔다.
그 덕분에 나도 다른 사람의 시각으로 내 코드를 바라볼 수 있었고, 반대로 내가 가진 지식이나 팁을 공유하면서 동료들과 함께 성장할 수 있었다.
좋은 코드와 리뷰 방법이 무엇인지 깨닫게 해준 web12 팀 동료들(다미님, 혜정님, 서연님)에게 감사하다.

동료 피드백

3주차 동료들의 피드백을 보면서 감동을 많이 받았다.
팀에 조금이라도 도움이 되기 위해 했던 행동들을 다 기억해주시고, 좋은 점과 개선할 점까지 솔직하게 남겨주셔서 정말 감사했다.
나도 다른 동료에게 좋은 피드백을 주기 위해서 관찰을 더 꼼꼼히 하고, 메모를 조금씩 해놔야겠다고 생각했다.

마스터 클래스

기억에 남는 것

서비스의 장애 대부분(90%)는 DB에서 일어난다.
관계형 DB에서 제공하는 중요한 기능 중 하나는 트랜잭션이다.
내가 할 수 있는 것에만 AI를 써라.
풀스택의 장점은 최적의 상태 API를 고민해볼 수 있다는 것이다.
배포는 기능을 다 만들고 하는 게 아니라 시작하자마자 하는 것이다.
주니어들은 ERD를 그리면서 어떤 기능, 서비스를 만들지 명확히 정리할 수 있다.

☕️ ‘클린 코드와 코드 리뷰’ 특강

이번 주에는 SK플래닛과 우아한형제들을 거쳐 컬리의 CTO까지 역임하신 박성철 개발자님의 강의를 들을 기회가 있었다.
정말 많은 이야기가 강의에서 나왔던 것 같은데 그 중 가장 기억에 남는 것은 다음과 같다.
1.
클린 코드 != 예쁜 코드 (미학보다 오류를 줄이고 의미를 전달하는 것이 더 중요)
2.
[클린 코드] 창발적 설계로 깔끔한 코드 구현하기
a.
모든 테스트를 실행한다.
b.
중복을 없앤다.
c.
프로그래머 의도를 표현한다.
d.
클래스와 메서드 수를 최소로 줄인다. (실용적 관점에서 타협한다.)
3.
코드의 가치: 의도 드러내기 > 단순함 > 유연성
4.
코드 리뷰의 목적
a.
코드 품질 개선
b.
일관성 유지 (누가 짰는지 알 수 없을 정도로)
c.
지식 공유 (내 지식과 남 지식이 공유되는 좋은 기회)
d.
협력과 소통 (SW 개발 = 팀 스포츠)
5.
사람이 아닌 코드를 비판하고, 코드가 아닌 사람을 친절하게 대하라.
느낀 점: 의도가 잘 드러나는지, 단순한지 매번 생각하면서 코드를 작성해야겠다고 생각했다.

5주차에 보완할 점

FE

console.log를 쓰지 않고 개발자도구로 디버깅하기
비동기 코드 에러 핸들링 신경쓰기
FE/BE 개발과 학습의 균형 지키기
controller를 단순화 해볼 방법 고민해보기

BE

기본 틀만 잡고 바로 배포하기
비동기 코드 에러 핸들링 신경쓰기
성능 문제 항상 신경쓰기
repository 주석으로 반환 타입 명시
테스트 코드 신경쓰기

ETC

vscode path alias 설정

마치며

다음 주부터는 처음으로 캠퍼들을 오프라인 자리에서 만난다.
가서 잘 적응할 수 있을지 조금 걱정은 되지만,
그동안 온라인으로만 접했던 동료들을 직접 만나고 소통할 기회가 생긴다는 점이 기대된다.
5주차도 파이팅 해보자.