프로그래머스 데브코스 웹 풀사이클 19주차 4일차

웹 기반 문서 편집기 제작 프로젝트
BE 구조 설계서
구조 설계서
- 소프트웨어의 구조 설계를 기술하고 정의하는 문서
- 소프트웨어 개발 과정에 있어 가장 중요한 기준
- 프로젝트 초기 단계에서 필수적으로 산출해야 하는 문서
패키지 구조
Route
Model
Utility
Middleware
개요
- Main Framework : Express.js
- DBMS : MariaDB 11
- Dev. Sercer URL
Express : localhost:3031
MariaDB : host:post -> localhost:3306
user -> prgms/grgms
database name -> prgms_notes
- NPM Command : package.json
"start" : 로컬 개발 서버 실행
"build" : 프로덕션 배포를 위한 TypeScript 빌드
데이터베이스 설계
Table : users
- [PK] id: int(11) - auto-increment
- email: varchar(256)
- encrypted_password: text
Table : notes
- [PK] id: int(11) ‒ auto_increment
- title: text
- content: text
- user_id: int(11) 🡪 [FK] users#id
- created_at: timestamp
- updated_at: timestamp
사용자 인증 및 정보의 보호
사용자 인증 (User Authentication)
- 인증 정보 (credentials) 를 제출하도록 하여 유효한 사용자인지를 확인하는 절차
- 가입시 사용한 이메일 주소와 결부된 “암호화된 비밀번호” 를 비교
사용자 인가 (User Authorization)
- 특정 자원 (노트) 에 접근하고자 하는 사용자가 이 자원에 대한 권한을 가지고 있는지를 확인하는 절차
- 현재 로그인하고 있는 사용자의 id 를 노트의 소유자 id 와 비교
CORS (Cross-Origin Resource Sharing) 정책
- 정해진 URL 로부터 서비스된 FE 코드 (를 브라우저가 실행하여) 에 의한 요청만을 허용하는 정책을 구현