스프링과 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를 사용하는 게 일반적이다.