스프링 부트 개발 입문 11,12장

Tamszero·2025년 8월 1일

ECC

목록 보기
17/17

11장 HTTP와 REST 컨트롤러

요청 성공 - 200
데이터 생성 완료 - 201

요청 정보를 찾을 수 없음 - 404
서버 오류 - 500

  • REST : HTTP URL로 서버 자원을 명시하고 메서드로 해당 자원에대해 CRUD하는 것
  • API : 클라이언트가 서버 자원을 요청할 수 있도록 서버에서 제공하는 인터페이스
    즉 REST API란 REST기반으로 API를 구현한 것

11.2 - REST API 구현 과정

  • 주소설계

  • REST 컨트롤러와 일반 컨트롤러의 차이
    REST 컨트롤러는 JSON이나 텍스트 같은 데이터를 반환,
    일반 컨트롤러는 뷰 페이지를 반환

  • REST 컨트롤러의 특징
    @RestController 어노테이션을 붙여 선언한다.
    클라이언트의 데이터 조회,생성, 수정, 삭제 요청을 HTTP 메서드에 맞게 각각 @GetMapping, @PostMapping, @PatchMapping, @DeleteMapping, @DeleteMapping으로 받아 처리한다

  • ResponseEntity
    REST컨트롤러의 반환형, 즉 REST API의 응답을 위해 사용하는 클래스이다.
    요청을 받아 응답할 시 이 클래스에 HTTP상태코드, 헤더, 본문을 실어 보낼 수 있음

  • HttpStatus
    HTTP 상태를 관리하는 클래스로 다양한 Enum타입과 관련한 메서드를 가진다.
    상태코드 200은 HttpStatus.OK, 201은 HttpStatus.Created, 400은 HttpStatus.BAD_REQUEST등으로 관리된다

12장 서비스 계층과 트랜잭션

서비스란? 컨트롤러와 리파지터리 사이에 위치하는 계층으로 서버의 핵심 기능을 처리하는 순서를 총괄한다.

트랜잭션이란? 모두 성공해야 하는 일련의 과정을 말한다. 쪼갤 수 없는 업무 처리의 최소 단위.

롤백이란? 트랜잭션이 실패로 돌아갈 경우 진행 초기 단계로 돌리는 것을 롤백이라고 한다.

  • @service
    해당 어노테이션이 선언된 클래스는 서비스로 인식, 서비스 객체를 생성한다.
    컨트롤러는 객체주입(@Autowired)하는 방식으로 서비스 객체를 사용 가능

  • @Transactional
    해당 어노테이션이 선언된 메서드를 트랜잭션으로 묶는다. 모든 메서드 별로 각각의 트랜잭션이 부여됨. 트랜잭션으로 묶인 메서드는 처음부터 끝까지 실행되거나 아예 실행되지 않거나 둘 중 하나로 동작. -> 실패하면 롤백해 처음 상태로 되돌아가기때문

profile
공부로그

0개의 댓글