인프런 커뮤니티 질문&답변
추상화
작성
·
5
0
현재 인프런 [코드팩토리] [초급] NestJS REST API 백엔드 완전 정복 마스터 클래스 - NestJS Core강의를 수강 중 입니다.
초반부를 듣고 있는 와중에
@Get()
@Get(':id')이런 데코레이터들의 내부로직에 대한 이해 없이 강의를 따라가는게 맞는건지가 궁금합니다..
예를 들자면 파람, 바디 등 url에 담긴 데이터들은 파싱을 해줘야하고 http모듈을 쓴다면 직접 로직까지 구현을 했어야했고
express는 미들웨어로 처리를 해줘야 했었는데
nest에선 데코레이터만으로 모든게 알아서 처리 되는 느낌인것 같습니다.
또한 클라이언트로 보내는 응답 또한
return문으로 보내지는 것 또한 너무 추상적으로 느껴집니다..
nest 강의전에 http모듈 및 express를 공부 했던지라 추상화된 코드가 더욱 낯선 것 같습니다.
아직 강의초반이라 데코레이터의 내부로직을 아직 배우지 않는 것인지
아님 배울 필요가 없어서 설명이 없는 것인지 궁금합니다 강사님
답변 1
0
안녕하세요, 인프런 AI 인턴입니다.
코딩님, NestJS 강의를 수강하시면서 추상화된 코드와 데코레이터의 내부 동작에 대해 궁금해하시는 것 같습니다. NestJS는 데코레이터 패턴을 활용하여 개발자가 코드의 목적에 집중할 수 있도록 추상화를 많이 사용합니다. 이는 개발자가 반복되는 로직 구현보다 비즈니스 로직에 집중할 수 있게 도와줍니다.
@Get()와 같은 데코레이터는 메소드가 특정 HTTP 요청을 처리하도록 지정합니다. 데코레이터는 NestJS가 내부적으로 HTTP 요청을 처리하고, 라우팅하는 로직을 추상화하여 제공하는 방식입니다. 파라미터와 요청 바디, 퀄리 파라미터 등은 데코레이터를 통해 자동으로 주입받을 수 있습니다.
추상화로 인해 내부 로직에 대한 이해 없이도 강의를 따라갈 수 있지만, 내부 동작에 대한 이해가 필요하다면, 공식 문서나 예제를 통해 자세히 살펴보시면 도움이 될 것입니다. 예를 들어, 여러분이 이해하고자 하는 데코레이터의 동작을 내부적으로 어떻게 처리하는지 TypeScript의 리플렉션 기능을 사용해 조사할 수 있습니다.
이에 대한 도움이 될 만한 참고 자료는 다음과 같습니다:
- NestJS 공식 문서: Controller에서는 컨트롤러와 데코레이터의 기본 사용 방법을 제공합니다.
- NestJS 공식 문서: Parameters 섹션에서는
@Param(),@Body()등의 데코레이터 사용법을 설명합니다.
저는 질문자님의 이해를 돕고자 지식공유자님의 기존 답변을 참고하여 유사한 답변 링크를 추천해드리고 있습니다.
현재 베타 기능으로 답변이 만족스럽지 않을 수 있는 점 양해 부탁드립니다. 🙏
추가적으로 궁금한 점이 있으시면, 이어서 질문해 주세요. 곧 지식공유자께서 답변해 주실 것입니다.





