아이템 시뮬레이터 프로젝트
개발 기간
24/11/25~24/11/28 (4일)
코드 구조
서버 설정 (app.js)
Express 애플리케이션을 생성
환경 변수를 로드하여 서버를 설정
다양한 API 라우터를 /api 경로에 연결하여 회원가입, 로그인, 캐릭터, 삭제, 검색, 아이템 관련 기능 제공
지정된 포트(3000)에서 서버를 실행합니다.
Prisma 스키마 Item, Accounts, Characters, Character_Inventory, Character_Items의 다섯 가지 모델 정의
Item : 아이템의 고유 ID, 코드, 이름, 스탯, 가격, 캐릭터 인벤토리와 아이템 간의 관계 설정
Accounts: 계정 정보, 이메일, 아이디, 비밀번호, 이름, 나이, 성별, 생성일시
Characters : 고유 ID, 계정 ID, 닉네임, 체력, 공격력, 돈, 생성일자, 계정과의 관계를 설정
Character_Inventory : 캐릭터의 인벤토리 정보, 아이템 ID, 수량
Character_Items : 소지아이템, 착용여부
외래키 관계를 통해 서로 연결되어 있으며, Cascade 삭제 옵션 설정
API
아이템 생성, 수정, 목록 조회, 특정 아이템 조회와 관련된 API
회원가입, 로그인, 캐릭터, 삭제, 검색 관련 API
각각의 기능에 맞는 라우터로 구현
app.js에서 /api 경로에 연결
인증 미들웨어 (authM.js)
요청 헤더에서 authorization 정보를 추출하여 Bearer 토큰 형식을 확인하고, 유효하지 않으면 에러 반환
JWT를 검증하여 사용자 정보를 추출, 데이터베이스에서 해당 사용자 계정을 조회하여 존재하지 않으면 에러 반환
인증이 성공하면 인증된 사용자 정보를 req.abc에 저장 후 다음단계로 진행
개발 환경
IDE: Visual Studio Code (VSCode) 서버: Amazon EC2 인스턴스 데이터베이스: Amazon RDS API 테스트 도구: Insomnia 버전 관리: GitHub
사용 라이브러리
@prisma/client: 데이터베이스와의 상호작용을 위한 Prisma 클라이언트
bcrypt: 비밀번호 해싱을 위한 라이브러리
cookie-parser: 쿠키 파싱을 위한 미들웨어
dotenv: 환경 변수를 관리하기 위한 라이브러리
express: 웹 서버 프레임워크
jsonwebtoken: JWT 토큰 생성을 위한 라이브러리
prisma: Prisma ORM
nodemon: 개발 중 자동으로 서버를 재시작하기 위한 도구
핵심기능
사용자 회원가입 및 로그인 로그인 시 발행되는 토큰을 통해 인증 및 인가 진행 사용자 개인 계정에 귀속되는 캐릭터 생성, 조회, 삭제 기능 아이템 생성, 수정, 조회, 삭제 기능
오늘 이번주 아이템 시뮬레이터 프로젝트 기본 구성을 마무리하였고 새로운 프로젝트를 위한 테이블 구성, 기능들을 회의를 통해 진행하였다.
'TIL' 카테고리의 다른 글
내일배움캠프 6주차 화요일 TIL (0) | 2024.12.03 |
---|---|
내일배움캠프 6주차 월요일 TIL (1) | 2024.12.02 |
내일배움캠프 5주차 수요일 TIL (0) | 2024.11.27 |
내일배움캠프 5주차 화요일 TIL (0) | 2024.11.26 |
내일배움캠프 5주차 월요일 TIL (0) | 2024.11.25 |