SpringBoot

마이크로미터, 프로메테우스, 그라파나마이크로미터기존에는 사용하던 모니터링 툴을 변경하면 코드까지 모두 변경해야하는 문제가 발생했다.이런 문제를 해결하는 것이 마이크로미터라는 라이브러리이다.개발자는 마이크로미터 표준 측정 방식만 알고 있으면 변환해서 전달해준다. 마이크로미터 : 애플리케이션 메트릭 파사드라고 불리며 애플리케이션의 메트릭(측정 지표)을 마이크로미터가 정한 표준 방법을 모아서 제공해준다.추상화를 통해서 구현체를 쉽게 갈아끼울 수 있도록 해뒀다.스프링 부트 액츄에이터는 마이크로미터를 기본으로 내장해서 사용한다.개발자는 마이크로미터가 정한 표준 방법으로 메트릭을 전달하고 모니터링 툴에 맞는 구현체를 선택하면 된다.모니터링 툴이 변경되어도 구현체만 변경하면 된다.메트릭 확인하기스프링 부트는 마이크로..
액츄에이터프로덕션 준비 기능프로덕션 준비 기능 : 운영 환경에서 서비스할 때 필요한 기능들프로덕션을 운영에 배포할 때 준비해야 하는 비 기능적 요소들을 의미지표(metric), 추적(trace), 감사(auditing), 모니터링ex) 애플리케이션이 살아있는지, 로그 정보는 정상 출력되는지, 커넥션 풀 사용 현황 등.. 엑츄에이터 : 프로덕션 준비 기능을 편리하게 사용할 수 있도록 스프링 부트가 제공하는 기능마이크로미터, 프로메테우스, 그라파나 같은 모니터링 시스템과 쉽게 연동하는 기능도 제공액츄에이터 시작implementation 'org.springframework.boot:spring-boot-starter-actuator' //actuator 추가build.gradle 의존성 추가액츄에이터가 제공..
외부설정과 프로필외부 설정이란하나의 애플리케이션을 여러 다른  환경에서 사용해야할 때가 있다.개발 환경 : 개발이 잘 진행되고 있는지 내부에서 확인하는 용도개발 서버 -> 개발 DB운영 환경 : 실제 고객에게 서비스하는 용도운영 서버 -> 운영 DB각 환경에 따라서 다른 설정 값이 존재한다.ex) 서로 다른 DB를 사용하기에 DB 설정 값(url ...)이 존재한다. 환경에 따라 값을 설정하는 방법환경에 따라 변하는 설정 값을 내부에 포함하는 방법환경에 따라 빌드를 여러번 해야한다.빌드 결과물이 서로 다르고 유연성이 떨어진다.실행 시점에 외부 설정값을 주입하는 방법 (주로 사용하는 방식)환경과 무관하게 하나의 빌드 결과물을 생성설정 값은 각 환경에 맞게 실행 시점에 외부에서 주입한다.  실행 시점에 외부..
자동 구성예제 만들기JdbcTemplate을 사용한 회원 데이터를 DB에 보관하고 관리하는 기능 개발 @Datapublic class Member { private String memberId; private String name; public Member() { } public Member(String memberId, String name) { this.memberId = memberId; this.name = name; }}회원 예제 @Configuration@Slf4jpublic class DbConfig { @Bean public DataSource dataSource() { log.info("dataSource 빈..
스프링 부트 스타터와 라이브러리 관리스프링 부트는 라이브러리들을 편리하게 사용할 수 있는 기능을 제공한다.외부 라이브러리 버전 관리스프링 부트 스타터 제공 dependencies { //1. 라이브러리 직접 지정 //스프링 웹 MVC implementation 'org.springframework:spring-webmvc:6.0.4' //내장 톰캣 implementation 'org.apache.tomcat.embed:tomcat-embed-core:10.1.5' //JSON 처리 implementation 'com.fasterxml.jackson.core:jackson-databind:2.14.1' ...}...라이브러리 직접 선택 build.gradle 예시..
내장 톰캣WAR 배포 방식의 단점WAR 배포 방식의 단점WAS를 별도로 설치해야 한다.애플리케이션 코드를 WAR로 빌드해야 한다.빌드한 WAR 파일을 WAS에 배포해야 한다.개발 환경 설정이 복잡하다. 이 문제를 해결하기 위해 외장 서버를 라이브러리를 통해 내장 서버로 제공한다.내장 톰캣 - 서블릿public class EmbedTomcatServletMain { public static void main(String[] args) throws LifecycleException { System.out.println("EmbedTomcatServletMain.main"); //톰캣 설정 Tomcat tomcat = new Tomcat(); Connec..
웹 서버와 서블릿 컨테이너웹 서버와 스프링 부트 소개웹 서버 전통적인 방식 vs 최근 방식전통적인 방식 - 서버에 WAS를 설치하고 WAS에서 동작하도록 서블릿 스펙에 맞춰 코드 작성 -> WAR 형식으로 빌드 -> war 파일을 WAS에 전달해서 배포WAS 기반위에 개발하고 실행해야 하며 IDE 개발 환경에서도 WAS와 연동해야 하는 추가 설정이 필요하다.최근 방식 - 스프링 부트가 내장 톰캣(WAS)을 포함 -> 코드 작성 -> JAR 빌드 후 실행하면 WAS도 함께 실행WAS 설치, IDE 개발 환경에서 WAS와 연동하는 일을 수행하지 않아도 된다.톰캣 설치윈도우 사용자 톰캣 실행 / 종료톰캣폴더/bin 폴더로 이동실행 : startup.bat종료 : shutdown.bat 톰캣 실행 로그 위치톰캣..
스프링 부트스프링 부트 : 스프링 프레임워크를 편리하게 사용할 수 있도록 지원해주는 도구이다.시작을 위해 복잡한 설정 과정을 해결해준다. 스프링 부트의 핵심 기능 5가지WAS - 톰켓같은 웹 서버를 내장해서 별도의 웹 서버를 설치하지 않아도 된다.라이브러리 관리 - 손쉬운 빌드 구성을 위한 스타터 종속성 제공, 라이브러리 버전 자동 관리자동 구성 - 프로젝트 시작에 필요한 스프링과 외부 라이브러리의 빈을 자동 등록외부 설정 - 환경에 따라 달라져야 하는 외부 설정 공통화프로덕션 준비 - 모니터링을 위한 메트릭, 상태 확인 기능 제공이제는 스프링 프레임워크와 스프링 부트를 함께 사용하는 것은 필수!!스프링 부트가 너무 많은 편의 기능을 제공하기에 필수로 사용해야 한다.스프링 부트는 스프링 프레임워크를 쉽게..
h2boom
'SpringBoot' 태그의 글 목록