2019/02/01 - [Programming/Spring Boot 시작하기] - Spring Boot 에서 messages.properties 을 이용한 다국어 처리 (4) Spring Boot 에서 messages.properties 을 이용해서 다국어를 쉽게 view 에서 사용할 수 있습니다. 하지만, Java 코드 내에서 이 다국어 메세지를 불러오려면 어떻게 해야 할까요? 물론 CookieLocaleResolver 등으로 상태를 저장하고 있다면 request 에서 Cookie value 을 가져와서 messages_(언어코드) 에 해당하는 properties 을 읽어오면 되겠죠. 그렇다면, 이 때 파일명을 직접 생성해서 properties 파일을 열어야 할까요? 당연히 Spring 에서는 Loca..
2019/01/29 - [Programming/Spring Boot 시작하기] - Spring Boot 에서 messages.properties 을 이용한 다국어 처리 (3) 쿠키로 관리되고 매개변수로 그 값을 변경하는 것이 완벽히 이해가 안된다면 간단한 예제 프로그램을 만들어 보는 것이 좋습니다. 각자 편한 대로 Spring Boot 프로젝트를 만듭니다. 이 때 Web 와 Thymeleaf 만 선택합니다.호출할 간단한 Controller 을 만듭니다. 앞 선 예제와 같이 MessageConfig 와 WebMvcConfig 도 만들어줍니다.다국어 출력을 위해 Thymeleaf 기반의 HTML 하나와 messages.properties, messages_ko_KR.properties, messages_en..
2019/01/28 - [Programming/Spring Boot 시작하기] - Spring Boot 에서 messages.properties 을 이용한 다국어 처리 (2) Spring Boot 에서는 org.springframework.web.servlet.LocaleResolver 인터페이스를 @Bean 으로 재정의하여 사용자의 언어를 어떻게 관리할 것인지 변경할 수 있습니다. FixedLocaleResolver, CookieLocaleResolver, SessionLocaleResolver 와 같은 구현체가 존재하는데 개인적으로 가장 많이 이용한다고 생각되는 CookieLocaleResolver 에 대해서 살펴보겠습니다. import org.springframework.context.annotat..
2019/01/28 - [Programming/Spring Boot 시작하기] - Spring Boot 에서 messages.properties 을 이용한 다국어 처리 (1) 그렇다면 Spring 은 어떻게 사용자의 언어나 국가를 판단하는 것일까요? 사실 매우 간단한데, 어떻게 처리하고 있는건지 모르는 분들이 많습니다.방법은 바로 브라우져의 언어 설정입니다.많이들 사용하시는 크롬에서는 "설정 > 고급 > 언어" 에서 이를 설정하고, 우선순위를 결정할 수도 있습니다. 저의 기본 브라우져인 파이어폭스에서는 아래와 같이 "설정 > 언어와 표현 > 언어" 에서 "선택" 버튼을 클릭하면 언어를 추가/제거하거나 순서를 변경할 수 있습니다. 언어의 우선순위를 변경하면 HTTP 요청 시 header 에 언어 정보가 포..
Spring Boot 에서 사용할 수 있는 다국어 처리(i18n)에 대해서 몇 가지만 이야기 하려고 합니다. Spring Boot 에서 다국어를 처리하는 가장 쉬운 방법은 src/main/resources 디렉토리에 messages.properties 파일을 이용하는 방법입니다.기본 제공할 언어에 대해서 messages.properties 에 정의하고 messages_ko.properties, messages_en.properties 와 같이 파일을 생성하면 해당 언어에 따른 메세지를 별도로 관리할 수 있습니다. 물론 messages_ko_KR.properties, messages_en_US.properteis 와 같이 언어 뿐만 아니라 국가에 따른 분류 파일도 추가로 설정할 수 있습니다.이를 쉽게 관리..
대부분 Spring 을 이용한 프로그래밍을 할 때에는 MVC, 요즘에는 WebFlux 을 많이 이용할 것이기 때문에 Spring Boot Starter 에서 제공하는 기능만으로도 시작 시 추가적인 동작이 필요하지 않는 경우가 대부분입니다. 하지만, 특정한 동작을 위해 서버 시작 시 어떠한 명령을 실행해야 한다던가, 반대로 종료 시 어떤 동작을 해야하는 경우는 분명 생길 수 있습니다. 가장 쉽게 생각해볼 수 있는 것은 생성자와 소멸자입니다. 그리고 jar 파일을 직접 실행할 때에는 main() method 내에 추가로 구현할 수도 있습니다. 하지만, Spring Boot 에서는 몇 가지 다른 방식으로 처리할 수 있습니다. 먼저 CommandLineRunner 나 ApplicationRunner 인터페이스를..
보통 많은 운영 환경에서 Web Server(정적인 파일 서비스)와 WAS 을 연동해서 서비스하는 경우가 많습니다. Tomcat 으로 서비스되고 있는 환경에서조차 내부에 경량 Apache HTTPd 가 내장되어 있기 때문에 별도의 Web Server 없이도 괜찮은 속도로 정적인 파일을 서비스 할 수 있지만, 몇 가지 이유(납득되는 것도 있고, 그렇지 않은 것들도 있지만) 때문에 여전히 기존 방식을 이용하는 곳도 많습니다. 개인적으로 생각할 때 가장 납득이 가는 경우는 "파일 업로드" 기능 때문입니다. 업로드된 파일을 다시 사용자가 내려받아야 할 경우라면 파일 원본 그 자체를 잘 보관하고 있다가 다른 영향 없이 다시 다운로드가 가능해야 합니다. 물론 파일 다운로드 시 권한 체크를 정교하게 한다거나 다운로드..
Spring 에서 제공하는 RestTemplate 을 이용하면 다른 URL 을 호출하고 결과를 받아오는 코드를 쉽게 작성할 수 있습니다. 기존에는 Apache Commons 의 http 을 많이 이용했으나, Spring 에서 제공하는 RestTemplate 의 사용빈도가 점점 늘어나고 있습니다. 그런데, RestTemplate 을 기본 설정대로 사용하는 경우도 있지만, 추가적인 설정이 필요한 경우가 있습니다. 크게 두 가지라고 생각되는데, 하나는 HttpClient 설정을 별도로 하기 위한 것이고, 다른 하나는 로깅 때문입니다. 어떻게 이 두 가지를 적용하는지 알아보겠습니다. 먼저 설정을 하기 위해 @Configuration 애노테이션을 이용해 Class 을 하나 만듭니다. 그리고 그 안에 RestTem..
Spring MVC 에서는 REST API 을 지원하기 위해 Jackson 라이브러리를 이용하여 response 을 Json 형태로 변경하여 제공하는 기능을 포함하고 있습니다. 또한 @RequestBody 을 이용해 @RequestMapping 으로 선언된 method 의 매개변수로 Json 으로 된 body 을 POJO 로 받을 수도 있습니다. 이러한 처리를 위해 Spring 은 Json 혹은 XML 등의 여러 형태의 값을 자동으로 처리하기 위해 MessageConverter 을 등록해두는데, HttpMessageConverter 인터페이스를 구현한 것을 개발자가 상속받아 변경하여 사용할 수 있습니다. Jackson 은 MappingJackson2HttpMessageConverter 을 제공하는데, 이..
Spring Boot 에서 Json 을 처리하기 위해 Jackson 라이브러리가 기본적으로 의존성 관계를 가지고 내려받게 되어 있습니다. 이를 Gson 으로바꿔서 사용하는 분들도 계시겠지만, Jackson 은 성능이나 기능에서 훌륭한 편이기 때문에 그대로 사용해도 좋습니다. Spring Boot 의 application.properties 에서 Jackson 의 설정을 아래와 같이 일부 할 수 있습니다. [출처] https://docs.spring.io/spring-boot/docs/current/reference/html/common-application-properties.html # JACKSON (JacksonProperties) spring.jackson.date-format= # Date fo..
- Total
- Today
- Yesterday
- NoSQL
- Spring
- 외장 WAS
- Redmine
- 페이징
- couchbase
- SI
- boot
- OracleJDK
- 도입기
- jooq
- docker
- git
- java config
- Spring Boot
- 워드프레스
- 프로젝트 규모
- Phabricator
- 시니어 프로그래머
- 클라우드플레어
- proxmox
- Nas
- 엘지
- KDE
- messages.properties
- 내장 WAS
- RestTemplate
- manjaro
- Spring MVC
- paging
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | 5 | 6 | 7 |
8 | 9 | 10 | 11 | 12 | 13 | 14 |
15 | 16 | 17 | 18 | 19 | 20 | 21 |
22 | 23 | 24 | 25 | 26 | 27 | 28 |
29 | 30 | 31 |