Express 자유도 → NestJS 구조 전환 + DTO 입력 검증 + 공통 예외 필터 + DB 쿼리 최적화 경험
팀 프로젝트에서 Express로 REST API 서버를 처음 만들고, 이후 NestJS로 구조를 바꾸는 경험을 했습니다. Express에서는 자유도가 높아서 빠르게 시작할 수 있었는데, 프로젝트가 커지면서 라우팅 구조가 일관성 없이 흩어지는 문제가 생겼습니다. NestJS로 전환하면서 컨트롤러·서비스·모듈 구조가 강제되어 팀원들이 코드를 어디서 찾을지 바로 알 수 있게 됐습니다. 입력 검증에서는 class-validator와 DTO를 활용해서 요청이 잘못된 형식일 때 컨트롤러 로직에 닿기 전에 걸러내는 구조를 만들었습니다. 예외 처리는 공통 필터를 만들어서 에러 응답 형식이 일관되도록 했는데, 그 전에는 에러마다 응답 구조가 달라 클라이언트가 혼란스러워하는 문제가 있었습니다. 성능 측면에서는 응답 속도가 느린 API를 찾아서 DB 쿼리 수를 줄이는 방식을 경험했습니다.
Express와 NestJS 모두 강점이 있지만, 팀 규모가 커질수록 구조를 강제하는 쪽이 유지보수 비용을 줄이는 경험을 했습니다.