본문 바로가기

프레임워크/스프링25

[Spring] 프로메테우스, 그라파나 아키텍처 사용 프로메테우스?? 애플리케이션에서 발생한 메트릭을 그 순간만 확인하는 것이 아니라 과거 이력까지 함께 확인하려면 메트릭을 보관하는 DB가 필요한데 이렇게 하려면 어디선가 메트릭을 지속해서 수집하고 DB에 저장해야 한다. 프로메테우스가 바로 이런 역할을 담당한다고 합니다. 출처: https://prometheus.io/docs/introduction/overview/ 내가 사용하는 애플리케이션과 연동을 하려면 프로메테우스 포멧에 맞추어야 한다고 한다. 그리고 수집설정을 하면된다고 한다. 프로메테우스 - 애플리케이션 설정 build.gradle 추가 implementation 'io.micrometer:micrometer-registry-prometheus' //추가 실행 http://localhost:808.. 2024. 2. 16.
[Spring] actuator 액츄에이터? 시스템을 움직이거나 제어하는데 쓰이는 기계 장치라는 뜻입니다. build.gradle - 추가 implementation 'org.springframework.boot:spring-boot-starter-actuator' //actuator 추가 액츄에이터는 /actuator 경로를 통해서 기능을 제공한다. { "_links": { "self": { "href": "http://localhost:8080/actuator", "templated": false }, "health-path": { "href": "http://localhost:8080/actuator/health/{*path}", "templated": true }, "health": { "href": "http://localho.. 2024. 2. 15.
[SpringBoot] 라이브러리 관리 스프링부트는 라이브러리들을 편리하게 사용할 수 있게 다양한 기능들을 제공한다고 합니다. 외부 라이브러리 버전 관리 스프링 부트 스타터 제공 이런 기능들이 없으면 수 많은 라이브러리를 직접 버전까지 골라서 선택해야 하고 라이브러리들 간에 서로 호환이 잘 되는지 확인도 해야하는 까다로운도 있다. dependencies { //2. 스프링 부트 라이브러리 버전 관리 //스프링 웹, MVC implementation 'org.springframework:spring-webmvc' //내장 톰캣 implementation 'org.apache.tomcat.embed:tomcat-embed-core' //JSON 처리 implementation 'com.fasterxml.jackson.core:jackson-dat.. 2023. 3. 11.
[Spring] AOP 프록시와 내부 호출 문제 해결 방안 3가지 프록시와 내부 호출 - 문제 스프링은 프록시 방식의 AOP를 사용한다. 따라서 AOP를 적용하려면 항상 프록시를 통해서 대상 객체(Target)을 호출해야 한다. 이렇게 해야 프록시에서 먼저 어드바이스를 호출하고, 이후에 대상 객체를 호출한다. 만약 프록시를 거치지 않고 대상 객체를 직접 호출하게 되면 AOP가 적용되지 않고, 어드바이스도 호출되지 않는 문제가 발생한다. AOP를 적용하면 스프링은 프록시를 스프링 빈으로 등록하고 의존관계 주입시 프록시 객체를 주입한다. 그래서 대상 객체를 직접 호출하는 문제는 잘 발생하지 않는다. 하지만 대상 객체에서 프록시를 거치치 않고 직접 대상 객체를 호출하는 경우가 있는데 그럴 경우 문제가 발생한다고 한다. 실무에서 반드시 한번은 만나서 고생하는 문제라고 한다. .. 2023. 1. 22.