본문 바로가기

Spring

[Springboot] 액츄에이터 - info 엔드포인트 1. 기능 1) 애플리케이션의 기본 정보 노출 2) 기본으로 제공하는 기능 java: 자바 런타임 정보(default: 비활성화) os: OS 정보(default: 비활성화) env: Environment에서 info로 시작하는 정보(default: 비활성화) build: 빌드 정보, META-INF/build-info.properties 파일 필요 git: git 정보, git.properties 파일 필요 2. 실습 1) JAVA, OS 정보 application.yml 내용 추가 management: info: java: enabled: true os: enabled: true 2) env management: info: env: enabled: true info: app: name: hello-a.. 더보기
[Springboot] 액츄에이터 - 헬스정보 health 엔드포인트 헬스 정보를 사용하면 애플리케이션에 문제가 발생했을 때 문제를 빠르게 인지할 수 있음 애플리케이션이 요청에 응답할 수 있는지 판단하는 것을 넘어서 애플리케이션이 사용하는 데이터베이스가 응답하는지, 디스크 사용량에는 문제가 없는지 같은 다양한 정보들을 포함해서 만들어짐 헬스 기능을 직접 구현할 수도 있음 액츄에이터는 db, mongo, redis, diskspace, ping 등과 같은 수 많은 헬스 기능을 기본으로 제공함 헬스 정보를 자세히 보려면 아래와 같은 옵션을 지정하면됨 // application.properties management.endpoint.health.show-details=always 헬스 정보 디테일하게 보기 // application.yml management: endpoint:.. 더보기
[springboot] 액츄에이터(actuator) 1. 의존성 추가 // build.gradle implementation 'org.springframework.boot:spring-boot-starter-actuator' //actuator 추가 2. 액츄에이터가 제공하는 수 많은 기능을 확인할 수 있음 액츄에이터가 제공하는 기능 하나하나를 엔드포인트라고하고 health는 헬스 정보를 beans는 스프링 컨테이너에 등록된 빈을 보여줌 { "_links": { "self": { "href": "http://localhost:8080/actuator", "templated": false }, "beans": { "href": "http://localhost:8080/actuator/beans", "templated": false }, "caches-cac.. 더보기
[Springboot] 스프링부트에서 로그(log) 설정/관리하기 - Logback 1. 로깅을 하는 이유 앱 개발 시 운영 중 발생하는 문제점을 모니터링 하거나 추적하는데 용이하고, 데이터를 분석해 통계를 낼 수 있음 2. 로깅을 위한 도구 SLF4J는 로깅에 대한 퍼사드(인터페이스) 역할을 하며 실제 로깅을 위한 구현체로는 Log4j, Logback이 있음 1) SLF4J(Simple Logging Facade for Java) 인터페이스 로깅에 관한 간단한 퍼사드(인터페이스)를 제공 실제로 로깅을 수행하는 것이 아닌 추상화 제공 코드에서 SLF4J 인터페이스를 사용하고 실행환경에서 로깅 라이브러리를 선택할 수 있도록 함 2) Log4j 구현체 가장 오래된 프레임워크이며 Apache 의 Java 기반 Logging Framework Log4j 1 버전은 자체 인터페이스 제공, Log.. 더보기
[Spring] WebClient와 RestTemplate WebClient: 리액티브 프로그래밍: WebClient은 리액티브 프로그래밍 원칙에 따라 설계되었으며, Spring WebFlux 모듈의 일부입니다. 비동기 및 리액티브 스트림을 지원합니다. 비동기 작업: WebClient은 비동기 작업을 수행할 수 있어, 대규모 동시 요청을 효율적으로 처리할 수 있습니다. 플루언트 API: WebClient은 요청을 생성하는 데 사용되는 플루언트 API를 제공하여 간결하고 표현력있게 코드를 작성할 수 있습니다. 엑스체인지 메서드: RestTemplate과 마찬가지로 WebClient도 exchange 메서드를 제공하여 다양한 HTTP 메서드를 지원합니다. RestTemplate: 전통적인 방식: RestTemplate은 전통적인 방식으로 동기적으로 동작하며, Spr.. 더보기
JPA 설정 persistence.xml 파일로 JPA 환경 설정 및 관리 sky.spring.domain.Board 1. 영속성 유닛 이름 // Java 소스 EntityManagerFactory factory = Persistence.createEntityManagerFactory("{영속성 유닛 이름}"); EntityManager manager = factory.createEntityManager(); persistence.xml 파일의 루트는 는 영속성 유닛에 해당하는 엘리먼트를 가짐(영속성 유닛은 연동하려는 데이터베이스 당 하나씩 설정) 영속성 유닛을 설정하면 어플리케이션에서는 영속성 유닛 설정을 로딩해서 EntityManagerFa.. 더보기
스프링 프로젝트 생성하기 1. Spring Initializr를 이용하여 스프링부트 프로젝트 생성하기 https://start.spring.io Group: (기업에서는 기업명을 넣는다고함) Artifact:빌드 후 이름(결과물 이름) Name: 프로젝트명 Description: 설명 Package name: 패키지명(Group Artifacta명으로 자동입력 됨) Dependencies: 필요한 의존성을 추가 GENERATE를 누르면 저장 2. 인텔리제이에서 열기 1) Open 2) 저장한 프로젝트 클릭해서 열기 더보기
[Springboot] SpringBoot 테스트 @SpringBootTest 1. @SpringBootTest? 1) 사용 목적 - 애플리케이션의 모든 구성요소를 로드하여 테스트 환경을 설정 - 실제 애플리케이션과 유사한 테스트를 제공 cf) @Runwith JUnit에서 기본적으로 제공하는 러너가 아닌 스프링 러너를 사용하는 경우 사용 2) 코드 예시 import org.junit.jupiter.api.Test; import org.springframework.boot.test.context.SpringBootTest; @SpringBootTest public class PropertiesTest { @Test public void testMehtod() { } } 2. @SpringBootTest의 속성 속성 설명 classes 테스트할 클래스 지정 (생략 시 어플리케이션에 .. 더보기