# 인가 및 RBAC (Node.js / NestJS) > 역할 기반 접근 제어, 커스텀 가드, 데코레이터, 권한, 리소스 소유권 - 20 면접 질문 - Mid-Level - [면접 질문: Node.js / NestJS](https://sharpskill.dev/ko/technologies/node-nestjs/interview-questions.md) ## 1. RBAC(Role-Based Access Control)란 무엇입니까? **답변** RBAC는 사용자의 역할에 따라 권한을 부여하는 접근 제어 시스템입니다. 각 사용자마다 권한을 개별적으로 관리하는 대신, RBAC는 권한을 역할(예: ADMIN, USER, MANAGER)로 그룹화하고 이러한 역할을 사용자에게 할당합니다. 이는 애플리케이션의 접근 관리를 단순화하며, 특히 NestJS에서 커스텀 가드와 메타데이터 데코레이터와 함께 유용합니다. ## 2. 인증과 인가의 차이는 무엇입니까? **답변** 인증은 사용자의 신원(당신은 누구인가?)을 확인하며, 일반적으로 로그인/비밀번호나 JWT 토큰을 통해 이루어집니다. 인가는 사용자의 권한(당신은 무엇을 할 수 있는가?)을 확인하여 역할이나 권한에 따라 리소스 접근을 제어합니다. NestJS에서 인증은 흔히 JwtAuthGuard를 사용하고, 인가는 접근 권한을 확인하기 위해 RolesGuard 같은 커스텀 가드를 사용합니다. ## 3. 커스텀 가드를 만들 수 있는 NestJS 데코레이터는 무엇입니까? **답변** NestJS에서 커스텀 가드를 만들려면 CanActivate 인터페이스를 구현하고 @Injectable()로 데코레이션된 클래스를 만들어야 합니다. 이 인터페이스는 boolean 또는 Promise를 반환하는 canActivate(context: ExecutionContext) 메서드를 요구합니다. 이후 가드는 @UseGuards()로 라우트에 적용할 수 있습니다. 이 아키텍처는 복잡한 검증을 수행하기 위해 가드에 의존성(서비스, 리포지토리)을 주입할 수 있게 합니다. ## 17개 추가 질문 이용 가능 - RBAC에서 'permission(권한)'은 무엇을 나타냅니까? - NestJS에서 가드를 controller에 연결하려면 어떻게 합니까? 무료로 가입하기: https://sharpskill.dev/ko/login ## 기타 Node.js / NestJS 면접 주제 - [Node.js 기초](https://sharpskill.dev/ko/technologies/node-nestjs/interview-questions/nodejs-fundamentals.md): 20개 질문, Junior - [Node.js 코어 API](https://sharpskill.dev/ko/technologies/node-nestjs/interview-questions/nodejs-core-apis.md): 25개 질문, Junior - [비동기 프로그래밍](https://sharpskill.dev/ko/technologies/node-nestjs/interview-questions/asynchronous-programming.md): 25개 질문, Junior - [Express.js 기초](https://sharpskill.dev/ko/technologies/node-nestjs/interview-questions/express-basics.md): 20개 질문, Junior - [NestJS 기초](https://sharpskill.dev/ko/technologies/node-nestjs/interview-questions/nestjs-fundamentals.md): 23개 질문, Junior - [REST API 설계](https://sharpskill.dev/ko/technologies/node-nestjs/interview-questions/rest-api-design.md): 20개 질문, Junior - [검증과 DTO](https://sharpskill.dev/ko/technologies/node-nestjs/interview-questions/validation-dto.md): 20개 질문, Junior - [API 문서화 및 계약](https://sharpskill.dev/ko/technologies/node-nestjs/interview-questions/api-documentation.md): 20개 질문, Junior - [에러 처리](https://sharpskill.dev/ko/technologies/node-nestjs/interview-questions/error-handling.md): 20개 질문, Junior - [단위 테스트](https://sharpskill.dev/ko/technologies/node-nestjs/interview-questions/testing-unit.md): 20개 질문, Junior - [작업 스케줄링](https://sharpskill.dev/ko/technologies/node-nestjs/interview-questions/scheduling-cron.md): 15개 질문, Junior - [NestJS 모듈과 DI](https://sharpskill.dev/ko/technologies/node-nestjs/interview-questions/nestjs-modules-di.md): 20개 질문, Mid-Level - [구성 및 환경 관리](https://sharpskill.dev/ko/technologies/node-nestjs/interview-questions/configuration-environment.md): 20개 질문, Mid-Level - [JWT 인증](https://sharpskill.dev/ko/technologies/node-nestjs/interview-questions/authentication-jwt.md): 25개 질문, Mid-Level - [TypeORM을 사용한 데이터베이스](https://sharpskill.dev/ko/technologies/node-nestjs/interview-questions/database-typeorm.md): 30개 질문, Mid-Level - [Prisma ORM](https://sharpskill.dev/ko/technologies/node-nestjs/interview-questions/prisma-orm.md): 25개 질문, Mid-Level - [미들웨어와 인터셉터](https://sharpskill.dev/ko/technologies/node-nestjs/interview-questions/middleware-interceptors.md): 20개 질문, Mid-Level - [파일 업로드](https://sharpskill.dev/ko/technologies/node-nestjs/interview-questions/file-upload.md): 15개 질문, Mid-Level - [WebSockets](https://sharpskill.dev/ko/technologies/node-nestjs/interview-questions/websockets.md): 20개 질문, Mid-Level - [NestJS를 사용한 GraphQL](https://sharpskill.dev/ko/technologies/node-nestjs/interview-questions/graphql-basics.md): 25개 질문, Mid-Level - [엔드투엔드 테스트](https://sharpskill.dev/ko/technologies/node-nestjs/interview-questions/testing-e2e.md): 20개 질문, Mid-Level - [Redis를 사용한 캐싱](https://sharpskill.dev/ko/technologies/node-nestjs/interview-questions/caching-redis.md): 20개 질문, Mid-Level - [Bull을 사용한 큐](https://sharpskill.dev/ko/technologies/node-nestjs/interview-questions/queues-bull.md): 20개 질문, Mid-Level - [DevOps, Logging, CI/CD](https://sharpskill.dev/ko/technologies/node-nestjs/interview-questions/logging-monitoring.md): 25개 질문, Mid-Level - [Docker 및 컨테이너화](https://sharpskill.dev/ko/technologies/node-nestjs/interview-questions/docker-containerization.md): 25개 질문, Mid-Level - [마이크로서비스](https://sharpskill.dev/ko/technologies/node-nestjs/interview-questions/microservices.md): 30개 질문, Senior - [보안 모범 사례](https://sharpskill.dev/ko/technologies/node-nestjs/interview-questions/security-best-practices.md): 25개 질문, Senior - [성능 및 클라우드 배포](https://sharpskill.dev/ko/technologies/node-nestjs/interview-questions/performance-optimization.md): 30개 질문, Senior --- Source: SharpSkill (https://sharpskill.dev), tech interview preparation for your real stack. HTML version of this page: https://sharpskill.dev/ko/technologies/node-nestjs/interview-questions/authorization-rbac