-
Spring Boot 개발 환경 분리하기(properties File)취준/Project 2024. 5. 23. 16:54
개발을 할 때 Local, Product 환경 구분은 필수이다. 오늘은 properties을 이용하여 개발 환경을 구분하고 EC2에 환경설정 파일을
올리는 방법을 정리해 보겠다.
Properties 분리.
공통, 로컬, 개발 3가지 파일로 분리한다.
공통설정 파일을 제외하고 로컬, 개발 환경 사용하는 파일명은 application-temp와 아무거나 해도 상관없으나
추후에 spring.profiles.active = temp와 같이 변수명이 일치해야 한다.
application.properties
spring.application.name=albaya spring.profiles.active=prod spring.jpa.database=mysql spring.jpa.hibernate.ddl-auto=none
spring.profiles.active=prod
해당 코드를 추가함으로써 어떤 설정 파일을 사용할 것인지 명시하여 줄 수 있다.
앞서 설명했듯이 값은 설정파일의 이름과 일치하여야 하며 나는 application-prod.properties를 사용할 예정이다.
application-prod.properties
spring.datasource.url={데이터베이스 정보} spring.datasource.username={username} spring.datasource.password={password}
application-local.properties
spring.datasource.url=jdbc:mysql://localhost:3306/test spring.datasource.username=root spring.datasource.password=1234
운영환경과 로컬환경에서 사용할 데이터베이스 정보를 각각 작성해 준다.
환경마다 정볼르 작성하고 서버를 돌려보면 사진과 같이 The following 1 profile is active : "prod"라고 뜨면
application-prod 설정 파일을 읽어 서버를 실행시킨 것임을 확인할 수 있다.
EC2에 설정파일 올리기.
나는 FileZilla를 이용하여 파일을 직접 올려줌으로써 설정 파일을 업로드하였다.
FileZilla를 이용하여 EC2에 접속한 뒤 로컬과 똑같은 경로에다가 3가지 설정 파일을 올려주고 빌드를 다시 한다.
./gradlew build 무한 로딩
만약 빌드를 다시 하는데 무한 로딩이 걸리고 본인의 EC2가 프리티어이다? 그러면 RAM 용량 부족으로 인해 문제가 발생한 것이다.
아래 블로그를 참고하여 그대로 따라 하면 무한 로딩이 해결될 것이다.
https://ksh-coding.tistory.com/40
EC2 gradle build 시 무한 로딩 오류(메모리 문제)
EC2에서 git clone으로 서버 파일을 clone하고 ./gradlew test 를 했는데 :compileQuerydsl 에서 무한 로딩이 걸리고 넘어가지 않았다. 구글링을 진행해보니 무한 로딩이 걸리는 오류는 메모리 부족 문제일 수
ksh-coding.tistory.com
결과 확인.
package com.example.albaya.user; import jakarta.persistence.*; import lombok.AllArgsConstructor; import lombok.Data; import lombok.NoArgsConstructor; @Table @Data @NoArgsConstructor @AllArgsConstructor @Entity public class User { @Id @GeneratedValue(strategy = GenerationType.AUTO) private int user_id; private String name; private int age; private int createdDate; private int updatedDate; // 새로 추가 }
테스트를 위해 User 엔터티에 updatedDate를 추가하였다.
성공적으로 운영 데이터베이스에 updated_date가 들어간 것을 확인할 수 있다.
'취준 > Project' 카테고리의 다른 글
Naver MAP API를 이용해 지도 구현 (1) 2024.06.16 EC2에 Redis 설치후 연동하기 (0) 2024.06.08 Spring Boot, Redis를 이용하여 RefreshToken 발급하기 (0) 2024.05.31 Spring Boot LazyInitializationException (0) 2024.05.29 Reason: Failed to determine a suitable driver class (2) 2024.05.01