JAVA Spring 어노테이션2

윤슬·2025년 9월 22일

REST

웹의 자원을 관리하는 아키텍처/구조
1. 자원(Resources), 행동(Method), 표현
2. HTTP 프로토콜(규약)을 이용한 클라이언트와 서버 간의 일관성 통신 구성

REST API

REST 아키텍처에 따른 API
1. REST 기반의 웹서비스 인터페이스 구축
2. HTTP 요청을 통해 자원(데이터)을 CRUD 할 수 있도록 제공

RESTful API

REST API의 아키텍처를 잘 사용하는지 대한 개념
1. 조건
1. 일관성 : "/member/XXXX", "/board/XXXX"
2. 적절한 HTTP METHOD : POST(등록), GET(조회), PUT(수정), DELETE(삭제)
3. 무상태성
4. 응답 타입은 JSON/XML 제공

@SpringBootApplication

스프링부트 환경 설정
1. @SpringBootConfiguration : 프로젝트 내 @Configuration 어노테이션을 찾아서 bean(객체) 설정/등록
2. @EnableAutoConfiguration : Spring Boot가 자동으로 필요한 bean(객체)을 설정/등록, 내장형 TomCat 설정
3. @ComponentScan : 현재 클래스 기준으로 현 패키지 및 하위 패키지 내 자동으로 컴포넌트(클래스)를 스캔해서 스프링컨테이너 등록

  • 스캔 대상 : @Component, @RestController, @Controller, @Service, @Repository 등
  • 주의할점 : 현재 AppStart 클래스 기준 상위 패키지는 스캔되지 않으므로 프로젝트 항상 최상위 폴더에 위치

주요 어노테이션

  1. @Component : bean(객체) 자동 생성
  2. @Controller : HTTP 요청과 응답(view) 처리, + @Component
  3. @RestController : HTTP 요청과 응답(json) 처리, + @Controller + @ResponseBody
  4. @PostMapping : POST 방식 요청 매핑, 주로 Create
  5. @GetMapping : GET 방식 요청 매핑, 주로 Read
  6. @PutMapping : PUT 방식 요청 매핑, 주로 Update
  7. @DeleteMapping : DELETE 방식 요청 매핑, 주로 Delete
    • @XXXXMapping("/URL정의") : Mapping 어노테이션, 소괄호 안에서 정의할 웹주소(URL) 지정
    • 예) @GetMapping("/member") → "http://localhost:8080/member"
  8. @RequestMapping : 주로 class 요청 매핑, 공통 URL 정의
    @RequestMapping("/member")
    class Controller {
    @GetMapping("/find") // "/member/find"
    }
  9. @ResponseBody : 요청 처리 이후 응답 반환 시 JAVA 타입에서 JSON 타입으로 자동 변환
  10. @RequestParam : 쿼리스트링(GET/DELETE), 단일 매개변수(int/String/List/Map)
  11. @ModelAttribute : 쿼리스트링(GET/DELETE), 복수 매개변수(DTO/VO)
  12. @RequestBody : HTTP 본문(POST/PUT), 본문 객체(JSON), DTO/Map/List

HTTP 자료 포함

  1. 방법1. 쿼리스트링 : URL 경로상의 매개변수 표현, GET/POST/PUT/DELETE method, 매개변수 노출O
  1. 방법2. BODY(본문) : HTTP BODY에 매개변수 표현, POST/PUT method, 매개변수 노출X
  • 예) http://localhost:8080
  • F12[개발자도구] → [네트워크] → 지정 통신명 → [페이로드]
profile
우상향그래프

0개의 댓글