spring boot
-
HAL BrowserBackEnd/Spring Boot 2022. 5. 25. 19:24
Overview 해당 글에서는 API 응답에 부가적인 정보를 제공할 수 있는 HAL Browser 기능에 대해 알아보겠습니다. HAL Browser는 Hypertext Application Language의 약자로 API 리소스 간 일관되고 쉬운 하이퍼링크 방법을 제공하는 간단한 형식입니다. HAL Model Resources 관련 URI에 대한 링크 내장된 리소스 상태 Links 대상 URI 링크에 대한 관계 또는 참조 감가상각, 콘텐츠 협상 등에 도움이 되는 몇 가지 기타 선택적 속성 Dependency org.springframework.data spring-data-rest-hal-explorer 의존성을 추가하고 서버를 기동한 후 http://localhost:8088/ 접속하면 아래와 같은 ..
-
ActuatorBackEnd/Spring Boot 2022. 5. 20. 12:20
Overview 해당 글에서는 Spring Boot에서 자체적으로 제공해주는 Actuator 기능에 대해 알아보겠습니다. Actuator 기능을 통해 애플리케이션을 모니터링하고 관리할 수 있습니다. Dependency org.springframework.boot spring-boot-starter-actuator Actuator 의존성을 추가하고 서버를 기동한 후 http://localhost:8088/actuator 접속하면 HATEOAS가 적용된 아래와 같은 결과를 확인할 수 있습니다. http://localhost:8088/actuator/health를 통해 health check가 가능합니다. 보다 많은 정보를 확인하기 위해 application.yml 파일을 수정합니다. # port 변경 ser..
-
HATEOASBackEnd/Spring Boot 2022. 5. 20. 09:10
Overview 해당 글에서는 Level 3 REST API 구현을 위한 HATEOAS(Hypermedia As the Engine Of Application State) 기능에 대해 살펴보겠습니다. HATEOAS란 REST API를 사용하는 클라이언트가 서버와 동적인 상호작용이 가능하도록 하는 것을 의미합니다. 즉, 현재 리소스와 연관된 자원 상태 정보를 제공하는 것을 의미합니다. 예를 들어, 계좌 조회 시 아래와 같이 예치금, 출금, 이체 또는 요청 닫기 등의 후속 링크를 포함하여 응답합니다. HTTP/1.1 200 OK { "account": { "account_number": 12345, "balance": { "currency": "usd", "value": 100.00 }, "links": {..
-
버전 관리(Versioning)BackEnd/Spring Boot 2022. 4. 26. 08:35
Overview 해당 글에서는 REST API 버전 관리 방법에 대해 알아보겠습니다. URI Versioning 모든 URI에 공통적으로 적용되는 "/goods"의 경우 @RequestMapping 애노테이션을 사용하여 설정합니다. @RestController @RequestMapping("/goods") public class GoodsController { @GetMapping(path = "/v1/{goodsCode}") // endpoint public Goods findGoodsV1(@PathVariable int goodsCode) throws Exception { /* ... 생략 ... */ } @GetMapping(path = "/v2/{goodsCode}") // endpoint pub..
-
@JsonIgnoreBackEnd/Spring Boot 2022. 4. 25. 07:38
Overview 해당 글에서는 @JsonIgnore 애노테이션을 사용하여 응답 데이터를 Filtering 하겠습니다. 기존 응답 데이터는 아래와 같습니다. // 20220425073134 // http://localhost:8088/goods/1 { "goodsCode": 1, "goodsName": "1번 상품입니다." } @JsonIgnore 애노테이션을 사용하면 특정 데이터는 응답 데이터에서 제외시킬 수 있습니다. package com.spring.springboot.domain; import com.fasterxml.jackson.annotation.JsonIgnore; import javax.validation.constraints.NotEmpty; import javax.validation.c..
-
XML formatBackEnd/Spring Boot 2022. 4. 25. 07:16
Overview 해당 글에서는 XML 문서 format을 처리하는 방법에 대해 알아보겠습니다. API 호출 시 Headers에 Accept 값을 application/xml로 주면 xml 타입으로 요청하게 됩니다. 아무런 설정도 하지 않았다면 아래와 같이 결과는 406 Not Acceptable 입니다. SpringBoot에서는 dependency를 추가함으로 XML 문서를 처리할 수 있습니다. com.fasterxml.jackson.dataformat jackson-dataformat-xml 2.10.2
-
Exception HandlingBackEnd/Spring Boot 2022. 4. 5. 22:00
Overview 해당 글에서는 Spring AOP를 이용하여 Exception Handling 처리를 하겠습니다. GoodsController Exception Handling 처리를 위해 상품코드: 1로 호출 시에만 정상적으로 상품정보를 반환하고 그 외에는 Exception이 발생한다고 가정하겠습니다. (상품코드: 10000 호출 시 사용자 정의 Exception인 GoodsNotFoundException 발생, 그 외 최상위 Exception인 Exception 발생) package com.spring.springboot; import com.spring.springboot.domain.Goods; import com.spring.springboot.exception.GoodsNotFoundExcep..
-
Spring Boot 설정 및 동작 원리BackEnd/Spring Boot 2022. 4. 5. 21:30
Overview 해당 글에서는 Spring Boot의 설정과 동작 원리에 대해 알아보고 클라이언트의 요청을 받아 결과를 반환하는 REST Controller를 구현하겠습니다. 프로젝트 구조 Spring Boot 설정 Spring Boot 설정은 resources 폴더 하위의 application.properties(설정이름=값) 또는 application.yml(설정이름: 값) 파일을 사용합니다. Spring Boot의 기본 설정 파일은 application.properties이나 application.yml 파일을 주로 사용합니다. application.yml 파일은 계층 구조로 표현할 수 있고 prefix의 중복 제거가 가능해 가독성이 좋습니다. application.properties 파일을 app..