[JAVA / Spring Boot] Annotation이란? (and @Entity, @RestController, @RequestBody)

chaentopia·2024년 4월 16일
0

NOW SOPT SERVER 과제

목록 보기
12/14

2차 세미나

어노테이션이란?

어노테이션은 다른 프로그램에 유용한 정보를 제공하기 위해 사용되는 것으로 주석과 같은 의미를 갖게 됩니다.

  • 컴파일러에게 문법 에러를 체크하도록,
  • 프로그램을 빌드할 때, 코드를 자동으로 생성할 수 있도록,
  • 런타임에 특정 기능을 실행하도록
    정보를 제공합니다.

@를 이용해서 작성하며, 해당 타겟에 대해 동작을 수행하는 프로그램 외 다른 프로그램에는 영향을 주지 않습니다!

어노테이션의 종류

어노테이션은 크게 세 가지로 구분되는데,

  • 표준 어노테이션
  • 메타 어노테이션 : 어노테이션을 정의하는데 사용
  • 사용자 어노테이션
    이 있다.

지난 세미나에서 배운 어노테이션 중 몇가지만 살펴봅시다!

@Entity

객체와 테이블을 매핑하는 어노테이션입니다. 이 클래스는 JPA가 관리합니다. DB 테이블에 대응하는 하나의 클래스입니다.
JPA를 사용해서 DB 테이블과 매핑할 클래스는 해당 어노테이션을 꼭 붙여야만 매핑이 가능합니다.

@RestController

@Controller와 다르게 @RestController는 리턴값에 자동으로 @ResponseBody가 붙게되어 별도 어노테이션을 명시해주지 않아도 HTTP ResponseBody에 자바 객체가 매핑되어 전달되게 됩니다.

@RequestBody

이 어노테이션이 붙은 파라미터에는 HTTP Request의 Body가 그대로 전달됩니다. 일반적인 GET / POST 요청 파라미터에는 붙일 필요가 없습니다. 반면 xml이나 json 기반의 메세지를 사용하는 요청일 경우에는 이 방법이 유용합니다. HTTP 요청의 바디 내용을 통채로 자바 객체로 변환해서 매핑된 메소드 파라미터로 전달해줍니다.

+ @ResponseBody

자바 객체를 HTTP 요청의 바디내용으로 매핑하여 클라이언트로 전달합니다.
이 어노테이션이 붙은 파라미터가 있으면 HTTP 요청의 미디어 타입과 파라미터의 타입을 먼저 확인하게 됩니다. 처리할 수 있다면, HTTP 요청의 본문 부분을 통째로 변환해서 지정된 메소드 파라미터로 전달해 줍니다.
즉, @ResponseBody 어노테이션을 사용하면 HTTP 요청 바디를 자바 객체로 전달받을 수 있습니다.

profile
the pale blue dot

0개의 댓글