3장_ 소스코드 재배포

2026. 1. 29. 14:20·Book/자바 웹 프로그래밍 Next Step

 

이제 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를 갱신해야 한다.

 
mvn clean package
  • 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
'Book/자바 웹 프로그래밍 Next Step' 카테고리의 다른 글
  • 3장_ 코드 이해: RequestHandler 클래스
  • 3장_ 코드 이해: WebServer 클래스
  • 3장_ 방화벽 설정
  • 3장_ 원격 서버 띄우기
sqaxe1
sqaxe1
woojoo-devlog 님의 블로그 입니다.
  • sqaxe1
    Woojoo's Devlog
    sqaxe1
  • 전체
    오늘
    어제
    • 분류 전체보기 (148)
      • Backend (9)
        • Servlet (7)
        • Spring (2)
      • Frontend (1)
      • CS (0)
      • Book (33)
        • 자바 웹 프로그래밍 Next Step (30)
        • 테스트 주도 개발: 고품질 쾌속개발을 위한 TDD.. (1)
        • 성공과 실패를 결정하는 1%의 네트워크 원리 (2)
      • Engineering (0)
        • Testing (0)
      • Infra (6)
        • AWS (6)
      • Java (4)
      • Network (1)
      • 김영한 (28)
        • 자바 입문 (8)
        • 실전 자바 - 기본편 (6)
        • 실전 자바 - 중급편 (10)
        • 실전 자바 - 고급편 (4)
      • Web (39)
        • Web Basics (39)
      • Project (24)
        • NeoSquare (0)
        • Memo Evolution (24)
      • 정보처리기사 (0)
  • 블로그 메뉴

    • 홈
    • 태그
    • 방명록
  • 링크

  • 공지사항

  • 인기 글

  • 태그

    java
    aws
    개발서적
  • 최근 댓글

  • 최근 글

  • hELLO· Designed By정상우.v4.10.6
sqaxe1
3장_ 소스코드 재배포
상단으로

티스토리툴바