본문 바로가기

전체 글

Spring Restdocs (1) 버전 Java 17 Springboot 3.1.5 Spring 6.0.13 restdocs 3.0.0 Junit5 Gradle 8.4 (2) build.gradle plugins { id 'org.asciidoctor.jvm.convert' version '3.3.2' // (1) } configurations { compileOnly { extendsFrom annotationProcessor } asciidoctorExt // (2) } dependencies { asciidoctorExt 'org.springframework.restdocs:spring-restdocs-asciidoctor' // (3) testImplementation 'org.springframework.restdocs:.. 더보기
그라파나 설치 및 사용법 (1)그라파나 설치 https://grafana.com/grafana/download Download Grafana | Grafana Labs Overview of how to download and install different versions of Grafana on different operating systems. grafana.com (2) 그라파나 실행 그라파나를 설치 후 bin 폴더의 grafana_server를 실행 시킨 후 3000포트로 접속하면 위의 웹 화면이 나타난다. username과 password를 admin으로 입력하면 로그인이 완료된다. 실제 서비스에서는 username과 password를 변경하여 사용하여야 한다. (3) 그라파나 프로메테우스 연동 connections -.. 더보기
프로메테우스 설치 및 사용법 (1)프로메테우스 설치 https://prometheus.io/download/ Download | Prometheus An open-source monitoring system with a dimensional data model, flexible query language, efficient time series database and modern alerting approach. prometheus.io (2) 프로메테우스 실행 프로메테우스를 설치 후 exe 파일을 실행 하면 9090포트로 접속하면 위의 웹 화면이 나타난다. (3) 애플리케이션 설정 1.build.gradle 설정 dependencies { ... implementation 'io.micrometer:micrometer-regist.. 더보기
Actuator Actuator 실제 운영 되고 있는 서비스에 문제가 없는지 모니터링하고 지표들을 심어서 감시하는 활동들을 매우 편리하게 사용할 수 있는 편의기능들을 제공해준다. 1. build.gradle implementation 'org.springframework.boot:spring-boot-starter-actuator' //actuator 추가 2.Application.yml # Actuator의 기능들을 웹에 노출하거나 제거 management: endpoints: web: exposure: include: "*" exclude: "bean" Actuator가 제공하는 endpoint들을 웹으로 확인하려고 할 경우management.endpoints.web.expososure.include를 사용하여 확인.. 더보기
javaMailSender를 이용한 이메일 인증(Naver) 1.Naver SMTP 설정 네이버 메일 -> 환경설정 -> SMTP 설정을 사용함으로 바꿔줍니다. 2.Build.gradle 설정 implementation 'org.springframework.boot:spring-boot-starter-mail' 3.NaverMail.yml 설정 spring: mail: host: smtp.naver.com #smtp 서버 주소 port: 465 # 메일 인증서버 포트 username: xxxx@naver.com #네이버 아이디 password: xxxx #네이버 비밀번호 properties: mail: smtp: starttls: enable: true auth: true ssl: enable: true yml에 JavaMailSender에 쓰일 Propertie.. 더보기
Nginx와 Let's encrypt를 사용한 https 설정하기 Nginx의 보안 이점 클라이언트와 WAS 사이에 리버스 프록시 서버인 Nginx를 둠으로써 클라이언트는 웹서버처럼 리버스 프록시 서버에 요청을 하고 WAS는 리버스 프록시로부터의 사용자 요청을 대신 받는다. 리버스 프록시 서버를 사용함으로써 클라이언트는 WAS의 존재를 알지못하므로 보안이 향상되는 결과를 가져온다. 1.Nginx 설치 $ sudo apt update $ sudo apt install nginx 위의 명령어를 사용하여 nginx를 설치합니다. 2.Nginx 리버스 프록시 설정 $ cd /etc/nginx/conf.d $ vim default.conf /etc/nginx/conf.d로 이동하여 vim을 이용하여 Nginx 설정 파일인 default.conf 를 만듭니다. server { l.. 더보기
Querydsl 페이징과 카운터쿼리 최적화 1.Page로 반환 public Page Page(Pageable pageable) { List content = queryFactory .select((new QMemberTeamDto( member.id.as("memberId"), member.username, member.age, team.id.as("teamId"), team.name.as("teamName")))) .from(member) .leftJoin(member.team,team) .offset(pageable.getOffset()) .limit(pageable.getPageSize()) .fetch(); JPAQuery countQuery = queryFactory .select(member.count()) .from(member) ... 더보기
Querydsl 동적 쿼리 1.BooleanBuilder public List dynamicQuery_BooleanBuilder(){ String usernameParam = "member1"; Integer ageParam = null; List result = searchMember1(usernameParam,ageParam); return result; } private List searchMember1(String usernameCond, Integer ageCond) { BooleanBuilder builder = new BooleanBuilder(); if(usernameCond!=null){ builder.and(member.username.eq(usernameCond)); } if(ageCond!=null){ bui.. 더보기