Spring

    [Spring] Accept-Language 헤더에 따라 다국어 지원하는 방법 한 번에 정리하기

    HttpServletRequest 사용해 Accept-Lanauge 헤더 처리하기 HttpServletRequest를 사용해 Aceept-Lanauge 헤더를 처리하고, Locale 객체(지역 정보를 나타내는 객체)로 변환하기 위해서는 ServletRequest의 함수로 선언된 getLocale 함수를 사용하면 된다. @GetMapping("/bloginfo/kotlinworld") fun getBlogInfo( request: HttpServletRequest ): ResponseEntity { val locale: Locale = request.locale // getLocale 실행 해 HttpServletRequest의 Accept-Lanauge 헤더 정보를 Locale 정보로 변환 ?: retu..

    [Spring] properties 파일의 Unsupported characters for the charset 'ISO-8859-1' 경고 메세지 해결 방법

    Unsupported characters for the charset 'ISO-8859-1' 경고 메세지의 발생 원인 이 메세지는 .properties 파일의 기본 인코딩이 ISO-8859-1 로 되어 있는데, 해당 인코딩으로 지원하지 않는 문자열을 쓸 때 발생한다. 이런 경우 경고를 무시하고 애플리케이션을 실행할 경우, 해당 문자를 읽으면 '????' 로 표기된다. 예를 들어 /bloginfo/kotlinworld 경로의 응답을 처리하는 함수를 만들어보자. 이 함수는 Accept-Language 값을 읽어 Locale 객체로 변환한다. @GetMapping("/bloginfo/kotlinworld") fun getBlogInfo( @RequestHeader("Accept-Language") locale..

    [Spring] @RequestHeader 사용해 HTTP Request의 헤더 값 처리하기

    @RequestHeader 사용해 HTTP Request의 헤더 값 처리하기 @RequestHeader을 사용하면, Http Request의 헤더에서 특정 키에 대한 값을 변수에 매핑할 수 있다. 예를 들어 헤더에서 Accep-Language 의 값을 찾아내 accepLanguage 변수에 매핑하고 싶다면 다음과 같이 사용하면 된다. *물론 실제로 Accept-Language는 복수의 언어가 올 수 있기 때문에 이렇게 처리하면 안된다. 여기서는 간단한 예시를 위해 이렇게 만들었다. @Controller class HomePageController { @GetMapping("/blog/info") fun getBlogInfo( @RequestParam(value = "blogUrl") blogUrl: St..

    [Spring] @RequestParam 사용해 쿼리 파라미터 처리하기

    스프링에서 HttpServletRequest를 사용해 쿼리 처리하기스프링에서 Url의 쿼리를 처리하기 위해서는 HttpServletRequest를 사용할 수 있었다. 예를 들어 다음과 같은 url에서 blogUrl에 해당하는 값인 kotlinworld.com을 처리하는 상황을 생각해 보자. GET http://localhost:8081/blog/info?blogUrl=kotlinworld.com 이런 경우 우리는 HttpServletRequest 객체의 getParameter 함수를 호출함으로써 blogUrl 변수에 blogUrl 쿼리 파라미터에 대응되는 값을 가져올 수 있었다. 다음은 /blog/info 경로의 요청을 처리해 블로그 정보를 반환하는 getBlogInfo 함수가 HttpServletReq..

    [Spring] ResponseEntity 란 무엇인가? 사용법 한 번에 정리하기

    ResponseEntity란 무엇인가? ResponseEntity 사용하면, Spring 에서의 HTTP 응답을 더욱 세밀하게 설정할 수 있도록 만들어준다. ResponseEntity가 무엇이길래 응답을 더욱 세밀하게 제어할 수 있도록 만드는 것일까? 이에 대해 알아보기 위해 ResponseEntity가 어떻게 선언돼 있는지 살펴보자. public class ResponseEntity extends HttpEntity { ... } ResponseEntity는 HttpEntity를 상속하는 클래스로, Http 응답과 관련된 설정들을 응답에 추가할 수 있도록 해준다. 즉, 우리가 일반적으로 아는 응답 코드, 헤더, 바디 모두를 설정할 수 있도록 만들어주는 것이다. 이를 통해 API 호출에 대한 응답을 더욱..