기술 창고/Spring(25)
-
[Spring Boot] Spring Boot로 프로덕션 환경 배포 준비하기 - (2) Configuration Properties
어플리케이션의 복잡한 설정을 지정하는 방법에 대해서 알아보겠습니다. 현재 통신하고 있는 통화 서비스가 있고, 이 서비스의 여러 값을 설정한다고 가정해보겠습니다. 위의 이미지와 같이 application.properties에 설정값들을 설정하고 그 외에 다른 기타 부수적인 설정들도 존재한다고 가정하겠습니다. Spring Boot를 사용하여 이 어플리케이션 설정들을 관리할 수 있는 방법은 무엇일까요? 여기서 Property 값을 정의하고 Spring Boot 어플리케이션에서 활용할 수 있는 방법은 무엇일까요? 어플리케이션을 위해 어필리케이션 설정을 많이 생성하려고 하는 경우 Spring Boot 에서 권장되는 방식은 Configuration Properties를 사용하는 것입니다. Configuration ..
2023.09.02 -
[Spring Boot] Spring Boot로 프로덕션 환경 배포 준비하기 - (1) Profile
이번에는 프로덕션 환경에서 사용 가능한 어플리케이션을 쉽게 만들어 배포할 수 있도록 하는 Spring Boot의 중요한 기능을 몇 가지 알아보겠습니다. Profile 기능 첫 번째로 살펴볼 기능은 Profile을 사용하여 어플리케이션 설정을 관리하는 기능입니다. 어플리케이션에는 다양한 환경이 있습니다. 개발 환경, QA 환경, 스테이지 환경, 프로덕션 환경 등등. 동일한 어플리케이션의 다양한 환경에서는 다양한 설정이 필요합니다. 동일한 코드에서 다양한 환경에 대한 다양한 설정이 있어야 할 필요가 있죠. 다른 데이터베이스와 통신하거나 다른 웹 서비스를 호출할 수도 있습니다. 개발 환경은 개발 데이터베이스와 통신하고 테스트 환경은 테스트 데이터베이스와 통신하며, 프로덕션 환경은 프로덕션 데이터베이스와 통신합..
2023.09.02 -
[Spring Boot] Spring Boot DevTools로 빠르게 빌드
DevTools를사용하면 개발자의 생산성을 높일 수 있습니다. 개발자들이 어플리케이션을 빌드할 때면 아주 빠르게 빌드하기를 바랍니다. 그래서 개발자에게 있어 생산성은 정말 중요하다고 볼 수 있습니다. 흔히 처음 개발을 접하거나 주니어 개발자들이 코드를 변경하거나 할 때 수동으로 서버를 재시작하는 모습을 볼 수 있는데 그렇지 않고 자동으로 서버를 다시 시작하고 코드에 대한 변경사항을 적용하는 것을 DevTools를 통해 수행할 수 있습니다. DevTools 사용 DevTools를 사용하려면 pom.xml을 사용하거나 build.gradle을 사용해야 합니다. 저의 경우 gradle 환경이기 때문에 build.gradle을 사용합니다. 그리고 spring-boot-devtools 디펜던시를 추가해줍니다. 그..
2023.09.02 -
[Spring Boot] Auto Configuration
일반적으로 Spring Boot를 사용하여 웹 어플리케이션을 빌드할 때에는 많은 설정이 필요합니다. 컴포넌트 스캔, Dispatcher Servlet 설정, 데이터베이스와 통신하기 위해 데이터 소스 설정, Bean에서 JSON, JSON에서 Bean으로 변환 등등. 이런 작업들을 간소화하기 위해서 Auto Configuration을 사용합니다. (1) Auto Configuration은 클래스 경로에 있는 프레임워크에 따라 생성됩니다. pom.xml이나 build.gradle에서 볼 수 있듯이 여러 Starter Project를 추가할 수 있고 많은 프레임워크들을 불러올 수 잇습니다. (2) Spring Boot는 기본 자동 설정을 제공합니다. 하지만 자체 설정을 제공하여 이를 오버라이드할 수 있습니다...
2023.08.29 -
[Spring Boot] Spring Boot Stater Projects
Spring Boot 에서 중요한 기능 중 하나는 Spring Boot Starter Projects 입니다. 일반적으로 어플리케이션을 빌드할 때에는 프레임워크가 많이 필요합니다. 예를 들어, Rest API를 빌드하려면 Spring 프레임워크, Spring MVC 프레임워크가 필요하고, Tomcat도 필요합니다. 어플리케이션을 실행하려면 json 변환까지 수행해야 합니다. 단위 테스트를 수행한다고 가정했을 때에는 Spring Test 프레임워크가 필요하고 Junit이나 Mockito 프레임워크가 필요합니다. 따라서 어플리케이션 기능을 빌드할 때마다 수많은 프레임워크가 필요합니다. 이러한 수많은 프레임워크들을 그룹화해서 어플리케이션을 쉽게 빌드할 수 있을까요? Starter Projects가 그 역할을 ..
2023.08.28 -
[Spring Boot] Spring Boot의 목표
spring boot 의 가장 중요한 목표는 프로덕션 환경에서 사용 가능한 어플리케이션을 빠르게 빌드할 수 있도록 하는 것입니다. 조금 더 길게 풀어 얘기해보자면 많은 기능을 가진 어플리케이션을 빠르게 빌드할 수 있는 것을 목표로 하는 것입니다. spring boot를 사용해 어플리케이션을 빠르게 빌드하는 기능들 (1) spring initializer (2) 웹사이트 활용 (start.spring.io) (3) spring boot starter projects - 프로젝트의 의존성을 빠르게 정의할 수 있습니다. (4) spring boot auto contiguration - 클래스 경로에 있는 의존성에 따라 자동으로 설정이 가능합니다. (5) spring boot devtools - 수동으로 서버를..
2023.08.28