[Server] Spring Boot 하나의 프로젝트를 다수 포트에서 실행하는 방법 (intelliJ, 터미널)
하나의 애플리케이션을 각각 다른 포트로 여는 방법에 대해서 기록!
맨 처음에 다른 서버로 열되 동일 프로젝트로 진행한다는 문구를 보고
'그럼 클론을 하나 더 받아야한단 소린가..?🤔' 싶었는데 물론 절대 아니였다.
아래 둘 중의 하나를 선택해 진행할 수 있다.
1. IntelliJ의 Edit Configuration 방법
2. 터미널에서 빌드된 jar 파일을 실행할 경우 방법
1. IntelliJ의 Edit Configuration 방법
Edit Configuration 클릭
⬇
Add New Configuration
⬇
Spring Boot 클릭
이름 지정 뒤,
Build and run 부분을
기존 Application 파일과 동일하게 설정해주기
⬇
Build and run 우측에 있는 Modify Options 클릭한 뒤,
Add VM options 선택
⬇
VM options 부분에
-Dserver.port = 서버번호
를 작성해준다.
기존 8080 포트가 아닌
8081 포트로 실행되는 configuration 생성 완료!
각자의 탭에서
두 서버가 잘 돌아간다.
2. 터미널에서 빌드된 jar 파일을 실행할 경우 방법
* 애플리케이션 빌드는
인텔리제이 Gradle 탭에서 Tasks ➡ build ➡ :bootJar 나 :build 를 더블 클릭하면 할 수 있다.
혹은
터미널에서 프로젝트 디렉토리가 있는 곳으로 이동한 뒤,
./gradlew build 를 입력하면 할 수 있다.
➡ 빌드된 파일은 보통 build/libs 에서 확인할 수 있다.
java -Dserver.port=8081 -jar sample-0.0.1-SNAPSHOT.jar
빌드된 파일을 실행할 때
build/libs 디렉토리에서 입력해준다.
IntelliJ에 추가해줬던 것과 마찬가지로
-Dserver.port=포트번호 를 입력해주면
해당 포트로 애플리케이션을 실행시킬 수 있다.
* Windows PowerShell 에서는 읽지 못하는 명령어이므로
bash 나 명령프롬포트(cmd) 창에서 실행할 수 있다.
(하위 사진은 PowerShell 실행시 오류 사진)

여러 포트를 지정해줬지만 결국 동일 url 로 접속가능하게 하고 싶다면
프록시서버 (nginx)를 활용한 '로드밸런싱'과 관련이 있다.