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

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

by 논문보관함 2025. 3. 19.

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

https://bit.ly/4hTSJNB

 

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

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

fastcampus.co.kr

 

 

0319 수

학습 내용 정리

Transaction 이론

Create 함수에서 Transaction 적용하기

 

학습후기

수강 후기: NestJS에서의 Transaction 이론 및 Create 함수 적용

이번 강의를 통해 NestJS에서의 Transaction 개념과 Create 함수에서의 적용 방법을 체계적으로 학습할 수 있었습니다. NestJS는 구조적인 코드 작성과 유지보수성을 높이기 위한 프레임워크로 잘 알려져 있으며, 특히 데이터베이스와의 연동에서 트랜잭션(Transaction)을 활용하는 것이 매우 중요합니다. 기존에 NestJS와 TypeORM을 활용해 간단한 CRUD 작업을 수행한 경험은 있었지만, 대규모 애플리케이션에서 데이터 일관성을 유지하기 위한 트랜잭션 적용 방법에 대한 이해가 부족했는데, 이번 강의를 통해 그 부분을 명확하게 배울 수 있었습니다.

🔹 NestJS에서의 Transaction 개념 이해

NestJS에서 트랜잭션을 적용하는 주요 방식 중 하나는 TypeORM의 QueryRunnerPrisma의 Transaction API를 활용하는 것입니다. 강의에서는 이 두 가지 방법을 비교하면서 각각의 장단점을 설명해 주었고, 실제 프로젝트에서 언제 어떤 방법을 선택해야 하는지에 대한 가이드를 제시해 주었습니다. 특히 QueryRunner를 활용하면 더욱 세밀한 트랜잭션 제어가 가능하고, Prisma를 사용할 경우 코드의 간결성과 유지보수성이 높아진다는 점을 실습을 통해 직접 확인할 수 있었습니다.

🔹 Create 함수에서의 Transaction 적용

NestJS에서 Create 함수를 작성할 때 트랜잭션을 적용하는 방법을 학습하면서, 단순히 데이터를 삽입하는 것 이상의 고려가 필요하다는 것을 깨달았습니다. 예를 들어, 여러 개의 테이블에 데이터를 삽입해야 하는 경우, 하나의 데이터 삽입이 실패했을 때 전체 프로세스를 롤백(rollback)하여 데이터의 일관성을 유지해야 합니다. 이를 위해 TypeORM의 queryRunner.startTransaction()을 활용하여 명시적으로 트랜잭션을 시작하고, 여러 데이터 삽입 후 commitTransaction()을 수행하는 방식을 배웠습니다. 또한 Prisma에서는 prisma.$transaction()을 사용하여 더욱 간결하게 동일한 기능을 구현할 수 있다는 점도 흥미로웠습니다.

🔹 실전 적용과 실습을 통한 학습

강의의 가장 큰 장점은 이론적인 설명뿐만 아니라 실습을 병행하면서 실제 NestJS 프로젝트에 적용하는 방법을 배울 수 있다는 점이었습니다. 예제 프로젝트에서는 사용자(User)와 프로필(Profile) 정보를 동시에 저장하는 기능을 구현하면서 트랜잭션을 적용해 보았는데, 단순한 데이터 삽입이 아니라 중간에 오류가 발생했을 때 어떻게 예외를 처리하고 롤백하는지가 핵심이었습니다. 이를 직접 코드로 작성하고 디버깅하면서 트랜잭션이 제대로 작동하는지를 확인할 수 있었고, 실무에서의 활용 방법까지 익힐 수 있었습니다.

🔹 배운 점과 느낀 점

이전에는 단순히 save()나 create() 메서드를 사용해 데이터베이스 작업을 수행하는 것이 일반적이었지만, 이번 강의를 통해 NestJS에서 트랜잭션을 적용하는 것이 얼마나 중요한지 다시 한번 깨닫게 되었습니다. 특히, 다중 테이블 삽입, API 요청 간 데이터 정합성 유지, 장애 발생 시 복구 가능성 확보 등의 측면에서 트랜잭션 적용이 필수적이라는 점을 배우면서 실무에서 보다 견고한 애플리케이션을 개발할 수 있을 것이라는 확신이 들었습니다.

강의를 듣기 전에는 NestJS에서의 트랜잭션 개념이 다소 어렵게 느껴졌지만, 이론과 실습을 병행하면서 개념을 정리하고 직접 구현해보니 한층 이해가 쉬워졌습니다. 앞으로 프로젝트를 진행할 때 트랜잭션을 적극적으로 활용하여 보다 안정적인 애플리케이션을 개발하는 데 적용해 볼 계획입니다. NestJS를 활용한 백엔드 개발을 진행하는 개발자라면 반드시 학습해야 할 내용이라고 생각합니다.

 

사진

시작
종료
수강클립

 

결과물