본문 바로가기
패스트캠퍼스 환급챌린지

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

by 논문보관함 2025. 4. 4.

본 포스팅은 패스트캠퍼스 환급 챌린지 참여를 위해 작성하였습니다.

https://bit.ly/4hTSJNB

 

커리어 성장을 위한 최고의 실무교육 아카데미 | 패스트캠퍼스

성인 교육 서비스 기업, 패스트캠퍼스는 개인과 조직의 실질적인 '업(業)'의 성장을 돕고자 모든 종류의 교육 콘텐츠 서비스를 제공하는 대한민국 No. 1 교육 서비스 회사입니다.

fastcampus.co.kr

0404 금

학습 내용 정리

pagination 특징

- 데이터 분할

- 네비게이션 컨트롤

- 균일한 데이터 규격

- 상태 유지

- 퍼포먼스 최적화

Page Based Pagination 작업

 

수강후기

 

오늘 학습에서는 Pagination의 개념과 이를 실무에 적용하는 방법에 대해 배웠으며, 특히 Page Based Pagination을 중심으로 실제 코드를 작성해보는 유익한 시간을 가졌다. 단순히 이론적인 개념 설명에 그치지 않고, NestJS와 TypeORM 환경에서 직접 적용 가능한 형태로 구현해보며 실질적인 이해를 높일 수 있었다는 점이 특히 인상 깊었다.

우선, Pagination의 주요 특징으로는 다음과 같은 요소들을 학습하였다.

  1. 데이터 분할: 전체 데이터를 일정한 단위로 나누어, 한 번에 모든 데이터를 불러오는 것이 아닌, 필요한 부분만 로드할 수 있게 한다.
  2. 네비게이션 컨트롤: 사용자가 쉽게 이전 페이지, 다음 페이지로 이동할 수 있도록 UI/UX 구성 요소가 필요하다.
  3. 균일한 데이터 규격 유지: 각 페이지마다 일정한 수의 데이터가 포함되어야 하며, 이로 인해 클라이언트 및 서버 모두에서 일관된 동작을 기대할 수 있다.
  4. 상태 유지: 사용자가 페이지 이동을 하더라도 필터나 검색 조건, 현재 위치 등 상태를 유지해야 UX가 자연스럽다.
  5. 퍼포먼스 최적화: 서버 자원을 최소한으로 사용하면서도 필요한 데이터만 전달하므로, 특히 대규모 데이터베이스 환경에서 성능을 크게 향상시킬 수 있다.

실습에서는 Page Based Pagination을 중심으로 학습하였다. 이는 가장 일반적인 형태로, ?page=1&size=10과 같은 쿼리 파라미터를 통해 원하는 페이지와 페이지당 데이터 수를 지정하는 방식이다. 구현이 간단하고 직관적이며, 많은 API에서 기본적으로 제공되는 방식이다. 그러나 페이지 번호 기반 특성상 데이터 변경이 자주 발생하는 시스템에서는 일관성을 유지하기 어렵다는 한계도 존재한다.

이번 학습을 통해 백엔드 개발 및 API 설계 시, 단순히 데이터를 전달하는 것에서 그치지 않고 사용자 편의성과 시스템 퍼포먼스를 고려한 아키텍처 설계의 중요성을 깊이 이해할 수 있었다. 특히 Pagination은 단순히 데이터 나누기 이상의 개념이며, UX와 서버 비용 절감 측면에서도 전략적으로 접근해야 함을 느꼈다. 향후 Cursor Based Pagination, Offset Pagination과 같은 방식들도 학습하여 보다 다양한 상황에 유연하게 대응할 수 있는 실력을 갖추고자 한다.

 

 

이번 강의의 강점은 단순 개념 전달을 넘어, 실무에서 바로 쓸 수 있는 구조를 경험하게 해준다는 점이다. 예를 들어, QueryBuilder와 DTO를 활용하여 범용적으로 재사용할 수 있는 페이지네이션 모듈을 구성하는 방식은, 강의 이전에는 막연하게만 알던 구조였지만, 직접 따라해보며 “왜 이렇게 구성하는지”를 체감할 수 있게 해주었다. 특히 @IsOptional(), @IsInt() 같은 유효성 검증을 적용하는 실습은, API를 설계함에 있어 안정성을 높이는 데 필수적임을 다시 한번 느끼게 해주었다.

코드 실습을 하면서 가장 좋았던 점은, 단순한 take, skip 계산만이 아니라, NestJS의 구조 속에서 서비스와 모듈을 분리하고, 공통 로직으로 캡슐화하는 설계 방법을 배울 수 있었다는 점이다. 추후 어떤 도메인에서도 재활용 가능한 구조를 만들어두면 생산성과 유지보수성이 높아진다는 점을 실감했다.

무엇보다 이 강의는 단순히 “어떻게 만드는가”에만 집중하지 않고, “왜 그렇게 설계해야 하는가”에 대한 고민을 던져주는 점에서 차별화된다. Pagination 하나만 가지고도 사용자 경험(UX), 서버 성능, API 응답 구조 등 다양한 측면을 고려하게 되었고, 이것이 실제 백엔드 개발자에게 꼭 필요한 관점이라는 걸 깨달았다.

강의를 듣고 난 지금은, 단순히 로직을 구현하는 수준을 넘어, 서비스 전체를 구성하는 아키텍처 관점에서 Pagination을 바라볼 수 있게 되었고, 이는 내가 개발자로 성장하는 데 큰 자산이 되리라 확신한다. 앞으로 Cursor 기반 페이지네이션이나, 다양한 DB에 따른 페이징 전략도 학습하고 싶다는 동기까지 얻은 하루였다.

 

사진

시작

 

종료
수강클립
결과물