스프링과 JPA 기반 웹 애플리케이션 개발 #48 PostgreSQL 설치 및 설정
해당 내용은 인프런, 스프링과 JPA 기반 웹 애플리케이션 개발의 강의 내용을 바탕으로 작성된 내용입니다.
강의를 학습하며 요약한 내용을 출처를 표기하고 블로깅 또는 문서로 공개하는 것을 허용합니다 라는 원칙 하에 요약 내용을 공개합니다. 출처는 위에 언급되어있듯, 인프런, 스프링과 JPA 기반 웹 애플리케이션 개발입니다.
제가 학습한 소스코드는 https://github.com/n00nietzsche/jakestudy_webapp 에 지속적으로 업로드 됩니다. 매 커밋 메세지에 강의의 어디 부분까지 진행됐는지 기록해놓겠습니다.
psql
이용해서 조작 가능 (CLI)pgadmin4
이용해서 모니터링 및 조작 가능 (GUI)create database testdb;
create user testuser with encrypted password 'testpass';
grant all privileges on database testdb to testuser;
account-dev.properties
에 DB 정보 설정spring.datasource.driver-class-name=org.postgresql.Driver
spring.datasource.url=jdbc:postgresql://localhost:5432/testdb
spring.datasource.username=testuser
spring.datasource.password=testpass
기본적으로 스프링 부트에서 여러가지 앱 셋팅을 저장해놓고 쓸 수 있도록 만든 개념이다.
자세한 설명은 https://stackabuse.com/spring-boot-profiles-for-dev-and-prod-environments 여기에 있다.
스프링에서는 @Profile
이라는 애노테이션을 제공하여, 이 설정에 따라서 각각 다른 Bean
을 컨테이너에 올릴 수 있다.
@Profile({"local", "dev"}) // 로컬 설정일 때만 이 빈을 등록함
@Component
@Slf4j
public class ConsoleMailSender implements JavaMailSender {
위와 같이 애노테이션을 줄 수 있다.
Edit Configurations...
에 들어가서
아래쪽 Active profiles
에 dev
를 입력하고 적용하면 된다.
spring.datasource.driver-class-name=org.postgresql.Driver
spring.datasource.url=jdbc:postgresql://localhost:5432/testdb
spring.datasource.username=testuser
spring.datasource.password=testpass
위의 내용을 넣어주어, dev
환경에서는 postgresql
DB를 사용하도록 한다.
application-<profile-name>.properties
와 같은 형식의 properties
파일을 만들어주면, 프로필을 바꿈으로써, 내가 쓸 properties
파일도 변경할 수 있다.
기본적으로 스프링 부트는
application.properties
를 사용하고, 개발 환경을 위한application-dev.properties
와 배포 환경을 위한application-prod.properties
를 사용하는 게 일반적이다.