전체 글
-
버전 관리(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
-
다국어 처리(Internationalization)BackEnd/Spring Boot 2022. 4. 8. 07:55
Overview 해당 글에서는 하나의 출력 값을 여러가지 언어로 제공하는 다국어 처리를 하겠습니다. 우선 특정 컨트롤러가 아닌 프로젝트 전반적으로 적용시키기 위해 @Bean으로 등록하겠습니다. @Bean은 스프링 부트가 초기화 될 때 메모리에 올려두게 됩니다. 세션을 통해 Locale 값을 얻어오는 localeResolver 메서드를 정의합니다. (기본: 한국어) package com.spring.springboot; import java.util.Locale; import org.springframework.boot.SpringApplication; import org.springframework.boot.autoconfigure.SpringBootApplication; import org.spring..
-
ValidationBackEnd/Spring Boot 2022. 4. 6. 08:20
Overview 해당 글에서는 유효성 검사를 위해 Validation API를 사용해 보겠습니다. 의존성 추가 // Gradle implementation 'org.springframework.boot:spring-boot-starter-validation' // Maven org.springframework.boot spring-boot-starter-validation 유효성 검사를 할 필드에 애노테이션을 붙여줍니다. goodsName은 최소 5글자, 빈 문자열은 허용하지 않는다는 유효성을 추가합니다. 유효성 검사 실패 시 등록한 message로 예외를 던집니다. package com.spring.springboot.domain; import javax.validation.constraints.Not..
-
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..
-
Spring BootBackEnd/Spring Boot 2022. 4. 2. 07:42
스프링 부트는 독립 실행 가능한 애플리케이션을 개발하기 위한 플랫폼입니다. 간단하게 개발 실행할 수 있으며, 상용화 가능한 수준의 스프링 기반의 애플리케이션을 만들 수 있다는 장점을 가지고 있습니다. 기본적으로 스프링 프레임워크를 이용한 스프링 애플리케이션 개발에는 많은 설정 작업이 필요하지만, 스프링 부트를 이용하면 최소한의 설정만으로 스프링 플랫폼과 서드 파티(third-party) 라이브러리를 모두 사용할 수 있습니다. 특정 버전에 대한 정보나 업그레이드에 대한 지침은 the project release notes section 참고하시면 됩니다. Features 독립형 스프링 애플리케이션을 생성할 수 있습니다. Tomcat, Jetty 또는 Undertow 직접 내장하고 있습니다. (WAR 파일을..