백엔드] 컨트롤러와 서비스, UNIQUE와 upsert

짱효·6일 전

퇴근후 2시간

목록 보기
5/5

1. 요청의 흐름

프론트 → 컨트롤러 → 서비스 → DB. 결과는 반대로 돌아옴

2. 컨트롤러와 서비스

컨트롤러는 입력 형식(body값에 null값이 잘들어왔군 - 타입같은거)과 HTTP 응답, 서비스는 제품 규칙(개발 body값이 비면 안되지)과 DB 작업.

3. input과 rows(서비스에 있음)

input은 저장해달라고 받은 값, rows는 DB 실행 결과 배열. rows[0]은 결과의 첫 번째 행.

4. 검사는 저장 전에

pool.query() - 서비스에 있음) 전에 잘못된 값을 막아요. 예) 개발 body은 null·빈 문자열·공백뿐이면 안됨(if로 막아서 throw는 오류를 전달). throw는 오류를 전달할 뿐, 400 응답은 별도로 컨트롤러에서 처리해야 해요.

5. PUT과 PATCH

  • PUT은 전체 교체,
  • PATCH는 부분 수정
    대상을 ID로 찾을지 날짜·카테고리로 찾을지는 별개. PUT에서 null은 내용을 비운다는 뜻.

6. UNIQUE와 upsert

UNIQUE는 중복 행을 막는 DB 제약, upsert는 없으면 생성하고 있으면 수정하는 저장 방식이에요.

profile
✨🌏확장해 나가는 프론트엔드 개발자입니다✏️

0개의 댓글