VO(Value Object) : 같은 class에 같은 타입인 값이 있을때 혼동이 오지않게 하나의 class에 정의해주는 역할
- setter가 존재하지 않는 불변 객체여야 한다.
생성자를 통해서 객체가 생성될 , 값이 한번만 할당되고 이후에는 변경되지 않게 설정해야 함.
ResponseEntity : 일반적으로 Controller에서 객체를 리턴하는 경우에는 상태코드를 리턴할 수 없다. 그래서 ResponseEntity를 이용해서 상태코드와 객체를 동시에 리턴할 수 있다.
사용법
// 생성자 패턴
return new ResponseEntity(param1,param2,param3)
// 빌더 패턴
return ResponseEntity.(상태코드)
.param1()
.param2()
/*
* 상태코드 정리
* 200 OK
* 201 Created 요청에 성공해서 새로운 리소스가 생성됨
* 202 Accepted 요청이 접수되었으나 아직 처리가 완료되지 않음
* 204 NO Content : 요청은 성공했지만 본문에 보낼 데이터가 없음
*
* 301 Moved Permantly : 요청한 리소스의 url이 변경됨( 요청방식이 바뀔 수 있음 GET->POST)
* 308 Permanet Redirect : 301와 동일하지만 요청방식이 바뀌지 않음
* 302 Found : 리다이렉트 요청이 GET으로 변경되고 본문이 제거될 수 있음
* 307 Temporary Redirect: 307 Temporary Redirect
* 클라이언트가 요청한 리소스가 다른 URI에 있으며 이전 요청과 동일한 메소드를 사용해서 요청해야 할 때 서버가 클라이언트에 요청을 직접 보낸다.
* 기존의 요청 메소드(GET/POST 등)는 변경되면 안되며, 본문 또한 유지되어야 함
*
*
*
* 400 Bad Reqeust : 가장 많이 사용되는 4xx 에러로 요청 구문 또는 메시지 등의 오류가 있을 때 사용한다. 클라이언트는 요청 내용을 다시 검토후 보내야 한다.
* 401 Unauthorized : 클라이언트가 해당 리소스에 대한 인증이 필요하다. 예를들어 로그인이 필요한 환경에 비로그인으로 접근했을 경우 발생시킬 수 있다.
* 응답에 WWW-Authenticate 헤더와 함께 인증 방법을 설명해서 보낼 수 있다.
* 403 Forbidden : 서버가 요청을 이해 했지만 승인을 거부하는 경우 발생시킬 수 있다. 주로 인증은 완료되었지만, 접근 권한이 불충분한 경우로 예를들어 Admin등급이 아닌 사용자가 로그인(인증)은 완료했지만, Admin 등급 이상 접근 가능한 리소스에 접근했을 경우 발생한다.
* 404 Not Found : 비 개발자도 알고있는 404 Error. 대부분 요청 리소스가 없을때 발생한다.
* 추가적으로 403과 같이 클라이언트가 권한이 부족한 리소스에 접근했을 경우 페이지를 숨기는 용도로도 가끔씩 사용한다.
*
* 500 Internal Server Error : 웹 서버에 문제가 있을 때 발생하는 에러로, 서버에 발생하는 에러의 원인을 정확히 파악하지 못한 경우(애매할 경우) 500으로 처리한다.
*/