분류 전체보기
-
이번 포스트에서는 locale과 알아보고 spring boot에서 locale관리 방법에 대해 알아보자. Locale Locale이란? Locale이란 사용자의 언어, 지역 설정을 정의하는 문자열로 Locale에 따라 날짜, 숫자등의 출력 포멧이 다양하게 표현된다. public void afterPropertiesSet() throws Exception { printByLocale(Locale.KOREA); printByLocale(Locale.US); } private void printByLocale(Locale locale) { double money = 123456.789; LocalDateTime now = LocalDateTime.now(); NumberFormat nf = NumberForm..
Locale 관리이번 포스트에서는 locale과 알아보고 spring boot에서 locale관리 방법에 대해 알아보자. Locale Locale이란? Locale이란 사용자의 언어, 지역 설정을 정의하는 문자열로 Locale에 따라 날짜, 숫자등의 출력 포멧이 다양하게 표현된다. public void afterPropertiesSet() throws Exception { printByLocale(Locale.KOREA); printByLocale(Locale.US); } private void printByLocale(Locale locale) { double money = 123456.789; LocalDateTime now = LocalDateTime.now(); NumberFormat nf = NumberForm..
2023.12.13 -
이번 포스트에서는 표준 표현식을 이용해서 값을 출력하는 방법에 대해 알아보자. 표준 표현식 th:textth:text는 메시지를 출력하기 위해 사용되는 속성이다.표현식설명th:text="'some text'"주어진 some text로 대체th:text="#{property}"message source에 설정된 property를 활용하며 일반적으로 국제화(i18N)을 지원하기 위해 사용th:text="${attribute}"request scope에 저장된 attribute를 출력th:text와 유사하게 th:utext (utext: unescaped text)도 사용할 수 있다. text는 html 태그가 escape 처리되서 그냥 단순 문자열로 처리된다. 반면 utext는 html 태그가 escap..
[Thymeleaf] 02. 표준 표현식이번 포스트에서는 표준 표현식을 이용해서 값을 출력하는 방법에 대해 알아보자. 표준 표현식 th:textth:text는 메시지를 출력하기 위해 사용되는 속성이다.표현식설명th:text="'some text'"주어진 some text로 대체th:text="#{property}"message source에 설정된 property를 활용하며 일반적으로 국제화(i18N)을 지원하기 위해 사용th:text="${attribute}"request scope에 저장된 attribute를 출력th:text와 유사하게 th:utext (utext: unescaped text)도 사용할 수 있다. text는 html 태그가 escape 처리되서 그냥 단순 문자열로 처리된다. 반면 utext는 html 태그가 escap..
2023.12.10 -
이번 포스트에서는 "웹 프로그래밍"의 개요와 자바 기반 웹 프로그래밍 주요 특성에 대해 살펴보자. 웹 프로그래밍 웹 프로그램과 WAS웹 프로그램이란 통상 원격지의 서버(server)에서 실행되는 프로그램을 말한다. 원격지의 서버란 네트워크 저 너머 특정 IP(192.168.0.1)에서 동작하고 있다.stand alone applicationweb application일반적인 stand alone application의 경우는 클래스들이 동일한 컴퓨터의 JVM 위에서 동작하기 때문에 실행을 위해 고려할 내용이 별로 없다. 하지만 네트워크 너머 원격지 서버에서 실행되는 프로그램을 실행시키려면 어떻게 해야 할까? 어떻게 호출 해야하고 결과를 어떻게 확인해야 할지 막막하다. 일단 직접 호출할 수는 없으니 네..
01. 웹 프로그래밍 개요이번 포스트에서는 "웹 프로그래밍"의 개요와 자바 기반 웹 프로그래밍 주요 특성에 대해 살펴보자. 웹 프로그래밍 웹 프로그램과 WAS웹 프로그램이란 통상 원격지의 서버(server)에서 실행되는 프로그램을 말한다. 원격지의 서버란 네트워크 저 너머 특정 IP(192.168.0.1)에서 동작하고 있다.stand alone applicationweb application일반적인 stand alone application의 경우는 클래스들이 동일한 컴퓨터의 JVM 위에서 동작하기 때문에 실행을 위해 고려할 내용이 별로 없다. 하지만 네트워크 너머 원격지 서버에서 실행되는 프로그램을 실행시키려면 어떻게 해야 할까? 어떻게 호출 해야하고 결과를 어떻게 확인해야 할지 막막하다. 일단 직접 호출할 수는 없으니 네..
2023.12.09 -
이번 포스트에서는 Thymeleaf의 특성과 기본적인 개발 환경설정에 대해 알아보자. Thymeleaf란? Good Bye JSP~그동안 자바 진영에서 Dynamic Web Application을 만들 때에는 MVC 디자인 패턴에서 Controller를 Servlet이 담당하고 View를 JSP가 담당하는 구조가 상당히 장기간 유지 되었다. Servlet의 위치는 여전히 확고하지만 JSP의 위치는 예전만 못하다.대부분 웹 애플리케이션이 가뜩이나 CSR 기반의 SpringBoot 앱으로 개발되는 과정에서 그렇잖아도 SSR용 템플릿 엔진의 사용이 줄어드는 추세인데 JSP가 SpringBoot의 추천 템플릿 엔진에서 제외되면서 이젠 쓰면 안되나보다 하는 인식이 점점 강해지게 되었다. JSP는 안되고 Thym..
[Thymeleaf] 01. Hello Thymeleaf이번 포스트에서는 Thymeleaf의 특성과 기본적인 개발 환경설정에 대해 알아보자. Thymeleaf란? Good Bye JSP~그동안 자바 진영에서 Dynamic Web Application을 만들 때에는 MVC 디자인 패턴에서 Controller를 Servlet이 담당하고 View를 JSP가 담당하는 구조가 상당히 장기간 유지 되었다. Servlet의 위치는 여전히 확고하지만 JSP의 위치는 예전만 못하다.대부분 웹 애플리케이션이 가뜩이나 CSR 기반의 SpringBoot 앱으로 개발되는 과정에서 그렇잖아도 SSR용 템플릿 엔진의 사용이 줄어드는 추세인데 JSP가 SpringBoot의 추천 템플릿 엔진에서 제외되면서 이젠 쓰면 안되나보다 하는 인식이 점점 강해지게 되었다. JSP는 안되고 Thym..
2023.12.09 -
이번 포스트에서는 Rest Client에 대한 Slide 테스트를 위한 @RestClientTest를 사용해보자. Rest Client Test @RestClientTest Rest Client는 통상 서비스에 작성하며 원격지에서 제공하는 REST API를 사용하는 클라이언트이 @RestClientTest는 이를 테스트하기 위한 slice test 도구이다. @Target(ElementType.TYPE) @BootstrapWith(RestClientTestContextBootstrapper.class) @ExtendWith(SpringExtension.class) @OverrideAutoConfiguration(enabled = false) @TypeExcludeFilters(RestClientType..
[spring test] 8. Rest Client Test이번 포스트에서는 Rest Client에 대한 Slide 테스트를 위한 @RestClientTest를 사용해보자. Rest Client Test @RestClientTest Rest Client는 통상 서비스에 작성하며 원격지에서 제공하는 REST API를 사용하는 클라이언트이 @RestClientTest는 이를 테스트하기 위한 slice test 도구이다. @Target(ElementType.TYPE) @BootstrapWith(RestClientTestContextBootstrapper.class) @ExtendWith(SpringExtension.class) @OverrideAutoConfiguration(enabled = false) @TypeExcludeFilters(RestClientType..
2023.11.28 -
이번 포스트에서는 @RestController에 대한 단위테스트에 대해서 살펴보자. REST를 위한 단위 테스트 rest 동작을 확인하기 위해서는 두 가지 형태로 살펴볼 수 있다. 일단 일반적인 호출이 되는가에 대한 것은 앞서 살펴봤던 Controller Test와 유사하다. 추가로 생각할 만한 것은 응답의 타입에 대한 정도이다. andExpect(content().contentType(MediaType.APPLICATION_JSON)) 하지만 REST는 model이나 session에 데이터를 담지 않기 때문에 어떤 정보가 전달되었는지 즉 내용을 확인하기 위한 방법이 필요하다. 이를 위해 RestController의 단위 테스트에는 com.jayway.jsonpath가 주로 사용된다. 관련 문서는 htt..
[spring test] 7. @RestController Test이번 포스트에서는 @RestController에 대한 단위테스트에 대해서 살펴보자. REST를 위한 단위 테스트 rest 동작을 확인하기 위해서는 두 가지 형태로 살펴볼 수 있다. 일단 일반적인 호출이 되는가에 대한 것은 앞서 살펴봤던 Controller Test와 유사하다. 추가로 생각할 만한 것은 응답의 타입에 대한 정도이다. andExpect(content().contentType(MediaType.APPLICATION_JSON)) 하지만 REST는 model이나 session에 데이터를 담지 않기 때문에 어떤 정보가 전달되었는지 즉 내용을 확인하기 위한 방법이 필요하다. 이를 위해 RestController의 단위 테스트에는 com.jayway.jsonpath가 주로 사용된다. 관련 문서는 htt..
2023.11.28 -
이번 포스트에서는 Junit과 MockMvc를 이용해서 file upload를 테스트하는 방법에 대해서 살펴보자. file upload test multipart() get방식 또는 post 방식의 request를 생성하기 위해서 MockMvcResultBuilders의 get(), post() 메서드를 사용했다면 file upload를 위해서는 multipart()를 사용한다. multipart()의 반환타입은 MockMultipartHttpServletRequestBuilder 인데 이를 이용해서 file을 등록할 수 있다. 그래도 업로드할 파일은 필요한데 이때는 MockMultipartFile 클래스를 이용한다. 나머지 설정(파라미터, 쿠키 등)은 일반적인 테스트와 동일하다. @Controller ..
[spring test] 6. @Controller Test 3 - File upload test이번 포스트에서는 Junit과 MockMvc를 이용해서 file upload를 테스트하는 방법에 대해서 살펴보자. file upload test multipart() get방식 또는 post 방식의 request를 생성하기 위해서 MockMvcResultBuilders의 get(), post() 메서드를 사용했다면 file upload를 위해서는 multipart()를 사용한다. multipart()의 반환타입은 MockMultipartHttpServletRequestBuilder 인데 이를 이용해서 file을 등록할 수 있다. 그래도 업로드할 파일은 필요한데 이때는 MockMultipartFile 클래스를 이용한다. 나머지 설정(파라미터, 쿠키 등)은 일반적인 테스트와 동일하다. @Controller ..
2023.11.27 -
이번 포스트에서는 @Controller에 대한 다양한 테스트 예를 살펴보자.@Controller에 대한 다양한 단위테스트 처리해보기먼저 테스트 대상인 @Controller와 테스트를 구성해보자.@Controllerpublic class MainController { @GetMapping("/") public String index() {... } @GetMapping("/redirect") public String redirect(RedirectAttributes redirAttr) {... } @GetMapping("/add") public String add(@RequestParam double a, @RequestParam double b, @CookieValue(required ..
[spring test] 5. @Controller Test 2이번 포스트에서는 @Controller에 대한 다양한 테스트 예를 살펴보자.@Controller에 대한 다양한 단위테스트 처리해보기먼저 테스트 대상인 @Controller와 테스트를 구성해보자.@Controllerpublic class MainController { @GetMapping("/") public String index() {... } @GetMapping("/redirect") public String redirect(RedirectAttributes redirAttr) {... } @GetMapping("/add") public String add(@RequestParam double a, @RequestParam double b, @CookieValue(required ..
2023.11.27