Skip to content

2024. 06. 27(Thu)

yachimiya edited this page Jun 27, 2024 · 14 revisions

📋 논의 내용

  1. 토큰 발급 방식
    • 일반 및 소셜 로그인 시, 리프레시 토큰은 HTTP-Only 쿠키로 발급하고, 액세스 토큰은 헤더의 Authorization에 포함하여 발급하기로 한다.
    • 쿠키의 이름은 카멜 케이스(Camel Case)를 따르기로 결정한다.
HTTP/1.1 200 OK
Set-Cookie: refreshToken=eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9...; HttpOnly; Path=/; Max-Age=2592000
Authorization: Bearer lyQhbBciO1JIUzI2NiIsBnR5cCI6GkpXBCJA...
  1. 이미지 파일 저장 방식

    • 이미지 파일은 S3와 같은 원격 파일 저장용 버킷을 사용하지 않고, 서버에 직접 저장하기로 한다. (예: /attachments, /files 등)
    • 파일 디렉토리 내부에서 또 세부적으로 user, task 등으로 나뉠 수 있다.
  2. 휴대폰 검증 API 분리

    • 회원가입 시와 아이디 찾기 시의 휴대폰 검증 API는 상태 코드와 로직이 모두 다르기 때문에 아래와 같이 경로를 분리한다:
      • /user/signup/valid/phone
      • /user/find/valid/phone
    • 코드 인증 부분은 상태 코드는 동일하지만 로직이 유사하고 바디만 달라지는 상황이므로, 쿼리 파라미터를 통해 해결한다.
      • /user/valid/code?type=find
      • /user/valid/code?type=signup
  3. 구체적인 HTTP 응답 상태 코드 정하기

  4. 엔티티의 필드명은 최대한 프론트 팀에서 정해준 이름대로 따라가도록 함

- content -> bio
- username -> email
- ...
  1. 인증코드 저장 방식
    • DB에 인증코드를 저장할 때는 인증코드 테이블에 용도(예: 회원가입, 아이디 찾기, 비밀번호 찾기 등)와 함께 저장한다.
    • 만료 시간이 지난 인증 코드는 정기적인 배치 작업을 통해 삭제한다. 배치 작업은 매일 새벽에 실행되도록 설정하여, 만료된 인증 코드들이 테이블에 남아있지 않도록 관리한다.
Column Name Data Type Constraints Description
id BIGINT PRIMARY KEY, AUTO_INCREMENT 고유 식별자
code VARCHAR(10) NOT NULL 인증 코드
purpose VARCHAR(16) NOT NULL 인증 코드 용도 (SIGNUP, FIND_ID, RESET_PASSWORD 등)
verification_target VARCHAR(255) NOT NULL 이메일 혹은 휴대폰 번호
created_at DATETIME NOT NULL, DEFAULT CURRENT_TIMESTAMP 생성 시간
expires_at DATETIME NOT NULL 만료 시간
Clone this wiki locally