엔티티는 주로 데이터베이스의 테이블을 나타내는 클래스를 의미.
데이터베이스(DB)에 쓰일 필드와 여러 엔티티간 연관관계를 정의한다.
@Entity
: 클래스 위에 선언하여 이 클래스가 엔티티임을 알려준다. 이렇게 되면 JPA에서 정의된 필드들을 바탕으로 데이터베이스에 테이블을 만들어준다.
: Spring Framework에서 제공하는 클래스 중 HttpEntity라는 클래스가 존재한다. 이것은 HTTP 요청(Request)또는 응답(Response)에 해당하는 HttpHeader와 HttpBody를 포함하는 클래스이다. HttpEntity 클래스를 상속받아 구현한 틀래스가 ResponseEntity, RequestEntity 클래스이다. ResponseEntity는 사용자의 HttpRequest에 대한 응답 데이터를 포함하는 클래스이다. 따라서 HttpStatus, HttpHeader, HttpBody를 포함한다.
HttpEntity<T>란?: HTTP 요청 또는 응답 전체를 캡슐화하는 객체입니다.
즉, HTTP 헤더 + HTTP 바디를 함께 포함하는 컨테이너 역할을 합니다.
HttpEntity<T>의 주요특징1) 요청(Request) 또는 응답(Response)에 사용가능
HttpEntity<T>를 사용하면 바디와 헤더를 함께 설정가능.2) 불변객체 (Immutable)
HttpEntity<T> 객체는 생성 후 수정할 수 없음.3) 서브 클래스
RequestEntity<T> → 요청을 위한 HttpEntityResponseEntity<T> → 응답을 위한 HttpEntity (가장 많이 사용됨)HttpEntity<T> -> HTTP 요청 또는 응답 본문 + 헤더 포함
RequestEntity<T> -> HttpEntity<T>를 확장한 요청 객체 (추가로 HTTP Method, URL 포함)
ResponseEntity<T> -> HttpEntity<T>를 확장한 응답 객체 (HttpStatus 포함)
HttpStatus는 Spring Framework에서 제공하는 HTTP 상태 코드(HTTP Status Code) 를 관리하는 열거형(Enum) 입니다.
즉, 클라이언트 요청에 대한 서버의 응답 상태를 나타내는 코드입니다.
1) HTTP 상태 코드
웹에서 클라이언트(브라우저, 앱 등)가 서버에 요청을 보낼 때,
서버는 요청 처리 결과를 HTTP 상태 코드를 포함한 응답으로 반환합니다.
200 OK → 요청이 정상적으로 처리됨
201 Created → 새로운 리소스가 성공적으로 생성됨
400 Bad Request → 잘못된 요청 (클라이언트의 요청 오류)
404 Not Found → 요청한 리소스를 찾을 수 없음
500 Internal Server Error → 서버 내부 오류 발생
ResponseEntity.status(HttpStatus.BAD_REQUEST) → 400 Bad Request 응답 반환
ResponseEntity.status(HttpStatus.CREATED) → 201 Created 응답 반환