반응형 개발/Spring Boot9 스프링 부트 액츄에이터 액츄에이터 Actuator 스프링 부트가 제공하는 액츄에이터는 지표, 추적, 감사, 모니터링과 같은 프로덕션 준비 기능을 매우 편리하게 사용할 수 있는 다양한 편의 기능을 제공한다. 나아가서 다양한 모니터링 시스템과 매우 쉽게 연동할 수 있는 기능도 제공한다. 액츄에이터 의존성 추가 아래 의존성을 build.gradle에 추가해야지 액츄에이터를 사용할 수 있다. implementation 'org.springframework.boot:spring-boot-starter-actuator' // actuator 추가 액츄에이터 기능 사용 액추에이터를 사용하려면 애플리케이션의 main() 메서드를 실행시키고 /actuator 경로로 접근해야 한다. /actuator 경로를 통해 액츄에이터가 제공하는 수 많은 .. 개발/Spring Boot 2023. 3. 4. 스프링 부트 자동 구성 스프링 부트의 자동 구성 스프링 부트는 자동 구성(Auto Configuration)이라는 기능을 제공해서, DataSource, TransactionManger과 같은 일반적으로 자주 사용하는 수많은 빈들을 자동으로 등록해준다. 자동 구성 덕분에 개발자는 반복적이고 복잡한 빈 등록과 설정을 최소화 하고 애플리케이션 개발을 빠르게 시작할 수 있다. 스프링 부트는 spring-boot-autoconfigure라는 프로젝트 안에서 수 많은 자동 구성을 제공한다. @AutoConfiguration: 자동 구성을 사용하려면 이 애노테이션을 등록해야 한다. 이 애노테이션을 살펴보면 메타 애노테이션으로 @Configuration을 가지고 있으므로 빈을 등록하는 자바 설정 파일로 사용할 수 있다. after의 의미는.. 개발/Spring Boot 2023. 3. 4. 서블릿 컨테이너, 내장 톰캣과 스프링 부트 먼저 JAR와 WAR에 대해 알아보자. JAR Java Archive의 줄임말이다. 자바의 클래스 파일과 여러 리소스를 묶어서 만든 압축 파일이다. 이 파일은 JVM위에서 실행되거나 또는 다른 곳에서 사용하는 라이브러리로 제공된다. 직접 실행하는 경우 main() 메서드가 필요하고, MANIFEST.MF 파일에 실행할 메인 메서드가 있는 클래스를 지정해야 한다. WAR Web Application Archive의 줄임말이다. WAR 파일은 WAS에 배포할 때 사용하는 파일이다. 웹 애플리케이션 서버 위에서 동작한다. HTML같은 정적 리소스와 클래스 파일을 모두 포함하므로 JAR보다 구조가 복잡하다. 과거와 현재의 WAS 사용 방식 과거에는 스프링으로 웹 애플리케이션을 개발할 때는 먼저 서버에 톰캣과 같.. 개발/Spring Boot 2023. 3. 3. @Value, @ConfigurationProperties, @Profile @Value @Value를 사용하면 외부 설정값을 편리하게 주입받을 수 있다. 물론 @Value도 내부에서 Environment를 사용한다. @Slf4j @Configuration public class MyDataSourceValueConfig { @Value("${my.datasource.url}") private String url; @Value("${my.datasource.username}") private String username; //... @Bean public MyDataSource myDataSource( @Value("${my.datasource.url}") String url, @Value("${my.datasource.username}") String username, @Val.. 개발/Spring Boot 2023. 3. 2. 외부설정과 프로필 외부 설정 개발 환경과 운영 환경에서 서로 다른 설정 값을 사용해야할 수 있다. 예를 들어 개발 환경과 운영 환경에 따른 데이터베이스 url, username, password 등이 있다. 이 문제를 해결하는 가장 단순한 방법은 각각의 환경에 애플리케이션을 빌드하는 것이다. 그럼 개발app.jar, 운영app.jar가 만들어진다. 해당 파일들을 각 환경별로 배포하면 된다. 하지만 이런 방법은 환경에 따라 빌드를 여러 번하고 개발 버전과 운영 버전의 빌드 결과물이 다르므로 좋은 방법이 아니다. 그러므로 보통 빌드는 한번만 하고 각 환경에 맞추어 실행 시점에 외부 설정 값을 주입한다. 이렇게 하면 빌드도 한번만 하면 되고, 개발 버전과 운영 버전의 빌드 결과물이 같기 때문에 개발환경에서 검증되면 운영 환경에.. 개발/Spring Boot 2023. 3. 2. 스프링 부트란 스프링 부트란 스프링 부트는 스프링을 기반으로 실무 환경에 사용 가능한 수준의 독립 실행형 애플리케이션을 복잡한 고민 없이 빠르게 작성할 수 있게 도와주는 여러 가지 도구의 모음이다. 스프링 부트의 목표 매우 빠르고 광범위한 영역의 스프링 개발 경험을 제공 강한 주장을 가지고 즉시 적용 가능한 기술 조합을 제공하면서, 필요에 따라 원하는 방식으로 손쉽게 변형 가능 프로젝트에서 필요로 하는 다양한 비기능적인 기술(내장형 서버, 보안, 메트릭, 상태 체크, 외부 설정 방식 등) 제공 코드 생성이나 XML 설정을 필요로 하지 않는다. 스프링 부트의 핵심 기능 컨테이너리스 개발: 별도의 웹 서버를 내장해서 웹 서버를 설치하지 않아도 됨. 라이브러리 관리: 손쉬운 빌드 구성을 위한 스타터 종속성 제공, 스프링과 .. 개발/Spring Boot 2023. 2. 28. SLF4J, Logback 개념 이번에는 맨날 단순히 사용하기만 한 SLF4J와 Logback 개념을 정리해보려고한다. SLF4J SLF4J란 The Simple Logging Facade for Java의 약어다. 쉽게 말하면 SLF4J 자바 진영의 로깅 프레임워크 인터페이스이며 개발자가 배포 시 원하는 로깅 프레임워크를 연결할 수 있도록 도와준다. 즉 다양한 로깅 프레임워크 구현체들 (java.util.logging, logback 및 reload4j)을 쉽게 갈아끼워서 사용할 수 있게 도와준다. 그럼 이제 공식 문서에서 소개하는 SLF4J 내용에 대해 정리해보겠다. 레거시 로깅 API 사용 시 SLF4J 사용 만약 프로젝트에서 사용하는 로깅 프레임워크가 SLF4J 이외의 로깅 API에 의존한다고 생각해보자. 기존의 로깅 프레임워크.. 개발/Spring Boot 2022. 10. 10. Spring Boot에서 build.gradle은 의존성 관리를 어떻게 하는걸까? 먼저 이전에 우아한 스프링 부트에 대한 공부 기록을 남기면서 의문점이 한 가지 남아있었다. 이전 우아한 스프링 부트에 대한 공부 기록이 남아있는 게시글은 아래와 같다. https://devdebin.tistory.com/229?category=1039778 우아한 스프링 부트 공부 기록 스프링 부트 스프링 부트는 스프링을 쉽게 제공하기 위해 제공되는 툴이다. 참고로 스프링이란 자바 엔터프라이즈 개발을 편하게 해주는 오픈소스 경량급 애플리케이션 프레임워크다. 스프링 devdebin.tistory.com 우리 개발자들은 스프링 부트를 사용하면서 직접적인 의존성의 버전을 적지 않아도 구체적인 의존성의 버전을 가져온다. maven의 경우는 pom.xml 파일에서 parent가 버전을 이미 다 알고 있기 때문이었.. 개발/Spring Boot 2022. 9. 15. 우아한 스프링 부트 공부 기록 스프링 부트 스프링 부트는 스프링을 쉽게 제공하기 위해 제공되는 툴이다. 참고로 스프링이란 자바 엔터프라이즈 개발을 편하게 해주는 오픈소스 경량급 애플리케이션 프레임워크다. 스프링 부트가 제공하는 3가지 큰 영역 빌드 : 프로젝트 생성, 의존성 관리, 애플리케이션 패키징 및 실행 코딩 : 개발 툴 제공, 자동 설정, 외부 설정 배포 및 관리 : 도커 이미지 생성, Actuator, 스프링 부트 어드민 빌드 프로젝트 생성 https://start.spring.io/ 여기에서 스프링 프로젝트를 만든다. 들어가면 다음과 좌측면에 같은 화면이 나온다. 스냅샷(SNAPSHOT)은 개발 중인 버전. 가급적이면 사용하지 말자. M(Milestone) 버전 배포는 했지만 바뀔 수 있는 버전. 공부하지 않는 이상 사용하.. 개발/Spring Boot 2022. 7. 30. 이전 1 다음 반응형