Spring
-
bootWarSpring 2025. 11. 25. 20:50
이 글은 외장 톰캣에 웹 애플리케이션을 배포하기 위해 bootWar 작업을 수행하는 예시를 작성한 글입니다. bootWar란 gradle이 제공하는 태스크로, 스프링부트 애플리케이션을 war 파일로 빌드하는 작업입니다. plugins 설정gradle은 기본적으로 jar를 지원하기 때문에, 따로 war 플러그인을 추가해야 합니다.build.gradleplugins { // ... id 'war'} 혹은apply plugin: 'war' 위와 같이 설정하면, Gradle Tasks - build에 bootWar(스프링부트)와 war(순수) 작업이 추가됩니다. 아래와 같이 build.gradle에 어떻게 빌드할 것인지 명시해줄 수도 있습니다.bootWar로 빌드할거다.apply plugin: 'w..
-
[Spring + Thymeleaf] messages 국제화Spring 2025. 11. 14. 21:56
메시지 리소스 번들src/main/resources 하위에 메시지 프로퍼티 파일들을 생성합니다. messages.propertieshome.welcome=안녕하세요~! messages_ko.propertieshome.welcome=안녕하세요~! messages_en.propertieshome.welcome=Hi~! 설정 클래스LocaleChangeInterceptor를 다음과 같이 설정해주면, URL 파라미터로 lang을 받아서 처리해줍니다. API를 사용할 때, lang=ko와 같은 값을 넘겨준 경험이 있으시다면 익숙할 것입니다.@Configurationpublic class WebConfig implements WebMvcConfigurer { @Bean public LocaleResol..
-
[Spring MVC] Form 검증Spring 2025. 11. 13. 22:10
Thymeleaf + Validation(jakarta) + BindingResult(spring) 조합으로 폼을 검증하고, 에러를 반환하여 사용자에게 메시지를 보여주는 간단한 작업을 정리해보겠습니다.아무것도 입력하지 않고 제출 시, 아래와 같이 안내 메시지를 출력하는 작업입니다.build.gradleplugins { id 'java' id 'org.springframework.boot' version '3.5.7' id 'io.spring.dependency-management' version '1.1.7'}// ...dependencies { implementation 'org.springframework.boot:spring-boot-starter-thymeleaf' im..
-
[Spring] 전자정부프레임워크 crypto를 활용한 암호화Spring 2024. 6. 17. 21:07
서버의 프로퍼티 파일(Spring의 properties 파일)에 데이터베이스 연결 정보를 작성하거나 데이터베이스에 사용자의 정보 등 민감한 정보를 저장할 때에는 유출을 생각해서 적절한 암호화가 필요합니다. 이때, 데이터를 암호화한 후, 다시 복호화 할 수 없도록 하는 단방향 암호화를 활용할 수 있습니다. 대표적인 단방향 알고리즘으로는 해시 함수를 이용하여 원본 데이터를 고정된 길이의 해시값으로 변환하는 MD5, SHA-1, SHA-256 등이 있습니다. 이번 예시에서 작성할 전자정부 프레임워크의 crypto 라이브러리(패키지 까보면 jasypt 라이브러리 기반)도 위의 알고리즘들이 가용하지만, MD5와 SHA-1은 취약성 문제 때문에 SHA-256을 사용하는 것이 일반적입니다. 아래 예시는 전자정부프레임..
-
[Spring] @RequestBody와 @ResponseBody를 사용해 JSON 형식의 데이터 주고받기Spring 2023. 8. 31. 20:46
Dispatcher-servlet.xml... ...HTTP Request의 body 데이터를 json 형식의 파라미터로 받아서 객체로 매핑해주는 @RequestBody와 객체를 json 형식의 데이터로 매핑해서 Response의 body에 제공하기 위해서 사용하는 @ResponseBody를 사용하기 위해서, xml 설정 파일에 코드를 추가합니다. web.xml myapp contextConfigLocation classpath*:myapp/spring/context-*.xml org.springframework.web.context.ContextLoaderListener dispatcherServlet org.springframew..
-
스프링 IoC 컨테이너와 빈의 생성Spring 2023. 6. 26. 21:32
스프링 프레임워크에서 스프링 IoC 컨테이너에 의해서 관리되는 객체를 빈(Bean)이라고 합니다. 그리고 컨테이너는 빈을 생성할 때 의존성을 주입합니다. org.springframework.context.ApplicationContext 인터페이스를 구현해서 Spring IoC 컨테이너를 생성할 수 있습니다. 컨테이너는 configuration metadata(XML 또는 애노테이션 기반의 자바 코드를 통해 나타냄.)를 읽어서 빈의 인스턴스화, 구성, 그리고 조립을 담당합니다. 애노테이션(Annotation) 기반의 컨테이너 생성AppConfig.java@Configurationpublic class AppConfig { @Bean public MyService myService(MyRepos..