목록springboot (9)
컴공생의 다이어리
[Spring Boot] 환경변수 파일(application.yml) local, dev, prod 환경 분리 스프링 부트에서 로컬(local), 개발(dev), 운영(prod) 등의 환경을 분리해야 하는 경우 profile을 활용해 설정 정보를 분리할 수 있다. profile은 spring.config.activate.on-profile 을 통해서 profile 이름을 작성을 적고 하위에 해당 profile에 대한 설정을 작성해주면 된다. profile 환경 정보를 분리하는 방법으로는 아래와 같이 크게 2가지가 있다. 하나의 파일 안에서 환경 분리 yml 파일 분리 하나의 파일 안에서 환경 분리 하나의 파일 안에서 --- 를 넣어서 profile을 분리한다. # profile 정보가 없는 맨 위 부분은..
[Spring Boot] 슬랙(Slack) webhook으로 메세지 보내기 오늘은 Spring Boot 프로젝트에서 슬랙에 메시지를 보내는 방법에 대해 정리하고자 한다. 본격적으로 들어가기 전 아래의 조건이 준비되어 있다는 가정을 하고 설명을 하려고 한다. 슬랙이 설치되어 있고 하나의 워크스페이스에 들어가 있다. 스프링부트 프로젝트의 기본 설정이 되어 있다. 슬랙 설정 1. 슬랙 앱에서 webhook을 검색한 후 Incoming WebHooks를 추가한다. 2. 추가 버튼 클릭 후 어떤 채널에 포스트할지 선택을 한 후 수신 웹후크 통합 앱 추가 버튼을 클릭한다. 3. 2번에서 버튼 클릭 후 아래와 같은 페이지가 나오는데 설정 지침의 웹후크 URL을 꼭 어디에 복사해둬야 한다. 해당 URL이 메시지를 보내..
Spring Boot 배너 커스텀 Sprint Boot 애플리케이션을 구동하면 아래와 같은 시작 배너가 뜬다. 이 시작 배너를 내가 원하는 것으로 변경하는 방법에 대해 정리하고자 한다. 직접 그려서 만드는 방법도 있지만 아래 사이트에서 간편하게 배너를 생성할 수 있다. 본인이 배너를 직접 만들려고 하는 경우는 아래로 스크롤 해서 적용하는 방법부터 보면 된다. Text to ASCII Art Generator (TAAG) patorjk.com 위 사이트를 들어가서 배너에 사용할 텍스트를 입력하고 Font와 문자 크기 등을 아래처럼 자신의 상황에 맞게 설정해주고 생성한 배너 텍스트를 복사한다. 배너 적용하는 방법 Spring Boot 프로젝트 폴더의 src/main/resources 경로 아래에 banner..
Spring @RequiredArgsConstructor 어노테이션 의존성을 주입해주기 위해서 생성자(Constructor), Setter, Field 타입의 방식을 사용해야 했다. 하지만 lombok(롬복)의 @RequiredArgsConstructor 어노테이션을 사용하면 간단한 방법으로 생성자 주입을 해줄 수 있다. @RequiredArgsConstructor는 final 혹은 @NotNull이 붙은 필드의 생성자를 자동으로 만들어준다. 이를 통해 새로운 필드를 추가할 때 다시 생성자를 만들거나 하는 등의 번거로움을 없앨 수 있다. 하지만 자동적으로 생성자가 만들어지기 때문에 내가 예상하지 못한 결과나 오류가 발생할 수 있기 때문에 그런 점도 염두해둬야 한다. 아래는 생성자 주입 방법의 차이를 보여..
JPA Auditing Spring Data Jpa에서는 AuditingListener를 제공해 특정한 이벤트에 대해 자동으로 반응하여 등록일, 수정일, 등록자, 수정자와 같은 데이터를 입력해준다. Entity에 대해서 생성된 시간과 업데이트된 시간을 추적하는 것은 매우 중요하지만 이를 매번 사용자가 데이터를 업데이트할 때마다 시간 값을 변경하는 것은 귀찮고 어쩌면 실수로 인해서 놓칠 수도 있다. JPA의 Auditing 기능을 사용해 이러한 점을 해결해줄 수 있다. Auditing 활성화 Auditing 기능을 활성화하기 위해서는 Application에 @EnableJpaAuditing 어노테이션을 추가해줘야 한다. @EnableJpaAuditing// ← 이거 @SpringBootApplication..
Spring JDBC queryForObject의 결과가 없을 때(null) 혹은 2개 이상일 때 스프링 프로젝트에서 JDBC Template의 queryForObject 함수는 오직 하나의 행을 반환한다. 만약 쿼리문의 실행 결과로 행이 없거나 두 개 이상의 행이 있으면 IncorrectResultSizeDataAccessException이 발생한다. 이때, 만일 queryForObject 실행 결과로 행이 없거나 두 개 이상의 행이 있을 때에 대해 예외처리를 해주고 싶다면 아래와 같이 try catch 문을 사용해주면 된다. try { JdbcTemplate jdbcTemplate; String sql = "select user_id from User where name = ?"; return jdb..
Spring Boot 윈도우(windows)에서 빌드(build)하고 실행 1. 스프링 부트 프로젝트가 있는 폴더에서 cmd 창 열기 (물론 cmd창을 열고 스프링 부트 프로젝트가 있는 경로로 이동해도 됨) 2. cmd창에 gradlew build 명령어 입력 gradlew build# 빌드 이때, 기존에 build했던 폴더를 삭제하고 싶다면 gradlew clean 명령어를 통해 삭제할 수 있다. gradlew clean# 빌드했던 폴더 삭제 추가로 한번에 기존에 build했던 폴더를 삭제함과 동시에 빌드하고 싶다면 gradlew clean build 명령어를 입력하면 된다. gradlew clean build# 빌드했던 폴더 삭제 & 빌드 3. 2번의 과정을 통해 build/libs 폴더 아래 jar..
Spring Boot AWS RDS MySQL 연동 AWS RDS MySQL을 스프링부트와 연결하려면 src/main/resources/application.properties에 들어가서 아래 내용을 넣어주면 된다. spring.datasource.driver-class-name=com.mysql.cj.jdbc.Driver spring.datasource.url=jdbc:mysql://엔드포인트:3306/db이름 spring.datasource.username=root# 계정명 spring.datasource.password=0000# 비번
Spring Boot MySQL 연동 gradle을 사용할 때, src/main/resources/application.properties에 들어가서 아래 내용을 넣어주면 된다. spring.datasource.driver-class-name=com.mysql.cj.jdbc.Driver spring.datasource.url=jdbc:mysql://localhost:3306/example?serverTimezone=UTC&characterEncoding=UTF-8 spring.datasource.username=root# 계정명 spring.datasource.password=0000# 비번 https://victorydntmd.tistory.com/321 [SpringBoot] Mysql 연동 개발환경..