본문 바로가기

Spring Study/SpringBoot4

[SpringBoot] Actuator 프로덕션 준비 기능이란? 개발자가 애플리케이션을 개발할 때 기능 요구사항만 개발하는 것은 아니다. 서비스를 실제 운영 단계에 올리게 되면 개발자들이 해야하는 또 다른 중요한 업무가 있다. 바로 서비스에 문제가 없는지 모니터링하고 지표들을 심어서 감시하는 활동들이다. 운영 환경에서 서비스할 때 필요한 이런 기능들을 프로덕션 준비 기능이라 한다. 즉, 애플리케이션이 현재 살아있는지, 로그 정보는 정상 설정 되었는지, 커넥션 풀은 얼마나 사용되고 있는지 등을 확인할 수 있어야 한다. application.yml - 추가 management: endpoints: web: exposure: include: "*" 엔드포인트 설정 (endpoint) 엔드포인트를 사용하려면 2가지 과정이 모두 필요하다. 1. 엔드포.. 2023. 12. 6.
[SpringBoot] 외부 설정과 프로필 외부 설정이란? 하나의 애플리케이션을 여러 다른 환경에서 사용해야 할 때가 있다. 대표적으로 개발이 잘 진행되고 있는지 내부에서 확인하는 용도의 개발 환경, 그리고 실제 고객에게 서비스하는 운영 환경이 있다. - 개발 환경: 개발 서버, 개발 DB 사용 - 운영 환경: 운영 서버, 운영 DB 사용 배포 환경과 무관하게 하나의 빌드 결과물을 만든다. 이 그림에서는 app.jar를 빌드한다. 설정 값은 실행 시점 각 환경에 따라 외부에서 주입한다. - 개발 서버: app.jar를 실행할 때 dev.db.com값을 외부 설정으로 주입한다. - 운영 서버: app.jar를 실행할 때 prod.db.com값을 외부 설정으로 주입한다. cf. 유지보수하기 좋은 애플리케이션 개발의 가장 기본 원칙은 변하는 것과 변하.. 2023. 11. 30.
[SpringBoot] 스프링 부트 스타터와 라이브러리 관리 1. 라이브러리 관리의 어려움 1. 수 많은 라이브러리 중 어떤 라이브러리를 사용해야 할지 고민 2. 각 라이브러리의 버전 고민 → 호환성 문제 이러한 문제들을 해결하기 위해 스프링 부트를 사용한다. 2. 스프링 부트 기능 1. 외부 라이브러리 버전 관리 2. 스프링 부트 스타터 제공 3. 스프링 부트 라이브러리 버전 관리 개발자는 원하는 라이브러리만 고르고 라이브러리의 버전은 생략해도 된다. dependency-management 버전 관리 'io.spring.dependency-management' 플러그인 사용하여 'spring-boot-dependencies'에 있는 bom 정보를 참고한다. 4. 스프링 부트 스타터 'spring-boot-starter-web' 라이브러리 하나로 직접 넣어주었던 .. 2023. 11. 23.
[SpringBoot] 웹 서버와 서블릿 컨테이너 JAR, WAR JAR란? 자바는 여러 클래스와 리소스를 묶어서 JAR(Java Archive)라고 하는 압축 파일을 만들 수 있다. 이 파일은 JVM 위에서 직접 실행되거나 다른 곳에서 사용하는 라이브러리로 제공된다. 직접 실행하는 경우 main() 메서드가 필요하고, MANIFEST.MF 파일에 실행할 메인 메서드가 있는 클래스를 지정해두어야 한다. 즉, Jar는 클래스와 관련 리소스를 압축한 단순한 파일이다. 필요한 경우 이 파일을 직접 실행할 수도 있고, 다른 곳에서 라이브러리로 사용할 수도 있다. WAR란? WAR(Web Application Archive)라는 이름에서 알 수 있듯이 WAR 파일은 웹 애플리케이션 서버(WAS)에 배포할 때 사용하는 파일이다. JAR 파일이 JVM 위에서 실행된.. 2023. 11. 21.