이제 Hello World가 뜨는 것까지 확인했으니, 메시지를 바꿔서 다시 배포해보겠다.
포인트는 하나다.
EC2에서 실행 중인 코드는 “내 로컬 코드”가 아니라
EC2에 내려받아둔 소스코드다.
그래서 로컬에서 코드를 바꿨다고 바로 서버가 바뀌는 게 아니라,
GitHub를 거쳐 EC2에 반영하는 흐름을 만들어야 한다.
로컬에서 수정 → git push → EC2에서 git pull → mvn package → 서버 재시작 → 브라우저로 확인
이 순서가 앞으로 배포할 때 계속 반복되는 기본 루틴이다.
로컬 변경 내용을 GitHub에 반영
로컬에서 바꾼 코드를 “EC2가 가져갈 수 있게” 하려면,
일단 GitHub 저장소에 올라가 있어야 한다.
그래서 아래 순서로 push 한다.
git status
git add .
git commit -m "Change response message"
git push
- git push를 해야 GitHub에 올라감
- EC2는 GitHub에서 pull로 가져오기 때문에 push가 먼저다
EC2 접속 (Mac 기준 SSH)
이제 원격 서버(EC2)로 들어간다.
접속 명령
ssh -i ~/.ssh/httpLab-server-key-pair.pem ubuntu@<EC2 퍼블릭 IPv4>
- -i : 사용할 키 파일 지정
- ubuntu@... : Ubuntu AMI 기본 계정
- <EC2 퍼블릭 IPv4> : AWS 콘솔에서 확인 가능한 Public IPv4
EC2에서 최신 코드 받기: git pull
EC2에 이미 git clone으로 프로젝트를 내려받아둔 상태니까,
이제는 “새로 clone”이 아니라 pull로 최신 커밋을 가져오면 된다.
프로젝트 폴더로 이동해서:
cd ~/web-application-server
git pull
이제 EC2 서버 안의 코드가 GitHub 최신 버전으로 업데이트된다.
EC2에서 다시 빌드: mvn package
코드를 바꿨으면 컴파일/패키징을 다시 해야 한다.
Java는 소스만 바뀐다고 실행 결과가 자동으로 바뀌지 않는다.
EC2에서 다시 빌드해서 target/classes를 갱신해야 한다.
- clean : 이전 빌드 산출물 제거
- package : 컴파일 + 필요한 작업 수행 + 산출물 생성
빌드가 성공하면 변경된 코드가 target/classes에 반영된다.
서버 재시작: 다시 실행하기
이제 “바뀐 코드”를 반영하려면 서버를 재시작해야 한다.
왜냐면:
- 현재 실행 중인 서버 프로세스는 “이전 빌드 결과”로 이미 떠 있는 상태
- 코드를 바꾸고 빌드를 해도 기존 프로세스는 자동으로 다시 시작되지 않음
- 그래서 직접 끄고 다시 켜야 한다
(1) 기존 서버가 실행 중이면 먼저 종료
서버가 실행 중인 터미널에서 보통 Ctrl + C로 종료한다.
(2) 다시 실행
java -cp "target/classes:target/dependency/*" webserver.WebServer 7070
이 명령은 그대로다.
- -cp : 실행에 필요한 클래스와 라이브러리 경로 지정
- webserver.WebServer : main 클래스
- 7070 : 서버가 열릴 포트
브라우저에서 확인: 응답이 바뀌었는지 체크
이제 브라우저에서 접속한다.
http://<EC2 퍼블릭 IPv4>:7070

잘 변경된 것을 볼 수 있다.
출처 : 《자바 웹 프로그래밍 Next Step》, 박재성, 로드북
'Book > 자바 웹 프로그래밍 Next Step' 카테고리의 다른 글
| 3장_ 코드 이해: RequestHandler 클래스 (0) | 2026.01.29 |
|---|---|
| 3장_ 코드 이해: WebServer 클래스 (0) | 2026.01.29 |
| 3장_ 방화벽 설정 (0) | 2026.01.29 |
| 3장_ 원격 서버 띄우기 (0) | 2026.01.29 |
| 3장_ JDK 17 + Maven 설치 (0) | 2026.01.28 |
