백엔드 기초 1일차

오정빈·2025년 10월 14일

내일배움캠프

목록 보기
17/22

백엔드 기초 지식 공부

2025.10.14

📦 Properties of HTTP Request Methods

MethodRequest BodyResponse BodySafeIdempotentCacheable
GETOptionalYes✅ Yes✅ Yes✅ Yes
HEADOptionalNo✅ Yes✅ Yes✅ Yes
POSTYesYes❌ No❌ No✅ Yes
PUTYesYes❌ No✅ Yes❌ No
DELETEOptionalYes❌ No✅ Yes❌ No
CONNECTOptionalYes❌ No❌ No❌ No
OPTIONSOptionalYes✅ Yes✅ Yes❌ No
TRACENoYes✅ Yes✅ Yes❌ No
PATCHYesYes❌ No❌ No❌ No

Optional: 있을 수도 있고 없을 수도 있다.


개념 정리

🔸 Safe (안전성)

  • GET 메서드는 데이터를 조회만 하므로 안전하다.
  • POST, PUT, DELETE, PATCH는 데이터를 생성·수정·삭제하기 때문에 안전하지 않다.

🔸 Idempotent (멱등성)

  • 한 번 호출하든 여러 번 호출하든 결과가 같다.
  • GET, PUT, DELETE는 멱등성을 보장한다.
  • POST는 멱등성을 보장하지 않는다.

멱등성이 중요한 이유

  1. 요청 실패 시 재시도 가능
    → 항상 같은 결과면 여러 번 요청해도 문제 없음
    → 멱등성이 없으면 중복 요청으로 데이터가 중복 생성될 수 있음
  2. 캐시 가능성
    • GET, HEAD, POST는 캐시 가능
    • 일반적으로는 GET, HEAD만 캐시로 사용

캐시(Cache)

  • 클라이언트가 한 번 요청한 데이터를 임시 저장하여,
    매번 서버에 재요청하지 않고 빠르게 접근할 수 있도록 하는 기술.

상태 코드 (HTTP Status Codes)

코드의미설명
2xx성공요청이 성공적으로 처리됨
3xx리다이렉션다른 URI로 이동 필요 (예: 구글/카카오 로그인 같은 상황에서 자주 나옴)
4xx클라이언트 오류잘못된 요청, 권한 문제 등
5xx서버 오류서버 내부 문제로 처리 실패

REST API / RESTful API 디자인 규칙

  1. 동사보다는 명사, 단수보다는 복수 사용
    • /users O /getUsers X
  2. 마지막에 / 붙이지 않기
  3. _ 대신 - 사용, 대문자 사용하지 않기
  4. 확장자(.svg, .png, .exe) 포함하지 않기
  5. 계층적 구조 설계
    • /users/1/posts 처럼 상위-하위 관계 표현

Annotation (어노테이션)

자바 코드에 메타데이터를 추가하여,
컴파일러나 런타임에서 특정 동작을 수행하도록 하는 기능

예시:

  • @Override : 상속받은 메서드를 재정의
  • @Autowired : 스프링이 자동으로 의존성 주입
  • @RestController, @Service, @Repository : 역할 지정

복잡한 기능을 단순하게 사용할 수 있도록 도와준다.


Lombok 라이브러리

반복적인 코드(보일러플레이트)를 자동으로 생성해주는 라이브러리

  • @Getter, @Setter : getter/setter 자동 생성
  • @ToString : toString() 자동 생성
  • @AllArgsConstructor : 모든 필드를 매개변수로 받는 생성자 생성
  • @NoArgsConstructor : 기본 생성자 생성
  • @Slf4j : Logger 객체 자동 생성 (로그 출력용)

보일러플레이트 코드란?

getter/setter, 생성자, toString() 등
반복적으로 작성되는 코드들을 의미한다.

0개의 댓글