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

geun·2024년 3월 20일
0

데브코스

목록 보기
67/79
post-thumbnail

웹 기반 문서 편집기 제작 프로젝트

BE 구조 설계서

구조 설계서

  • 소프트웨어의 구조 설계를 기술하고 정의하는 문서
  • 소프트웨어 개발 과정에 있어 가장 중요한 기준
  • 프로젝트 초기 단계에서 필수적으로 산출해야 하는 문서

패키지 구조

Route

  • login
  • logout
  • users
  • notes

Model

  • note
  • user

Utility

  • mysql

Middleware

  • authentication
  • authorize

개요

  • 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 코드 (를 브라우저가 실행하여) 에 의한 요청만을 허용하는 정책을 구현

0개의 댓글