#11 : PostrgreSQL
H2 데이터베이스는 개발 단계에서는 유용하지만 운영 환경에서 사용하기에는 부족하다. 오라클 같은 상용 데이터베이스도 있지만, 작은 규모의 서비스들은 대체로 PostgreSQL이나 MySQL을 주로 사용한다.
01. PostgreSQL 설치
- 사용법에는 두가지가 있다. aws 서버에 직접 설치하는 것과 aws가 제공하는 데이터베이스 인스턴스를 사용하는 것.
- 하지만 데이터베이스를 공부할 목적이 아니라면 직접 설치는 권장하고 싶지 않다. 직접 설치하고 환경에 맞게 설정하는 것이 쉬운 일이 아니다.
- 인트턴스를 이용하여 PostgreSQL 사용하기
* 라이트세일 페이지 접속
* 데이터베이스 탭 => 데이터베이스 생성 => aws 리전 및 가용 영역 변경 => 서울 선택 => PostgreSQL 선택
* 15$ 플랜 선택(첫 세달 무료) => 리소스 이름에 Database-1 입력 => 데이터베이스 생성
* 생성되는데 10~15분의 시간이 소요된다.
* 사용 가능 상태 확인 후 해당 데이터베이스 클릭 => 연결 세부 정보 기억해두기(사용자 이름, 암호, 데이터베이스 주소)
02. 데이터베이스 생성
- PostgreSQL 클라이언트 설치
ubuntu@jumpto:~$ sudo apt install postgresql-client
이 패키지 설치 시 createdb나 psql 등의 명령어 사용이 가능하다.
- sbb 데이터베이스 생성
createdb sbb --username=dbmasteruser -h <데이터베이스주소>
기억해둔 엔드포인트 주소를 넣어 생성해준다, 암호 질의 시 마찬가지로 기억해둔 암호를 입력한다.
03. 데이터베이스에 접속
- build.gradle 수정하여 PostgreSQL 라이브러리 설치
(... 생략 ...)
dependencies {
(... 생략 ...)
runtimeOnly 'org.postgresql:postgresql'
}
(... 생략 ...)
- 데이터베이스 설정 application-prod.properties 수정
로컬 서버는 기존의 H2 데이터베이스를 그대로 사용하고 서버만 PostgreSQL 데이터베이스를 사용해야 한다.
# DATABASE
spring.datasource.url=jdbc:postgresql://<데이터베이스주소>:5432/sbb
spring.datasource.driverClassName=org.postgresql.Driver
spring.datasource.username=dbmasteruser
spring.datasource.password=<암호>
# JPA
spring.jpa.properties.hibernate.dialect=org.hibernate.dialect.PostgreSQLDialect
spring.jpa.hibernate.ddl-auto=update
spring.jpa.properties.hibernate.format_sql=true
spring.jpa.properties.hibernate.show_sql=true
# logging
(... 생략 ...)
여기에도 각각에 알맞은 값을 대입해준다.
04. 데이터베이스 변경 확인
- 배포파일을 다시 생성한 후 서버에 적용한다.그리고 서비스를 재실행한다.
- spring.jpa.hibernate.ddl-auto : 현재 값은 update지만 이는 운영 환경에서는 조금 위험한 방식이다. 운영 환경에서는 테이블 변경 쿼리를 자동으로 실행하지 않고 수동으로 실행하는 것이 안전하다. 따라서 none 또는 validate로 설정하길 추천한다.
* none : 엔티티가 변경되더라도 데이터베이스를 변경하지 않는다.
* validate : 변경사항이 있는지 점검만 한다.
05. pgAdmin
h2 데이터베이스의 GUI 도구로 H2 콘솔이 있다면 PostgreSQL에는 pgAdmin이 있다.
- 퍼블릭 모드
해당 GUI를 사용하기 위해서는 aws 데이터베이스의 네트워크를 퍼블릭 모드로 변경해야 한다.
* 네트워킹 => 퍼블릭 모드 활성화 (이름과 비밀번호만 알면 누구나 접속 가능하므로 주의)
- pgAdmin 설치와 사용 : https://www.pgadmin.org/download
* 설치 후 실행하면 마스터 패스워드 설정
* 메인화면 좌측의 servers=> register => server
* 서버 등록 창의 name에 sbb 입력 => connection 탭에서 데이터베이스 주소, 포트번호, 데이터베이스명, 사용자이름, 암호를 입력 후 save
* 접속 완료
'T-I-L > [책] 요약&정리' 카테고리의 다른 글
| [점프 투 스프링부트] 3장 SBB 서비스 개발(SSL) - 2023. 09. 20. (0) | 2023.09.22 |
|---|---|
| [점프 투 스프링부트] 3장 SBB 서비스 개발(도메인) - 2023. 09. 20. (0) | 2023.09.21 |
| [점프 투 스프링부트] 3장 SBB 서비스 개발(로깅) - 2023. 09. 20. (0) | 2023.09.20 |
| [점프 투 스프링부트] 3장 SBB 서비스 개발(NGINX) - 2023. 09. 19. (0) | 2023.09.19 |
| [점프 투 스프링부트] 3장 SBB 서비스 개발(개발과 서버 환경 분리) - 2023. 09. 15. (0) | 2023.09.15 |
