카테고리 없음

패스트캠퍼스 환급챌린지 53일차 : 코드팩토리의 백엔드 아카데미 : 한 번에 끝내는 NestJS 패키지 - 기초부터 MSA까지 강의 후기

Laftel 2025. 4. 26. 23:38
반응형

***본 포스팅은 패스트캠퍼스 환급 챌린지 참여를 위해 작성하였습니다
PATCH 엔드포인트와 특정 영화 정보를 조회하는 GET 엔드포인트를 업데이트하는 작업을 학습하면서, API 설계의 유연성과 효율적인 데이터 관리 및 제공 방식의 중요성을 더욱 깊이 깨닫게 되었습니다. 특히, HTTP 메서드의 의미에 따른 적절한 사용, 데이터 조회 최적화, 그리고 클라이언트 요구사항에 부합하는 응답 설계의 중요성을 강조하게 되었습니다.
첫째, PATCH 메서드의 의미와 부분 업데이트의 장점을 명확히 이해하게 되었습니다. PUT 메서드가 리소스의 전체를 대체하는 데 반해, PATCH 메서드는 리소스의 일부분만 업데이트하는 데 사용됩니다. 이는 불필요한 데이터 전송을 줄이고, 클라이언트가 변경하고자 하는 특정 정보만 서버에 전달하여 효율적인 업데이트를 가능하게 합니다. 마치 문서를 수정할 때, 전체 내용을 다시 작성하는 대신 변경된 부분만 수정하는 것과 유사한 효율성을 제공합니다. API 설계 시 변경 가능성이 있는 필드를 고려하여 PATCH 메서드를 적절히 활용하는 것은 네트워크 자원 낭비를 줄이고 사용자 경험을 향상시키는 중요한 전략이라고 생각합니다.
둘째, 데이터베이스 조회 성능 최적화의 중요성과 다양한 TypeORM 조회 옵션 활용의 필요성을 인지했습니다. 특정 영화 정보를 조회하는 GET 엔드포인트에서, 단순히 엔티티의 모든 필드를 반환하는 것보다 클라이언트가 필요로 하는 정보만을 선택적으로 제공하거나, 연관된 엔티티를 효율적으로 로딩하는 것이 성능 최적화에 중요합니다. TypeORM의 find 메서드에 제공되는 select, relations 등의 옵션을 활용하여 불필요한 데이터 조회를 줄이고, 필요에 따라 지연 로딩(Lazy Loading) 또는 즉시 로딩(Eager Loading) 전략을 적용하는 것은 데이터베이스 부하를 줄이고 응답 속도를 향상시키는 핵심적인 기술입니다. 마치 도서관에서 원하는 정보를 찾을 때, 모든 책을 훑어보는 대신 검색 기능을 활용하여 특정 책만 빠르게 찾아내는 것과 같은 효율성을 추구해야 합니다.
셋째, 클라이언트의 다양한 요구사항을 수용하는 유연한 API 응답 설계의 중요성을 깨달았습니다. 영화 정보 조회 시, 클라이언트는 영화의 기본적인 정보뿐만 아니라 감독 정보, 장르 정보 등 연관된 데이터를 함께 요청할 수 있습니다. API 설계 시 이러한 다양한 요구사항을 예측하고, 필요한 데이터를 효율적으로 제공할 수 있도록 응답 구조를 설계하는 것이 중요합니다. GraphQL과 같은 기술을 활용하여 클라이언트가 원하는 데이터만 요청하고 받을 수 있도록 하는 것도 좋은 대안이 될 수 있습니다. 마치 레고 블록처럼, 다양한 조합을 통해 클라이언트가 원하는 형태의 데이터를 유연하게 제공할 수 있도록 API 응답 구조를 설계해야 합니다.
넷째, PATCH 요청 데이터의 유효성 검사 및 부분 업데이트 로직 구현의 복잡성과 주의사항을 이해했습니다. PATCH 요청으로 전달되는 데이터는 전체 필드가 아닌 일부 필드일 수 있으므로, 업데이트 로직을 구현할 때 전달된 필드만 선택적으로 업데이트해야 합니다. 또한, 업데이트하려는 필드의 유효성을 검사하여 데이터베이스에 잘못된 정보가 저장되는 것을 방지해야 합니다. 마치 퍼즐을 맞추는 것처럼, 업데이트하려는 특정 부분만 정확하게 식별하고 유효성을 검증하여 데이터의 일관성을 유지해야 합니다.
다섯째, GET 요청 시 특정 ID의 영화가 존재하지 않을 경우의 적절한 예외 처리 및 HTTP 상태 코드 반환의 중요성을 다시 한번 강조하게 되었습니다. 요청된 ID에 해당하는 영화 정보가 데이터베이스에 존재하지 않을 경우, 클라이언트에게 404 Not Found 상태 코드를 반환하여 리소스가 존재하지 않음을 명확하게 알려주는 것은 API의 신뢰성을 높이는 중요한 측면입니다. NestJS의 NotFoundException을 활용하여 이러한 예외를 간편하게 처리할 수 있다는 점을 확인했습니다. 마치 길을 찾을 때, 목적지가 존재하지 않는다는 명확한 안내를 받는 것이 혼란을 줄이는 것처럼, API 요청에 대한 정확한 예외 처리는 클라이언트의 이해를 돕고 오류 처리를 용이하게 합니다.
마지막으로, PATCH 및 GET 엔드포인트 업데이트 작업은 단순히 데이터 수정 및 조회 기능을 구현하는 것을 넘어, 애플리케이션의 데이터 흐름을 이해하고 사용자 경험을 최적화하는 데 중요한 역할을 한다는 것을 다시 한번 깨달았습니다. 효율적인 데이터 관리 및 제공 방식은 애플리케이션의 성능과 직결되며, 이는 사용자 만족도에 큰 영향을 미칩니다. 따라서 API 엔드포인트를 설계하고 구현할 때는 기술적인 측면뿐만 아니라 사용자 관점에서 데이터를 어떻게 효율적으로 제공하고 관리할 것인가를 깊이 고민해야 합니다. 마치 잘 설계된 웹사이트처럼, 사용자가 원하는 정보를 빠르고 편리하게 얻을 수 있도록 API를 설계해야 합니다.
이번 PATCH 및 GET Movie 엔드포인트 업데이트 작업 학습을 통해 API 설계의 유연성과 효율적인 데이터 관리 및 제공 방식의 중요성을 다시 한번 깨달았습니다. 앞으로 다양한 API 엔드포인트 개발 경험을 쌓고, 성능 최적화 및 사용자 경험 향상을 위한 다양한 전략들을 학습하면서 더욱 숙련된 백엔드 개발자로 성장해 나가고 싶습니다.


#패스트캠퍼스 #직장인자기계발 #직장인공부 #환급챌린지 #패스트캠퍼스후기 #오공완
https://bit.ly/4hTSJNB  

반응형