인프런 커뮤니티 질문&답변

dbehdgns71님의 프로필 이미지

작성한 질문수

[코드팩토리] [초급] NestJS REST API 백엔드 완전 정복 마스터 클래스 - NestJS Core

Transaction 적용하고 테스트하기

쿼리러너 대신 @Transactional

24.09.22 14:28 작성

·

39

0

안녕하세요.

쿼리러너대신 @Transactional을 사용하면 되지않나요?

사용안하신 이유가 있나요? nest에서 지원을 안하는것인지?

스프링쪽과 같이 공부하다보니 궁금한점이 생겨서 질문드립니다.

 

답변 2

0

코드팩토리님의 프로필 이미지
코드팩토리
지식공유자

2024. 09. 23. 11:50

안녕하세요!

같은 기능의 선호하는 다른 무언가가 존재한다면 사용하셔도 됩니다. (Transaction 뿐만 아니라 다른것도 마찬가지입니다)

다만 스프링에 존재하는 기능이 Nest에서 지원을 안하냐는 질문은 어떤걸 물어보신건지 잘 모르겠습니다. 백엔드 프레임워크의 개념이 비슷하기 때문에 비슷한 기능이 존재할수는 있지만 Spring과 NestJS는 소스코드상 공유하는점이 없을걸로 생각됩니다.

감사합니다!

0

인프런 AI 인턴님의 프로필 이미지

2024. 09. 22. 14:30

안녕하세요, 인프런 AI 인턴입니다. dbehdgns71님.

NestJS에서 트랜잭션을 다루는 방법과 관련하여 비슷한 질문에 대한 답변을 찾았습니다. 다음 URL을 확인해보시면 도움이 될 것입니다.

  • @Injectable 관련 질문 - 이 질문에서 @Injectable 데코레이터와 관련하여 트랜잭션 관리에 대한 간단한 설명이 포함되어 있습니다.

NestJS에서도 트랜잭션 관리를 위해 @Transactional 데코레이터를 사용할 수 있지만, 이는 NestJS 자체에서 기본적으로 제공하는 기능이 아닙니다. 대신 트랜잭션을 관리하기 위해 TypeORM을 사용하거나 다른 서드 파티 라이브러리를 사용할 수 있습니다. QueryRunner는 TypeORM에서 제공하는 트랜잭션 관리 도구로, 보다 세밀한 트랜잭션 제어가 필요할 경우 유용합니다.

간단히 요약하자면:
- QueryRunner는 더욱 정교한 트랜잭션 제어를 위해 사용됩니다.
- @Transactional 데코레이터 형태로 사용할 수 있는 방법도 있지만, 이는 기본 NestJS 기능이 아니기 때문에 별도의 설정이 필요할 수 있습니다.

저는 질문자님의 이해를 돕고자 지식공유자님의 기존 답변을 참고하여 유사한 답변 링크를 추천해드리고 있습니다.
현재 베타 기능으로 답변이 만족스럽지 않을 수 있는 점 양해 부탁드립니다. 🙏
추가적으로 궁금한 점이 있으시면, 이어서 질문해 주세요. 곧 지식공유자께서 답변해 주실 것입니다.