예외처리 관련해서 수업을 나갔는데 어려운 것 투성이다.
메모를 해놓고 그 당시에 아, 이런 내용이구나! 라고 이해해놓고선 다음에 또 마주치면 '아.. 무슨 내용이었는데..'하면서 다시 찾아보게된다. 언제쯤 익숙해지려나.. 계속 반복적으로 작성하고 생각하는 방법 밖에는 없겠지. (눈물)
@RestController
- Spring MVC에서 RESTful 웹 서비스를 구현할 때 사용되는 어노테이션.
- HTTP 응답 본문에 객체를 JSON 또는 XML 형식으로 자동 변환하여 반환.
@RequestMapping("/경로")
- Spring MVC에서 HTTP 요청을 특정 메서드나 클래스에 매핑하는 데 사용되는 어노테이션.
- HTTP 메서드(GET, POST 등)와 URL 경로를 지정하여 요청을 처리
- 예시: @RequestMapping("/codegroups") -> /codegroups로 들어오는 HTTP 요청을 처리.
ResponseEntity
- HTTP 응답 상태 코드, 헤더, 본문(body)을 포함한 전체 응답을 표현하는 클래스
- ResponseEntity는 클라이언트에게 반환되는 "전체 HTTP 응답"을 구성하는 객체입니다.
- 클라이언트가 서버에 요청을 보내면, 서버는 HTTP 응답을 보냅니다. 이 응답은 3가지 중요한 요소로 구성되며 ResponseEntity는 이 세 가지를 모두 설정할 수 있는 객체입니다..
- 상태 코드: 응답이 성공적이었는지, 실패했는지 등을 나타내는 코드 (예: 200, 404, 500 등).
- 헤더: 응답에 대한 추가적인 정보 (예: 응답 타입, 캐시 설정 등).
- 본문(body): 실제로 클라이언트가 받아보게 되는 데이터 (예: JSON, HTML 등).
@RequestBody
- 클라이언트로부터 전송된 요청 본문(body)을 메서드 파라미터로 바인딩하는 데 사용.
- HTTP 요청의 본문에 있는 데이터를 자바 객체로 변환하여 메서드의 파라미터로 전달할 수 있습니다. 주로 JSON, XML, Form data 형식의 데이터를 처리할 때 사용됩니다.
예시
@PostMapping
public ResponseEntity<CodeGroupDTO> register(@RequestBody CodeGroupDTO codeGroupDTO) {
....
}
해석:
클라이언트로부터 RESTful API를 POST 방식으로 요청을 받으면,
요청 본문의 내용을 CodeGroupDTO 객체에 바인딩하고 그 결과를 ResponseEntity를 사용해 내용을 반환한다는 의미
"@RequestBody CodeGroupDTO codeGroupDTO" 이건 클라이언트로부터 전송된 요청 본문을 CodeGroupDTO 객체에 바인딩한다는 의미.
return ResponseEntity.ok(codeGroupDTO);
- HTTP 상태 코드 200 OK를 가진 응답을 생성하고, 인자로 받은 데이터를 HTTP 응답 본문에 포함시켜 클라이언트에 반환.
- **Spring의 @RestController**를 사용하고 있을 경우, 응답 본문은 기본적으로 JSON 형식으로 변환.
- 즉 codeGroupDTO 객체를 JSON 형식으로 반환.
'Java > SpringBoot' 카테고리의 다른 글
messages.properties (0) | 2024.11.07 |
---|---|
.of() 메서드 (0) | 2024.11.06 |
CustomUserDetails 클래스Builder 적용, JPA 활용한 UserEntity (0) | 2024.10.28 |
UserDetailsService, UserDetails, GrantedAuthority, SimpleGrantedAuthority, stream (0) | 2024.10.28 |
@Configuration, @Bean, @EnableWebSecurity, SecurityFilterChain, HttpSecurity (0) | 2024.10.28 |