
웹 애플리케이션에 메시지 적용하기 실제 웹 애플리케이션에 메시지를 적용해보겠다. 먼저 메시지를 추가 등록 messages.properties hello=안녕 hello.name=안녕 {0} // 추가 label.item=상품 label.item.id=상품 ID label.item.itemName=상품명 label.item.price=가격 label.item.quantity=수량 page.items=상품 목록 page.item=상품 상세 page.addItem=상품 등록 page.updateItem=상품 수정 button.save=저장 button.cancel=취소 타임리프 메시지 적용 타임리프의 메시지 표현식 #{...} 를 사용하면 스프링의 메시지를 편리하게 조회할 수 있다. 예를 들어서 방금 등록한 ..

기본으로 제공되는 MessageSource 인터페이스 public interface MessageSource { String getMessage(String code, @Nullable Object[] args, @Nullable String defaultMessage, Locale locale); String getMessage(String code, @Nullable Object[] args, Locale locale) throws NoSuchMessageException; } MessageSource 인터페이스를 보면 코드를 포함한 일부 파라미터로 메시지를 읽어오는 기능을 제공한다. 스프링이 제공하는 메시지 소스를 어떻게 사용하는지 테스트 코드를 통해서 학습할 예정 그 전에, properties 파..

스프링 메시지 소스 설정 스프링은 기본적인 메시지 관리 기능을 제공한다. 메시지 관리 기능을 사용하려면 스프링이 제공하는 MessageSource 를 스프링 빈으로 등록하면 되는데, MessageSource 는 인터페이스이다. => 따라서 구현체인 ResourceBundleMessageSource 를 스프링 빈으로 등록하면 된다. 1) 직접 등록 @Bean public MessageSource messageSource() { ResourceBundleMessageSource messageSource = new ResourceBundleMessageSource(); messageSource.setBasenames("messages", "errors"); messageSource.setDefaultEncod..

프로젝트 설정 이전 프로젝트에 이어서 메시지, 국제화 기능을 학습한다 스프링 통합과 폼에서 개발한 상품 관리 프로젝트를 일부 수정했는데 참고로 메시지, 국제화 예제에 집중하기 위해서 복잡한 체크, 셀렉트 박스 관리 기능은 제거했다. (앞선 상품 예제와 대동소이) 메시지와 국제화 메시지 가정 못된 기획자가 화면에 보이는 문구가 마음에 들지 않는다고, 상품명이라는 단어를 모두 상품이름으로 고쳐달라고 한다. 그렇다면... 여러 화면에 보이는 상품명, 가격, 수량 등, label 에 있는 단어를 변경하려면 다음 화면들을 다 찾아가면서 모두 변경해야 한다. 지금처럼 화면 수가 적으면 문제가 되지 않지만 화면이 수십개 이상이라면 수십개의 파일을 모두 고쳐야 한다. addForm.html , editForm.html..

https://school.programmers.co.kr/learn/courses/30/lessons/120830 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr 문제 설명 머쓱이네 양꼬치 가게는 10인분을 먹으면 음료수 하나를 서비스로 줍니다. 양꼬치는 1인분에 12,000원 음료수는 2,000원입니다. 정수 n과 k가 매개변수로 주어졌을 때, 양꼬치 n인분과 음료수 k개를 먹었다면, 총 얼마를 지불해야 하는지 return 하도록 함수를 완성해보세요. 제한사항 입출력 예 입출력 예 설명 아이디어 - 입출력 예를 가지고 개수와 금액을 적용시켜본다. - 몇..
build.gradle plugins { id 'java' id 'org.springframework.boot' version '3.1.0' id 'io.spring.dependency-management' version '1.1.0' } group = 'inflearn' version = '0.0.1-SNAPSHOT' sourceCompatibility = '17' configurations { compileOnly { extendsFrom annotationProcessor } } repositories { mavenCentral() } dependencies { implementation 'org.springframework.boot:spring-boot-starter-data-jpa' implem..
build.gradle과 gradle-wrapper.properties는 앞쪽에 있으므로 우선 생략 자카르타로 바뀜 cf. 3.0.5 버전으로 업그레이드 하려면 그냥 버전만 업그레이드 해주면 된다(시큐리티 설정 안 건드려도 되나봄) Config CorsConfig package inflearn.freejwt.config; import org.springframework.context.annotation.Bean; import org.springframework.context.annotation.Configuration; import org.springframework.web.cors.CorsConfiguration; import org.springframework.web.cors.UrlBasedCorsC..
3.01로 업데이트 하기 위한 작업 *** 자바 버전을 반드시 17 이상으로 해야 한다! build.gradle plugins { id 'java' // 두 개 수정 id 'org.springframework.boot' version '3.0.1' id 'io.spring.dependency-management' version '1.1.0' } group = 'inflearn' version = '0.0.1-SNAPSHOT' sourceCompatibility = '17' // 수정 configurations { compileOnly { extendsFrom annotationProcessor } } repositories { mavenCentral() } dependencies { implementat..