스프링에서 코틀린 코루틴 사용하기 코틀린은 언어적으로 코루틴을 지원하지만, 코루틴의 고급 기능들을 사용하기 위해서는 젯브레인에서 제공하는 코루틴 라이브러리에 대한 별도의 의존성을 추가로 설정해야 한다. 이는 스프링도 예외가 아니다. 먼저 별도의 의존성을 설정하지 않고, 코루틴을 사용해보면 어떤 일이 일어나는지 살펴보자. 이를 확인하기 위해 다음과 같이 컨트롤러를 만든다. @Controller class HomePageController() { @GetMapping("/bloginfo/kotlinworld") suspend fun getBlogInfo(): ResponseEntity { val blogInfo = BlogInfo("조세영의 Kotlin World", 3) return ResponseEnti..
Spring/MVC
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..
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..
@RequestHeader 사용해 HTTP Request의 헤더 값 처리하기 @RequestHeader을 사용하면, Http Request의 헤더에서 특정 키에 대한 값을 변수에 매핑할 수 있다. 예를 들어 헤더에서 Accep-Language 의 값을 찾아내 accepLanguage 변수에 매핑하고 싶다면 다음과 같이 사용하면 된다. *물론 실제로 Accept-Language는 복수의 언어가 올 수 있기 때문에 이렇게 처리하면 안된다. 여기서는 간단한 예시를 위해 이렇게 만들었다. @Controller class HomePageController { @GetMapping("/blog/info") fun getBlogInfo( @RequestParam(value = "blogUrl") blogUrl: St..
스프링에서 HttpServletRequest를 사용해 쿼리 처리하기스프링에서 Url의 쿼리를 처리하기 위해서는 HttpServletRequest를 사용할 수 있었다. 예를 들어 다음과 같은 url에서 blogUrl에 해당하는 값인 kotlinworld.com을 처리하는 상황을 생각해 보자. GET http://localhost:8081/blog/info?blogUrl=kotlinworld.com 이런 경우 우리는 HttpServletRequest 객체의 getParameter 함수를 호출함으로써 blogUrl 변수에 blogUrl 쿼리 파라미터에 대응되는 값을 가져올 수 있었다. 다음은 /blog/info 경로의 요청을 처리해 블로그 정보를 반환하는 getBlogInfo 함수가 HttpServletReq..