| 일 | 월 | 화 | 수 | 목 | 금 | 토 |
|---|---|---|---|---|---|---|
| 1 | 2 | |||||
| 3 | 4 | 5 | 6 | 7 | 8 | 9 |
| 10 | 11 | 12 | 13 | 14 | 15 | 16 |
| 17 | 18 | 19 | 20 | 21 | 22 | 23 |
| 24 | 25 | 26 | 27 | 28 | 29 | 30 |
| 31 |
- Axios 라이브러리
- 카카오뷰 부업
- ppt 다이어그램
- 위드굿즈
- 카카오뷰 수익
- 카카오뷰 초보
- 카카오뷰 탭이동
- 웹기초
- 카카오뷰 성장
- 30일 글쓰기
- HTML
- 성공에 대한 거짓말
- express.js 환경 셋팅
- 위드굿즈 굿즈샵
- git 협업하기
- ppt 도형 색
- 실시간 통신
- 이석증
- 자기관리
- 원씽
- CSS
- Git 팀 작업
- 엑셀 프린트하기
- 도서 원씽
- 카카오뷰 온라인 수익화
- 성공비법
- 카뷰 수익 인증
- 책 원씽
- 엑셀 기초 함수
- 카카오뷰N잡
- Today
- Total
김데이의 개발공부
[ TIL ] Day 44 - 실습 : Express User 기능 구현 with Token 본문
[ TIL ] Day 44 - 실습 : Express User 기능 구현 with Token
theday365 2025. 11. 26. 19:04🗓️ 수업 일자 : 2025.11.26
✨ 오늘의 수업 평가 : [ PROJECT ] 실습 러버 👩💻🛠️ 실습 꿀잼 🍯😝
소올직히 user 인증/인가 기능에 대해 내가 겨우 이해한 정도라서 진짜 겁먹고 시작했는데,
기존에 작업했던 코드까지 수정 할 정도로 여유있게 작업해서 꽤나 놀램 🤓😉ㅋㅋㅋ
물론 거의 대부분 강의 코드를 보며 작성 했지만
그래도 로직 순서에 맞게 작업 했고,
각 모듈의 역할이 무엇인지 알고 작업 했으며,
문제가 생기면 어떤 모듈에서 잘못됬는지 파악 할 수 있었으니
이정도면 80% 이상 이해했다고 봐도 되겠지~? ㅋㅋ
👩💻 [개인 프로젝트] 오늘 작업 내용 💻
- 스프린트 미션 4 : Express User 인증 API 구현 /
관련된 Product & Article & comment 인가 추가
📝 오늘 배운 내용
- User 인증/인가 관련 기초 이론
- Token 작업하기
1. User 인증/인가 관련 기초 이론
MVC(Model-View-Controller) 패턴
- Model(모델), View(뷰), Controller(컨트롤러)가 독립적으로 작동하는 것을 목적으로 함.
- 가독성과 유지보수성이 높고, 변화에 대응하기 쉬워짐
- Model(모델) : 데이터베이스와 상호작용, 비지니스 로직 관리
- View(뷰) : 레이아웃, 화면 처리
- Controller(컨트롤러) : 모델과 뷰로 명령을 전달하는 역할
- Service(서비스) : 모델이 너무 많은 역할을 담당하고 있어서, 비지니스 로직만 분리하여 서비스가 담당.
작업 구조 분리
- Controller : API의 요청 / 응답에 반응하는 로직, 라우터에서 바로 접속하는 진입점
- Service : 이메일 중복 검사, 비밀번호 해싱, 민감 데이터 필터링 등을 진행
- Utility : 재사용 가능한 독립 함수, 작은 단일 기능을 담당
User Prisma Schema 설정
1. Unique 설정 : schema.prisma 에서 필드 값에 @unique 설정을 하지 않으면 prisma.{modelname}.findUnique 를 쓸 수 없음!
2. 필수 값이 아닌 경우, 꼭 ? (옵셔널) 설정 : [ image String? ]을 하지 않으면 API 테스트에서 Prisma 오류 발생!
2. Token 작업하기
1) .env 파일 작성 규칙
- KEY=VALUE 형태로 작성하며, "=" 앞뒤로 공백을 사용하면 안됨
- KEY는 무조건 대문자로 사용
- value는 자유롭게 사용, 공백이나 #(주석용 특수문자)을 써야하는 경우에만 따옴표를 사용하고 평소엔 따옴표 사용 안함
- 주석 사용 시 #으로 작성
# 기본 파일 셋팅
NODE_ENV=development
PORT=3000
# 토큰 셋팅
JWT_ACCESS_TOKEN_SECRET=supersecret_access_123
JWT_REFRESH_TOKEN_SECRET=supersecret_refresh_456
| .env 가 아니어도 되는 값 | .env에 꼭! 넣어야 하는 값 |
| 명칭 선언, 일반적으로 사용하는 값들 | 유출되면 바로 리스크가 생기는 값들 |
| PORT ACCESS_TOKEN_COOKIE_NAME REFRESH_TOKEN_COOKIE_NAME UPLOAD_PATH STATIC_FOLDER ... |
JWT_ACCESS_TOKEN_SECRET JWT_REFRESH_TOKEN_SECRET DB_URL DB_PASSWORD GOOGLE_API_KEY ... |
2) NODE_ENV의 역할
- Node.js 실행 환경을 구분하는 일종의 "모드 스위치", 현재 어떤 모드인지 알려주는 플래그(Flag)
- 개발 / 운영 환경에서 다르게 동작해야 하는 코드들을 제어하기 위해 사용
ex) 개발 모드용 콘솔 로그 설정, 쿠키 옵션 설정, DB 연결 시 개발용 / 운영용 설정, CORS 설정 등 - development : 개발단계
product : 배포 또는 실제 서비스 단계
test : 테스트 자동화 단계
3) Login & Logout Test 화면 - Access Token / Refresh Token 생성


4) Access Token 을 이용하여 USER 정보를 불러와 Product 등록!

📃 내일은 뭘 배울까 🤔
- 스프린트 미션 4 : 로그인 - 마이페이지 구현
- Passport OAuth 구조 정리
'코드잇 Node.js(BE) 부트 캠프 > TIL (Today I Learn) 📑' 카테고리의 다른 글
| [ TIL ] Day 46 - TypeScript 기본 문법 1 (1) | 2025.11.28 |
|---|---|
| [ TIL ] Day 45 - 실습 : User 개인 기능 (mypage & likes) 기능 구현 (0) | 2025.11.27 |
| [ TIL ] Day 43 - Passport 세션, 토큰 구조화 (0) | 2025.11.25 |
| [ TIL ] Day 42 - PASSPORT (node.js) 기본 문법(세션, 토큰) (0) | 2025.11.24 |
| [ TIL ] Day 41 + 해싱솔트, bcrypt 모듈, 유저 기능 세션 / 토큰 (0) | 2025.11.23 |