Spring
-
[김영한 스프링] 54. 스프링 타입 컨버터 - 포맷터 적용하기 & 스프링이 제공하는 기본 포맷터Spring/스프링 MVC 2편 - 백엔드 웹 개발 활용 기술 2023. 10. 11. 23:44
포맷터 적용하기 포맷터를 웹 애플리케이션에 적용해 보자. WebConfig - 수정 package hello.typeconverter; import hello.typeconverter.converter.IntegerToStringConverter; import hello.typeconverter.converter.IpPortStringConverter; import hello.typeconverter.converter.StringToIntegerConverter; import hello.typeconverter.converter.StringToIpPortConverter; import hello.typeconverter.formatter.MyNumberFormatter; import org.springf..
-
[김영한 스프링] 53. 스프링 타입 컨버터 - 포맷터(Formatter) & 포맷터를 지원하는 컨버전 서비스Spring/스프링 MVC 2편 - 백엔드 웹 개발 활용 기술 2023. 10. 11. 02:26
포맷터 - Formatter Converter는 입력과 출력 타입에 제한이 없는, 범용 타입 변환 기능을 제공한다. 이번에는 일반적인 웹 애플리케이션 환경을 생각해 보자. 불린 타입을 숫자로 바꾸는 것 같은 범용 기능보다는 개발자 입장에서는 문자를 다른 타입으로 변환하거나, 다른 타입을 문자로 변환하는 상황이 대부분이다. 앞서 살펴본 예제들을 떠올려 보면 문자를 다른 객체로 변환하거나 객체를 문자로 변환하는 일이 대부분이다. 웹 애플리케이션에서 객체를 문자로, 문자를 객체로 변환하는 예 화면에 숫자를 출력해야 하는데, Integer -> String 출력 시점에 숫자 1000 -> 문자 "1,000" 이렇게 1000 단위에 쉼표를 넣어서 출력하거나, 또는 "1,000"라는 문자를 1000이라는 숫자로 변..
-
[김영한 스프링] 52. 스프링 타입 컨버터 - 스프링에 Converter 적용하기 & 뷰 템플릿에 컨버터 적용하기Spring/스프링 MVC 2편 - 백엔드 웹 개발 활용 기술 2023. 10. 11. 01:34
스프링에 Converter 적용하기 WebConfig - 컨버터 등록 package hello.typeconverter; import hello.typeconverter.converter.IntegerToStringConverter; import hello.typeconverter.converter.IpPortStringConverter; import hello.typeconverter.converter.StringToIntegerConverter; import hello.typeconverter.converter.StringToIpPortConverter; import org.springframework.context.annotation.Configuration; import org.springfram..
-
[김영한 스프링] 51. 스프링 타입 컨버터 - 타입 컨버터(Converter) & 컨버전 서비스(ConversionService)Spring/스프링 MVC 2편 - 백엔드 웹 개발 활용 기술 2023. 10. 10. 23:02
타입 컨버터 - Converter 타입 컨버터를 사용하려면 org.springframework.core.convert.converter.Converter 인터페이스를 구현하면 된다. 주의 Converter라는 이름의 인터페이스가 많으니 조심해야 한다. org.springframework.core.convert.converter.Converter를 사용해야 한다. 컨버터 인터페이스 package org.springframework.core.convert.converter; public interface Converter { T convert(S source); } StringToIntegerConverter - 문자를 숫자로 변환하는 타입 컨버터 package hello.typeconverter.conve..
-
[김영한 스프링] 50. 스프링 타입 컨버터 - 소개Spring/스프링 MVC 2편 - 백엔드 웹 개발 활용 기술 2023. 10. 5. 02:48
스프링 타입 컨버터 소개 문자를 숫자로 변환하거나, 반대로 숫자를 문자로 변환해야 하는 것처럼 애플리케이션을 개발하다 보면 타입을 변환해야 하는 경우가 상당히 많다. HelloController - 문자 타입을 숫자 타입으로 변경 package hello.typeconverter.controller; import org.springframework.web.bind.annotation.GetMapping; import org.springframework.web.bind.annotation.RestController; import javax.servlet.http.HttpServletRequest; @RestController public class HelloController { @GetMapping("/..
-
[김영한 스프링] 49. 스프링 타입 컨버터 - 프로젝트 생성 & 세팅Spring/스프링 MVC 2편 - 백엔드 웹 개발 활용 기술 2023. 10. 5. 02:28
프로젝트 생성 https://start.spring.io 프로젝트 선택 Project : Gradle Project Language : Java Spring Boot : SNAPSHOT이 아닌 버전에서 2.x Project Metadata Group : hello Artifact : typeconverter Name : typeconverter Package name : hello.typeconverter Packaging : Jar Java : 11 Dependencies : Spring Web, Lombok, Thymeleaf 프로젝트 열기 build.gradle 선택 -> 프로젝트 열기 설정 설정 -> Gradle -> Intelij IDEA로 변경 설정 -> 파일 인코딩 -> 프로퍼티 파일에 대한..
-
[김영한 스프링] 48. API 예외 처리 - @ControllerAdviceSpring/스프링 MVC 2편 - 백엔드 웹 개발 활용 기술 2023. 10. 5. 01:53
API 예외 처리 - @ControllerAdvice @ExceptionHandler를 사용해서 예외를 깔끔하게 처리할 수 있게 되었지만, 정상 코드와 예외 처리 코드가 하나의 컨트롤러에 섞여 있다. @ControllerAdvice 또는 @RestControllerAdvice를 사용하면 둘을 분리할 수 있다. ExControllerAdvice main/java/hello/exception/exhandler/advice/ExControllerAdvice 생성 package hello.exception.exhandler.advice; import hello.exception.exception.UserException; import hello.exception.exhandler.ErrorResult; impo..
-
[김영한 스프링] 47. API 예외 처리 - @ExceptionHandlerSpring/스프링 MVC 2편 - 백엔드 웹 개발 활용 기술 2023. 10. 5. 01:40
API 예외 처리 - @ExceptionHandler HTML 화면 오류 vs API 오류 웹 브라우저에 HTML 화면을 제공할 때는 오류가 발생하면 BasicErrorController를 사용하는게 편하다. 이때는 단순히 5xx, 4xx 관련된 오류 화면을 보여주면 된다. BasicErrorController는 이런 메커니즘을 모두 구현해 두었다. 그런데 API는 각 시스템마다 응답의 모양도 다르고, 스펙도 모두 다르다. 예외 상황에 단순히 오류 화면을 보여주는 것이 아니라, 예외에 따라서 각각 다른 데이터를 출력해야 할 수도 있다. 그리고 같은 예외라고 해도 어떤 컨트롤러에서 발생했는가에 따라서 다른 예외 응답을 내려주어야 할 수 있다. 한마디로 매우 세밀한 제어가 필요하다. 앞서 이야기했지만, 예를..