본문 바로가기

분류 전체보기74

[Lombok] @Builder.Default - @Builder 사용 시 필드값 초기화 방법 Lombok에서 @Builder 어노테이션 사용 시 필드 초기화를 하면 아래와 같은 경고가 발생하는 이유 및 해결방법! warning: @Builder will ignore the initializing expression entirely. If you want the initializing expression to serve as default, add @Builder.Default. If it is not supposed to be settable during building, make the field final. DTO에서 @Builder 어노테이션과 함께 필드 초기화를 하면 위와 같은 경고가 발생한다. 해석하자면, @Builder는 초기화 표현을 완전히 무시한다. 초기화 표현식으로 default.. 2023. 8. 13.
[DB] 특정 컬럼에서 동일한 데이터끼리 묶어 개수 조회하기(feat: Group By, Count) Group By와 Count를 사용하여 특정 컬럼에서 동일한 데이터끼리 묶어 개수 조회하기 테이블 및 컬럼 정보 귀찮으므로 ERD 는 생략하고 아래 테이블 정보로 대신한다. school (학교 테이블) - school_id (학교 번호) - PK - school_name (학교 이름) teacher (선생님 테이블) - teacher_id (선생님 번호) - PK - school_id (학교 번호) - PK, FK - teacher_name (선생님 이름) - subject (과목명) 학교 테이블(School)과 학교 선생님(Teacher) 테이블이 존재할 때 각 학교별로 과목별 선생님이 몇 명씩인지 조회하기 조회 컬럼 : 학교 번호, 학교 이름, 과목별 선생님 수 // Postgresql select .. 2023. 7. 27.
Banner.txt - Spring 실행 시 Terminal 커스터마이징(방법 및 사이트 링크 첨부) 프로젝트하면서 깨알 즐거움 찾기! 스프링 실행 시 터미널에 원래는 Spring Boot라고 뜨는 배너를 나만의 방식으로 커스터마이징 할 수 있다. 아래 링크는 원하는 텍스트를 위와 같이 그림으로 표현해주는 사이트이다. 나는 rounded를 선택했고, 눈내리는 것처럼 *을 추가해주었다. https://devops.datenkollektiv.de/banner.txt/index.html Spring Boot banner.txt generator devops.datenkollektiv.de src/main/resrouces 하위에 banner.txt 파일을 생성하고 내용을 입력해주면 된다. 내용은 위 사이트에서 만들어진 텍스트를 그대로 복붙하면된다. Spring Boot 버전도 함께 노출하고 싶다면 아래와 같이.. 2023. 7. 23.
[Swagger] 2. Swagger3에서 Group별로 Tag 설정하기(feat. OpenApiCustomiser) 목차 1) Group이 하나일 때 비어있는 Tag(API가 없는 태그)는 Swagger-ui에 미노출하기 2) SwaggerConfig에서 path에 따라 그룹을 나누고 각 그룹별로 Tag 리스트 관리하기 API가 많아지면서 각 API를 path나 package에 따라 Group으로 나누고 해당 그룹 내에서 Tag를 별도로 관리하고 싶다는 니즈가 있었고, 추가로 Tag를 클래스 단위가 아니라 메서드에 달았을 때는 description을 작성할 수 없어서 name과 description을 모두 사용할 수 있도록 Tag를 한 번에 관리하고 싶었다. 구글링했을 때 나오듯이 SwaggerConfig에서 프로젝트에서 사용하는 모든 태그를 한 번에 관리할 수도 있지만 그 경우에 태그를 해당 그룹에서 사용하지 않더라.. 2023. 5. 16.
[Checkstyle이란?] Google과 Naver에서 적용한 정책 비교(+정책설명) 이번에 직접 팀에서 진행하고 있는 프로젝트에 코드 컨벤션을 정하고, Checkstyle을 도입하여 컨벤션을 강제화 하는 작업을 진행했다. Java의 코드 컨벤션과 구글, 네이버에서는 각각 어떤 정책을 사용하고 있는지 구글링을 통해 많이 공부했는데, Checkstyle 적용 내용은 나오지만 막상 그게 무슨 정책인지 어렵고 Google과 Naver가 각각 어떤 정책들을 선택해서 적용하고 있는지 한 눈에 파악하기 어려워서 직접 정리해보았다!! 그래서 각 회사별 어떤 정책을 수용했는지 정리하고, 최종적으로 우리 프로젝트에 적합한 정책들을 선별하여 적용시켰다 :) Checkstyle이란? 프로젝트 빌드 시 프로젝트 내에서 정한 코드컨벤션을 지켰는지 확인하는 플러그인으로 Checkstyle 내의 설정에 따라 컨벤션.. 2023. 5. 8.
[Swagger3] 1. springdoc-openapi를 이용한 Swagger3 설정하기(+Swagger 옵션) Swagger 기본 설정 및 Swagger에서 제공하는 기본 옵션에 대해 알아보자! 1) build.gradle dependencies 안에 openapi-ui 추가 //swagger implementation 'org.springdoc:springdoc-openapi-ui:1.7.0' 2) application.yaml springdoc: api-docs: path: /api-docs# api-docs url: localhost:8080/api-docs groups: enabled: true# group 허용 swagger-ui: path: /index.html# swagger url : localhost:8080/swagger-ui/index.html enabled: true groups-order:.. 2023. 5. 5.
[ELK] 2. Kibana에서 Teams WebhookURL로 에러 모니터링하기 이전 글에서는 Kibana Alert을 통해 Slack으로 500 에러 모니터링 설정하기를 진행해보았다. 사실 원래 목적은 Teams로 에러 모니터링을 하는 것이었는데, Teams는 Trigger 설정이 슬랙과는 조금 달라서 이번 글에서 자세히 정리해보려고 한다. 개요 Kibana Alert Monitor에 설정한 쿼리를 통해 추출한 결과 500 에러 리스트들을 모두 Teams로 확인하고 싶었다. Teams로 전송하고 싶은 정보는 1) 1분 내에 발생한 500 에러 개수, 2) 에러가 발생한 request URI, 3) 에러 메시지, 4) 에러 발생 시간 이다. 준비 Teams Webhook URL 복사해두기. 1. Alert - Monitor 생성하기 Destination 설정부터 Monitor 생성은.. 2023. 3. 13.
[ELK] 1. Kibana에서 Slack Webhook 모니터링 설정하기 서버에서 500 Error 발생 시 키바나를 통해 Slack으로 알림을 보내는 모니터링 설정 방법 알아보기 준비 Slack WebhookURL 복사해두기 1. Alerting - Monitor 생성하기 1) 좌측 상단 햄버거 버튼 클릭 후 Kibana - Alerting 으로 이동한다. 2) Destinations의 우측 상단 Add Destination 버튼을 눌러 준비해둔 Slack Webhook URL을 등록한다. 3) 다시 뒤로 돌아와 Monitors로 이동한 후 Create monitor 버튼을 통해 모니터 등록 화면으로 이동한다. 4) Monitor name에 모니터링 이름을 설정하고, Disable monitor는 체크 해제 한다.(캡쳐화면은 오류) Define monitor 영역에서 Def.. 2023. 3. 13.
[Javascript] 스크롤바 위치 퍼센트 구하기 scrollLeft / scrollTop을 이용하여 스크롤바가 현재 (위쪽으로부터/왼쪽으로부터) 어느 위치에 있는지 퍼센트 구하기 1. scrollTop 퍼센트 구하기(세로 스크롤) let scrollDiv = document.getElementById("#scrollDiv"); let scrollPos = scrollDiv.scrollTop / (scrollDiv.scrollHeight - scrollDiv.clientHeight) * 100; // 또다른 스크롤바 div의 위치를 scrollDiv위치와 동일하게 움직이기 $("#anotherScrollDiv").scrollTop(scrollPos); 2. scrollLeft 퍼센트 구하기(가로 스크롤) let scrollDiv = document.ge.. 2023. 1. 9.
반응형