프로젝트 개요 : Jump to SpringBoot 클론코딩 - 회원제 QnA 게시판 웹
프로젝트 환경 : IntelliJ, SpringBoot, JPA, H2
프로젝트 코드 : https://github.com/smkim9202/sbb
개발과 서버 환경 분리
개발 환경에서는 DB를 편하게 접근하고자 H2 데이터베이스에 비밀번호를 따로 설정하지 않았지만, 서버환경에서도 비밀번호를 설정하지 않는것은 위험하다. 서버환경에서만 DB 비밀번호를 설정을 할 수 있다.
서버 환경 파일 작성
- 설정파일명 : application-{profile}.properties ===> 실행 옵션 : -Dspring.profiles.active=profile
스프링 부트는 시작옵션으로 spring.profiles.active 항목을 전달 할 수 있기 때문에 설정파일을 각자 다르게 줄 수 있다.
개발환경에서는 'application.properties 서버환경에서는 'application-prod.properties' 설정 파일을 사용하게 한다.
java -Dspring.profiles.active=prod jar 파일명.jar
파일명 : application-prod.properties
설정파일에 DB부분에 콘솔 외부 접속 가능 설정, 비밀번호 설정을 해준다.
# DATABASE
spring.h2.console.enabled=true
spring.h2.console.path=/h2-console
spring.h2.console.settings.web-allow-others=true //외부에서 H2콘솔 접속 가능 설정
spring.datasource.url=jdbc:h2:~/local
spring.datasource.driverClassName=org.h2.Driver
spring.datasource.username=sa
spring.datasource.password=1234 //비밀번호 설정
빌드 버전 변경 후 배포파일 생성
파일명 : build.gradle
(... 생략 ...)
group = 'com.mysite'
version = '0.0.2'
sourceCompatibility = '11'
(... 생략 ...)
버전을 0.0.2로 올려주고 배포파일을 생성([Run 'sbb[bootJar]' )한다.
변경내용 서버에 적용하기
프로그램 : SFTP클라이언트(파일질라)
배포파일(jar) 서버 프로젝트 디렉터리에 업로드
프로그램 : SSH클라이언트(MobaXterm)
기존 DB 삭제(DB에 비밀번호 설정 전에 기록들)
=> 파일 삭제하기 : rm 파일명.mv.db
ubuntu@호스트명:~$ ls
local.mv.db sbb
ubuntu@호스트명:~$ rm local.mv.db
시작 스크립트(서버스크립트) 수정
=> 시작스크립트 메모 열기 : nono start.sh
=> start.sh 수정
환경변수를 사용해도 되고 '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 &
서버 재시작
ubuntu@호스트명:~/sbb$ ./stop.sh
ubuntu@호스트명:~/sbb$ ./start.sh
서버 DB 콘솔 접속해보기
외부접속도 가능해졌고, 비밀번호를 입력해야 연결 가능해졌다.
'프로젝트 > clone coding' 카테고리의 다른 글
[백엔드 개발 : ProductManagement] 상품 추가 구현(프로젝트 구조 잡기) (0) | 2025.03.17 |
---|---|
[백엔드 개발 : ProductManagement] 상품관리 애플리케이션 정의 (0) | 2025.03.17 |
[Jump to SpringBoot : SBB] 프로젝트 AWS 서버에 배포하기 (0) | 2022.05.09 |
[Jump to SpringBoot : SBB] 스프링 시큐리티 (0) | 2022.04.26 |
[Jump to SpringBoot : SBB] 스프링부트 windows cmd창으로 빌드하고 실행 (0) | 2022.04.21 |