목록전체 글 (132)
낙서장이자 오답 노트이자 컨닝 페이퍼
본 포스팅은 패스트캠퍼스 환급 챌린지 참여를 위해 작성하였습니다. 강의 내용 정리 Database Seeding 개요: DB 시딩이란?DB 시딩(Seeding): 개발 환경에서 테스트나 시연을 위해 샘플 데이터를 자동으로 삽입하는 작업프로덕션에서는 잘 쓰지 않지만, 개발/테스트 환경에서는 필수 폴더 구조 및 시딩 준비Postman에 시드 폴더 생성Authorization → Bearer Token (환경 변수로 access_token 사용)시딩 순서:로그인다이렉터 생성장르 생성무비 생성 랜덤 데이터 생성 (Pre/Post 스크립트 활용)랜덤 다이렉터 생성랜덤 풀네임, 랜덤 국가 → name, country 값 자동 생성Postman Test 탭에서 응답 받은 id를 environment variab..
본 포스팅은 패스트캠퍼스 환급 챌린지 참여를 위해 작성하였습니다. 강의 내용 정리 환경변수와 스크립트 작성 문제 상황: 매번 토큰 복사 → 붙여넣기 너무 번거로움모든 API가 인증 필요 → 매번 로그인 → 토큰 복사 → Authorization 헤더에 붙여야 함실무에서는 자동화/재사용이 필요함 해결 1: 환경변수 (Environment Variable) 활용환경 만들기좌측 하단 Environments → + 클릭 → 환경 이름 입력예: FastCampus NestJS변수 추가:Key: host, Initial: (비워둬도 됨), Current: http://localhost:3000저장 후 우측 상단에서 해당 환경 활성화변수 사용법URL 앞부분을 {{host}} 로 치환{{host}}/movies마..
본 포스팅은 패스트캠퍼스 환급 챌린지 참여를 위해 작성하였습니다. 강의 내용 정리 Role Based Access Control 이론 RBAC이란?RBAC = Role-Based Access Control번역: 역할 기반 인가 시스템역할(Role)에 따라 리소스에 대한 **권한(Permission)**을 부여특정 리소스의 CRUD(Create, Read, Update, Delete) 권한을 역할에 따라 제어 왜 필요한가?사용자의 등급/역할에 따라 접근 가능한 기능을 나눌 수 있음예:어드민(Admin): 모든 기능 접근유저(User): 본인 리소스만 접근 가능게스트(Guest): 열람만 가능 구현 난이도RBAC는 매우 복잡하게 설계할 수 있지만, 단순하게 시작하는 것이 좋음복잡하게 설계할수록:기능 설..
본 포스팅은 패스트캠퍼스 환급 챌린지 참여를 위해 작성하였습니다. 강의 내용 정리 Guard 이론 왜 가드를 배우는가?기본기를 익힌 후 진도를 빠르게 나가기 위함.파트1에서 많은 내용을 소화해야 하므로 깊이 있고 빠르게 커버할 필요 있음. NestJS의 주요 기능 분류 및 비교 기능명주 목적실행 시점사용 포인트미들웨어요청 전 비파괴적 작업가장 먼저 실행logging, 공통 처리 등파이프유효성 검사 및 변환컨트롤러 진입 전DTO, transform가드인가(authorization) 처리컨트롤러 진입 직전권한 체크인터셉터요청/응답 가로채기컨트롤러 전/후응답 변경, 로깅 등기능은 유사한 일을 할 수 있지만, 각 기능의 문맥(Context)에 맞게 사용하는 것이 협업과 유지보수에 유리함. 가드(Guar..
본 포스팅은 패스트캠퍼스 환급 챌린지 참여를 위해 작성하였습니다. 강의 내용 정리 Middleware 이론 NestJS 요청 처리 순서미들웨어 → 가드 → 인터셉터 → 파이프 → 컨트롤러(핸들러) → 응답 → 인터셉터 → 예외 필터 미들웨어란?라우트 핸들러 실행 전에 동작Request, Response, Next 객체에 접근 및 조작 가능NestJS 공식 문서에도 다음과 같은 역할로 정의됨:미들웨어의 주요 역할기능 설명자유로운 로직 실행로그 출력, 요청 전처리 등req/res 객체 변경예: req.user 값 추가요청-응답 사이클 중단인증 실패 시 직접 응답 종료다음 단계로 전달next() 호출 시 다음 미들웨어 혹은 컨트롤러로 진행 미들웨어 만들기@Injectable()export class Lo..
본 포스팅은 패스트캠퍼스 환급 챌린지 참여를 위해 작성하였습니다. 강의 내용 정리 Access Token 재발급하기 목적Access Token은 유효기간이 짧음 (보안 목적)Refresh Token을 통해 Access Token 재발급 가능→ 로그인 없이 세션 유지 엔드포인트 구성@Post('token/access')rotateAccessToken(@Headers('Authorization') token: string) { const payload = await this.authService.parseBearerToken(token, true); return { accessToken: await this.authService.issueToken(payload, false), };}Auth..
본 포스팅은 패스트캠퍼스 환급 챌린지 참여를 위해 작성하였습니다. 강의 내용 정리 Jwt Strategy 적용하기 관련 패키지 설치pnpm i @nestjs/jwt @nestjs/passport passport passport-jwtpnpm i -D @types/passport-jwt@nestjs/jwt: NestJS에서 JWT 사용을 위한 모듈passport-jwt: JWT 기반 Passport 전략@types/passport-jwt: 타입 정의 JWT 발급 로직 분리issueToken() 함수 생성기존 로그인 로직에서 토큰 발급 코드 분리함수 시그니처:async issueToken(user: User, isRefreshToken: boolean): Promise내부 로직:type: access ..
본 포스팅은 패스트캠퍼스 환급 챌린지 참여를 위해 작성하였습니다. 강의 내용 정리 passport 이론 Passport란 무엇인가?모듈화된 인증 시스템다양한 인증 방식을 유연하게 연결ex) 이메일/비밀번호, 구글 로그인 등코드량을 줄일 수 있는 장점복잡한 인증 로직을 전략으로 추상화해 둔 덕분미들웨어 기반기존 코드에 비파괴적으로 통합 가능코어는 가볍고 일반화된 구조다양한 전략을 끼워 넣을 수 있게 설계됨세션 방식과 토큰 방식 모두 지원전략마다 방식이 다를 뿐, Passport 자체는 모두 지원풍부한 생태계수많은 전략 패키지 존재 (ex. passport-local, passport-jwt, passport-google 등) 패스포트 사용 시 주의점 장점단점인증 코드 작성이 간편추상화로 인해 유연성 ..