#7 : 개발과 서버 환경 분리
개발 편의상 H2 데이터베이스의 사용자 비밀번호는 빈 값으로 설정하였다. 하지만 이런 경우 누구나 콘솔에 로그인 할 수 있게 되기 때문에 서버 환경에서도 이처럼 사용하는 것은 위험하다.
01. 개발과 서버 환경 분리
- application.properties에 비밀번호 설정
spring.datasource.password=1234
- 하지만 개발 편의를 이해 로컬 환경에서는 비밀번호 없이 사용하고자 한다.
이 때 스프링부트 시작 옵션에 다음과 같이 작성할 수 있다.
java -Dspring.profiles.active=prod -jar sbb-0.0.1-SNAPSHOT.jar
* -Dspring.profiles.active=prod : application.properties 대신 application-prod.properties를 사용, 즉 application-{profile}.properties의 규칙을 따른다.
02. 서버 환경 파일 작성하기
- application-prod.properties 생성
server.port=8080
spring.thymeleaf.cache=false
#spring.thymeleaf.prefix=file:src/main/resources/templates/
# DATABASE
spring.h2.console.enabled=true
spring.h2.console.path=/h2-console
spring.h2.console.settings.web-allow-others=true
spring.datasource.url=jdbc:h2:~/local
spring.datasource.driverClassName=org.h2.Driver
spring.datasource.username=sa
spring.datasource.password=1234
# JPA
spring.jpa.properties.hibernate.dialect=org.hibernate.dialect.H2Dialect
spring.jpa.hibernate.ddl-auto=update
spring.jpa.properties.hibernate.format_sql=true
spring.jpa.properties.hibernate.show_sql=true
* spring.h2.console.settings.web-allow-others=true : 외부에서 콘솔에 접속이 가능하도록 설정
03. 빌드 버전 변경하여 배포파일 생성하기
- build.gradle 수정
group = 'com.mysite'
version = '0.0.2-SNAPSHOT'
- 다시 bootjar를 선택해 배포파일을 생성한 후 파일질라로 배포파일을 업로드하자.
04. 변경내용 서버에 적용하기
- 데이터베이스에 비밀번호를 설정했기 때문에 기존의 데이터베이스 파일을 모두 지워야한다.
ubuntu@jumpto:~$ ls
local.mv.db sbb
ubuntu@jumpto:~$ rm local.mv.db
* 만약 기존의 데이터를 유지하고 싶다면 비밀번호 설정 전에 콘솔에 접속하여 비밀번호를 변경하는 쿼리를 수동으로 실행해야 한다. (ex : ALTER USER sa SET PASSWORD '1234';)
- start.sh 수정
#!/bin/bash
JAR=sbb-0.0.2.jar
LOG=/home/ubuntu/sbb/sbb.log
nohup java -Dspring.profiles.active=prod -jar $JAR > $LOG 2>&1 &
* 혹은 환경 변수를 설정하는 방법도 있다.
#!/bin/bash
JAR=sbb-0.0.2.jar
LOG=/home/ubuntu/sbb/sbb.log
export spring_profiles_active=prod
nohup java -jar $JAR > $LOG 2>&1 &
- SBB 서비스 재접속
ubuntu@jumpto:~/sbb$ ./stop.sh
SBB stopped.
ubuntu@jumpto:~/sbb$ ./start.sh
05. 서버 H2 콘솔 접속하기
- 콘솔에 접속하여 비밀번호 없이 접속을 시도해보면 비밀번호가 잘못되었다는 오류메세지를 확인할 수 있다.
비밀번호 입력 시 접속이 잘 수행된다.
'T-I-L > [책] 요약&정리' 카테고리의 다른 글
| [점프 투 스프링부트] 3장 SBB 서비스 개발(로깅) - 2023. 09. 20. (0) | 2023.09.20 |
|---|---|
| [점프 투 스프링부트] 3장 SBB 서비스 개발(NGINX) - 2023. 09. 19. (0) | 2023.09.19 |
| [점프 투 스프링부트] 3장 SBB 서비스 개발(서버 스크립트) - 2023. 09. 14. (0) | 2023.09.14 |
| [점프 투 스프링부트] 3장 SBB 서비스 개발(추가기능, 서버, AWS 라이트세일, 서버 접속 설정, 서버 접속 프로그램, SBB 오픈) - 2023. 09. 13. (0) | 2023.09.13 |
| [점프 투 스프링부트] 3장 SBB 서비스 개발(검색) - 2023. 09. 12. (0) | 2023.09.12 |
