SpringBoot
Springboot 모니터링 사용기[2] Prometheus, Grafana
Springboot 모니터링 사용기[2] Prometheus, Grafana
2022.06.14이전에 했던 Actuator만 가지고는 효율적인 모니터링을 진행할 수 없습니다. 그래서 Prometheus와 Grafana를 이용해서 모니터링을 해보겠습니다. 1. Prometheus란? 이벤트 모니터링 및 경고 용도로 사용하는 무료 소프트웨어 응용 프로그램입니다. PromQL이라는 유연한 쿼리와 실시간 경고가 가능합니다. 메트릭 이름 및 Key/Value 형태로 식별되는 시계열 데이터가 있는 다차원 모델입니다. 이것을 PromQL을 이용해서 분석이 가능합니다. 다양한 그래프와 대시보드 기능을 지원합니다. (그라파나 사용 예정) 저희는 Springboot Application의 메트릭 정보를 수집하여, 시각화를 진행할 예정입니다. 그렇기 위해선 Prometheus를 설치해야 합니다. 하지만 Docker를..
Springboot 모니터링 사용기[1] actuator
Springboot 모니터링 사용기[1] actuator
2022.06.121. Actuator란? 애플리케이션이 잘 동작하는지, 혹은 지금 상태가 어떤지 확인할 수 있고, 로그 레벨 같은 간단한 정보도 수정할 수 있는 기능을 제공합니다. 사용은 HTTP와 JMX을 활용해서 애플리케이션 외부에서 확인할 수 있습니다. 1-1. 디펜더시 추가 actuator를 사용하기 위해선 actuator 디펜던시를 추가해줘야 합니다. implementation 'org.springframework.boot:spring-boot-starter-actuator' 2. 엔드포인트 저희는 HTTP를 활용해서 접근할 예정입니다. 그렇다면 엔드포인트 즉 모니터링이나 수정을 할 수 있도록 애플리케이션과 연결해주는 연결지점입니다. 기본으로 제공되는 것들도 있고, 사용자가 직접 추가할 수도 있습니다. 기본 제..
Spring-Data-JPA [8] Querydsl 사용
Spring-Data-JPA [8] Querydsl 사용
2022.06.09저번 포스팅에선 Querydsl 설정을 했습니다. 이제는 직접 사용해보겠습니다. 1. JPAQueryFactory 등록 JpaRepository를 custom 했다는 컨벤션으로 ~~ RepositoryCustom을 만들어 해당 Repository를 상속하고, ~~ Impl로 구현체로 만드는 방식을 선택할 수도 있습니다. 하지만 Querydsl을 사용하기 위한 JPAQueryFactory를 Bean으로 만들고 @Repository 어노테이션을 사용하시는 게 더 좋습니다. ex) MemberRepository extends JpaRepository MemberRepositoryCustom extends MemberRepository MemberRepositoryImpl implmentation MemberR..
Springboot restdocs 적용기[2] 실전 사용
Springboot restdocs 적용기[2] 실전 사용
2022.06.07이전엔 기본적인 사용법에 대해서 알아봤습니다. 이번엔 custom 하고, 리펙토링을 진행해보겠습니다. 1. build.gradle 수정 이전과 달라진 부분만 주석으로 설명을 적겠습니다. plugins { id 'org.springframework.boot' version '2.6.4' id 'io.spring.dependency-management' version '1.0.11.RELEASE' id 'java' id 'org.asciidoctor.jvm.convert' version '3.3.2' } group = 'com.example' version = '0.0.1-SNAPSHOT' sourceCompatibility = '11' configurations { // config 추가 asciidoct..
Springboot restdocs 적용기[1] gradle 7.x
Springboot restdocs 적용기[1] gradle 7.x
2022.06.04프런트와 같이 프로젝트를 효율적으로 진행하려면 API 문서를 공유해야 합니다. restdocs를 통해서 손쉽게 만들 수 있습니다. 1. Springboot restdocs란? Spring Rest Docs는 테스트 코드를 기반으로 자동으로 API 문서를 작성할 수 있게 도와주는 프레임워크입니다. 물론 작성하는 방법이 API 문서를 만들어주는 Swagger보다 쉽지 않습니다. 하지만 반드시 테스트 코드 작성을 요하고, Test를 통과해야 된다는 장점이 있습니다. Test 코드가 필수로 되는 시기에 좋은 기술인 거 같습니다. 한 번 적용해보겠습니다. 2. build.gradle 수정 restdocs를 사용하기 위해서는 디펜던시를 추가하며, 몇 가지 작업을 해줘야 합니다. 추가해보겠습니다. 2-1. plugi..
Spring-Data-JPA [7] Querydsl 설정 (gradle 7.x)
Spring-Data-JPA [7] Querydsl 설정 (gradle 7.x)
2022.06.02Querydsl을 세팅하기 전에 무엇인지 먼저 알아봅시다. 1. Querydsl이란? 타입에 안전한 방식으로 HQL(Hibernate Query Language)를 실행하기 위한 목적으로 만들어졌습니다. HQL를 작성하다 보면, String 연결 (ex= "select"+ ~~)을 이용하게 됩니다. 이는 가독성의 어려움으로 이어질 수 있습니다. 따라서 가독성과 타입에 안전하도록 도메인 모델로 변경했다. 도메인 모델로 변경함으로써, 도메인 변경이 직접적으로 쿼리에 반영되고, 쿼리 작성 과정에서도 자동완성 기능을 사용할 수 있습니다. 따라서 빠르고 안정적인 쿼리를 만들 수 있습니다. 1-1. Queryds 원칙 1. 타입 안정성(Type Safety): 도메인 타입의 프로퍼티를 반영해서 생성한 쿼리 타입을 ..