라우터·서비스·레포지토리 레이어를 분리한 경험
처음 Node.js로 서버를 만들 때 라우터 파일 하나에 DB 쿼리부터 응답 생성까지 다 넣었습니다. 기능이 늘면서 파일 하나가 300줄이 넘어가고, 어디를 수정해야 할지 찾는 데 더 오래 걸렸습니다.
두 번째 프로젝트부터는 라우터, 서비스, 레포지토리 세 레이어를 분리하는 구조로 바꿨습니다. 라우터는 요청을 받고, 서비스에 비즈니스 로직이 있으며, 레포지토리에서 DB를 다루는 방식이었습니다. 처음에는 파일이 많아져서 복잡해 보였지만, 기능을 추가하거나 수정할 때 어디를 봐야 하는지 명확해졌습니다.
이 구조를 선호하는 이유는 어디서 무엇을 책임지는지가 명확해서 팀으로 작업할 때 충돌이 줄어든다는 점입니다. 각 레이어가 독립적이어서 테스트도 쉬워졌습니다. 그 경험이 구조를 먼저 고민하고 코드를 쓰는 습관을 만들어주었습니다.