
✅ 전체 실습 구조 요약도
[내 PC - Eclipse]
↓ (Maven 빌드)
[JAR 파일 생성]
↓ (MobaXterm SFTP 전송)
[Ubuntu VM in VirtualBox]
↳ [java -jar 실행] 또는 [Docker container로 실행]
↓
VirtualBox 포트포워딩 (Host:9999 → Guest:8080)
↓
[브라우저에서 localhost:9999 접속 → Spring 서버 응답]
✅ 실습 및 개념 정리
1. VirtualBox 설치
Ubuntu 가상머신 생성 물리 PC 안에 가상환경을 만들어 실습 가능하게 함
2. Ubuntu 설치
리눅스 서버 환경 구성 서버 배포, CLI 기반 개발 실습
3. 네트워크 설정 포트 포워딩 (9999 → 8080)
브라우저에서 VM 안의 서버로 접근 가능하게 설정
4. Eclipse 개발
Spring Boot 프로젝트 개발 Java 기반 백엔드 프레임워크, 내장 톰캣 사용
5. Maven 빌드 mvn clean package
의존성 관리 + JAR 빌드 자동화
6. JAR 실행
java -jar myapp.jar Spring Boot 실행, 8080 포트에서 서버 동작
7. MobaXterm 사용
SFTP로 JAR 전송 + SSH 접속 리눅스 서버 원격 접속 및 파일 이동 통합 툴
8. 브라우저 실행
localhost:9999 접속 포트포워딩을 통해 내 PC에서 VM 서버로 접근
9. Docker 설치 + 연동
Ubuntu VM에 Docker 설치 컨테이너 가상화 플랫폼, 배포 단위 표준화
10. Docker로 Spring 실행
Dockerfile → 이미지 빌드 → 컨테이너 실행 OS와 분리된 애플리케이션 단위 실행 가능
✅ Docker 연동까지 요약 설명
개념 설명
Docker 경량 가상화 기술. 애플리케이션 + 실행 환경을 통째로 이미지로 패키징
Dockerfile JAR 실행을 위한 명령어 모음 파일 (FROM, COPY, CMD 등 포함)
이미지(Image) 애플리케이션 + 실행환경을 포함한 정적인 실행 패키지
컨테이너(Container) 이미지가 실제로 실행된 인스턴스
포트 매핑 (-p 9999:8080) 호스트 포트와 컨테이너 내부 포트를 연결해 외부 접근 가능하게 함
✅ 이 흐름에서 4학년인 내가 알아야 할 중요한 개념들
📦 개발 → 실행까지의 흐름
개발 Eclipse + Maven 빌드
배포 MobaXterm으로 전송
실행 리눅스에서 java 실행 또는 Docker로 실행
접근 포트포워딩 or Docker -p 옵션으로 외부 접속 허용
🔌 네트워크 개념
TCP 포트: 서버와 클라이언트가 통신할 수 있도록 열리는 통로
포트포워딩: 외부 포트를 내부 서버의 포트로 연결해줌
localhost:포트: 실제로는 내 PC → 가상환경으로 연결되는 방식
🐳 Docker 핵심 개념
이미지: 실행 가능한 애플리케이션 패키지
컨테이너: 이미지가 실행 중인 상태
-p 9999:8080: 외부 포트와 내부 포트를 연결해주는 포트 매핑
✅ 전체 한줄 요약
“Eclipse에서 만든 Spring 애플리케이션을 Ubuntu 가상머신에 복사해서 실행하고, 포트포워딩이나 Docker를 통해 브라우저에서 접속 가능한 웹 서버로 만든 실습”