Commit 14c42640 authored by insun park's avatar insun park
Browse files

README.md 개선: Docker Windows VM 복합 가상화 구조 상세 설명 추가

- Docker + KVM + Windows VM 아키텍처 다이어그램 추가
- 핵심 기술 스택 및 해결 과제 명시
- Spring Boot 애플리케이션 실행 환경 설명
- 2단계 NAT 및 iptables 방화벽 설정 해설
- 실제 사용 시나리오 제시
parent 5f816220
...@@ -16,22 +16,74 @@ ...@@ -16,22 +16,74 @@
- **[Docker 배포 가이드](./docker/deployment_guide.md)**: Docker를 이용한 서비스 배포 절차를 안내하는 가이드입니다. - **[Docker 배포 가이드](./docker/deployment_guide.md)**: Docker를 이용한 서비스 배포 절차를 안내하는 가이드입니다.
- **[Docker 예제](./docker/examples/)**: 다양한 Docker 설정 예제 파일들입니다. - **[Docker 예제](./docker/examples/)**: 다양한 Docker 설정 예제 파일들입니다.
#### 🖥️ 고급 가상화: Docker + KVM + Windows VM
- **[Docker Windows VM 가이드](./docker/docker-windows-vm/)**: **복합 가상화 환경 구축 가이드**
**🏗️ 아키텍처 개요**
```
외부 사용자 (RDP 클라이언트)
↓ (RDP 연결: 호스트IP:33890)
Linux 서버 (호스트)
↓ (Docker 포트 포워딩: 33890→3389)
Docker 컨테이너 (Ubuntu 20.04)
├── libvirtd (KVM 관리 데몬)
├── Vagrant (VM 자동화 도구)
└── iptables (내부 포트 포워딩)
↓ (3389→VM의 3389)
KVM 가상 머신 (Windows 10)
└── Spring Boot 애플리케이션
```
**⚙️ 핵심 기술 스택**
- **가상화**: Docker (컨테이너) + KVM (하드웨어 가상화)
- **자동화**: Vagrant + vagrant-libvirt 플러그인
- **네트워킹**: 2단계 NAT + iptables FORWARD 체인 설정
- **원격 접속**: RDP (Remote Desktop Protocol)
- **애플리케이션**: [Spring Boot](https://spring.io/guides/gs/spring-boot-docker) 기반 Java 웹 애플리케이션
**🔧 주요 해결 과제**
- **방화벽 문제**: 호스트의 iptables FORWARD 체인 DROP 정책 우회
- **네트워크 라우팅**: 복잡한 다중 NAT 환경에서의 패킷 흐름 제어
- **포트 충돌**: 호스트-컨테이너-VM 간 포트 매핑 관리
**💡 사용 시나리오**
- Windows 전용 소프트웨어를 Linux 서버에서 실행
- 격리된 개발 환경에서 Spring Boot 애플리케이션 테스트
- 원격 Windows 데스크톱 환경이 필요한 업무
- CI/CD 파이프라인에서 Windows 환경 테스트
### 🌐 Nginx ### 🌐 Nginx
- **[Nginx 프록시 설정 분석](./nginx/proxy_analysis.md)**: Nginx 리버스 프록시 서버의 주요 설정 파일과 서비스별 프록시 규칙을 상세히 분석한 문서입니다. - **[Nginx 프록시 설정 분석](./nginx/proxy_analysis.md)**: Nginx 리버스 프록시 서버의 주요 설정 파일과 서비스별 프록시 규칙을 상세히 분석한 문서입니다.
--- ---
## 🤖 AI 강의 ## 🤖 AI 전문가 양성 과정
16주 완성! 파이썬부터 프로덕션 배포까지의 AI 전문가 양성 과정을 위한 체계적인 강의 자료입니다.
### 📚 과정 개요
- **[AI 전문가 과정 메인 페이지](./ai%20lecture/README.md)**: 전체 과정 소개 및 기술 스택 정보
- **[강의 계획서](./ai%20lecture/AI_Expert_Course_Schedule.md)**: 16주 과정의 상세한 주차별 학습 목표와 내용
- **[개발 환경 설정 가이드](./ai%20lecture/SETUP.md)**: Poetry를 사용한 현대적인 개발 환경 설정 방법
- **[자주 묻는 질문 (FAQ)](./ai%20lecture/FAQ.md)**: 과정에 대한 주요 질문과 답변
- **[기여 가이드](./ai%20lecture/CONTRIBUTING.md)**: 프로젝트 기여 방법 및 개발 환경 설정
- **[문제 해결 가이드](./ai%20lecture/TROUBLESHOOTING.md)**: 개발 중 발생할 수 있는 문제 해결 방법
AI 전문가 양성 과정을 위한 강의 자료입니다. 각 링크를 통해 파트별 학습 내용을 확인할 수 있습니다. ### 🎯 커리큘럼 구조
#### **Part 1: AI 개발을 위한 파이썬 마스터리 (1-5주차)**
- **[Part 0: 과정 소개](./ai%20lecture/courses/00_introduction/part_0_introduction.md)** - **[Part 0: 과정 소개](./ai%20lecture/courses/00_introduction/part_0_introduction.md)**
- **[Part 0.1: AI의 역사](./ai%20lecture/courses/00_introduction/part_0.1_history_of_ai.md)**
- **[Part 1: AI 개발 환경 구축](./ai%20lecture/courses/01_ai_development_environment/part_1_ai_development_environment.md)** - **[Part 1: AI 개발 환경 구축](./ai%20lecture/courses/01_ai_development_environment/part_1_ai_development_environment.md)**
- **[Part 2: Python 핵심 문법](./ai%20lecture/courses/02_python_core_syntax/part_2_python_core_syntax.md)** - **[Part 2: Python 핵심 문법](./ai%20lecture/courses/02_python_core_syntax/part_2_python_core_syntax.md)**
- **[Part 3: Python 컬렉션](./ai%20lecture/courses/03_python_collections/part_3_python_collections.md)** - **[Part 3: Python 컬렉션](./ai%20lecture/courses/03_python_collections/part_3_python_collections.md)**
- **[Part 4: 객체 지향 프로그래밍](./ai%20lecture/courses/04_object_oriented_programming/part_4_object_oriented_programming.md)** - **[Part 4: 객체 지향 프로그래밍](./ai%20lecture/courses/04_object_oriented_programming/part_4_object_oriented_programming.md)**
- **[Part 5: AI 핵심 라이브러리](./ai%20lecture/courses/05_ai_core_libraries/part_5_ai_core_libraries.md)** - **[Part 5: AI 핵심 라이브러리](./ai%20lecture/courses/05_ai_core_libraries/part_5_ai_core_libraries.md)**
#### **Part 2: 핵심 AI 모델 개발 및 서빙 (6-9주차)**
- **[Part 6: 머신러닝](./ai%20lecture/courses/06_machine_learning/part_6_machine_learning.md)** - **[Part 6: 머신러닝](./ai%20lecture/courses/06_machine_learning/part_6_machine_learning.md)**
- **[Part 7: 딥러닝](./ai%20lecture/courses/07_deep_learning/part_7_deep_learning.md)** - **[Part 7: 딥러닝](./ai%20lecture/courses/07_deep_learning/part_7_deep_learning.md)**
- **[7.1: 순환 신경망 (RNN)](./ai%20lecture/courses/07_deep_learning/part_7.1_recurrent_neural_networks.md)** - **[7.1: 순환 신경망 (RNN)](./ai%20lecture/courses/07_deep_learning/part_7.1_recurrent_neural_networks.md)**
...@@ -41,9 +93,88 @@ AI 전문가 양성 과정을 위한 강의 자료입니다. 각 링크를 통 ...@@ -41,9 +93,88 @@ AI 전문가 양성 과정을 위한 강의 자료입니다. 각 링크를 통
- **[7.5: 강화학습 (RL)](./ai%20lecture/courses/07_deep_learning/part_7.5_reinforcement_learning.md)** - **[7.5: 강화학습 (RL)](./ai%20lecture/courses/07_deep_learning/part_7.5_reinforcement_learning.md)**
- **[Part 8: FastAPI를 이용한 모델 서빙](./ai%20lecture/courses/08_model_serving_with_fastapi/part_8_model_serving_with_fastapi.md)** - **[Part 8: FastAPI를 이용한 모델 서빙](./ai%20lecture/courses/08_model_serving_with_fastapi/part_8_model_serving_with_fastapi.md)**
- **[Part 9: Production-Ready API](./ai%20lecture/courses/09_production_ready_api/part_9_production_ready_api.md)** - **[Part 9: Production-Ready API](./ai%20lecture/courses/09_production_ready_api/part_9_production_ready_api.md)**
#### **Part 3: 프로덕션 MLOps 및 AI 심화 (10-14주차)**
- **[Part 10: AI 전문가 과정 로드맵](./ai%20lecture/courses/10_expert_path/part_10_expert_path.md)** - **[Part 10: AI 전문가 과정 로드맵](./ai%20lecture/courses/10_expert_path/part_10_expert_path.md)**
- **[추천 학습 자료](./ai%20lecture/courses/10_expert_path/recommended_resources.md)**
- **[Part 11: 프로덕션 레벨 MLOps 심화](./ai%20lecture/courses/11_mlops/part_11_mlops.md)** - **[Part 11: 프로덕션 레벨 MLOps 심화](./ai%20lecture/courses/11_mlops/part_11_mlops.md)**
- **[Part 12: 대규모 AI 모델 최적화 및 서빙](./ai%20lecture/courses/12_model_optimization/part_12_model_optimization.md)** - **[Part 12: 대규모 AI 모델 최적화 및 서빙](./ai%20lecture/courses/12_model_optimization/part_12_model_optimization.md)**
- **[Part 13: 생성형 AI 및 AI 에이전트 심화](./ai%20lecture/courses/13_generative_ai/part_13_generative_ai.md)** - **[Part 13: 생성형 AI 및 AI 에이전트 심화](./ai%20lecture/courses/13_generative_ai/part_13_generative_ai.md)**
- **[Part 14: AI 윤리 및 거버넌스 실무](./ai%20lecture/courses/14_ai_ethics/part_14_ai_ethics.md)** - **[Part 14: AI 윤리 및 거버넌스 실무](./ai%20lecture/courses/14_ai_ethics/part_14_ai_ethics.md)**
#### **Part 4: 최종 캡스톤 프로젝트 (15-16주차)**
- **[Part 15: 최종 캡스톤 프로젝트 가이드](./ai%20lecture/courses/15_capstone_project/part_15_capstone_project.md)** - **[Part 15: 최종 캡스톤 프로젝트 가이드](./ai%20lecture/courses/15_capstone_project/part_15_capstone_project.md)**
- **[캡스톤 프로젝트 템플릿](./ai%20lecture/courses/15_capstone_project/capstone_template.md)**
### 💻 실습 코드 및 자료
- **[실습 코드 메인](./ai%20lecture/source_code/README.md)**: 전체 실습 코드 구조 및 사용법
- **[Python 핵심 문법 실습](./ai%20lecture/source_code/02_python_core_syntax/)**
- **[Python 컬렉션 실습](./ai%20lecture/source_code/03_python_collections/)**
- **[객체 지향 프로그래밍 실습](./ai%20lecture/source_code/04_object_oriented_programming/)**
- **[AI 핵심 라이브러리 실습](./ai%20lecture/source_code/05_ai_core_libraries/)**
- **[머신러닝 실습](./ai%20lecture/source_code/06_machine_learning/)**
- **[딥러닝 실습](./ai%20lecture/source_code/07_deep_learning/)**
- **[FastAPI 모델 서빙 실습](./ai%20lecture/source_code/08_model_serving_with_fastapi/)**
- **[Production API 실습](./ai%20lecture/source_code/09_production_ready_api/)**
- **[MLOps 심화 실습](./ai%20lecture/source_code/11_mlops/)**
- **[모델 최적화 실습](./ai%20lecture/source_code/12_model_optimization/)**
- **[생성형 AI 실습](./ai%20lecture/source_code/13_generative_ai/)**
- **[AI 윤리 실습](./ai%20lecture/source_code/14_ai_ethics/)**
### 📚 추가 자료
- **[통합 용어집](./ai%20lecture/glossary.md)**: 전체 과정에서 사용되는 핵심 용어 정리
- **[실습 데이터셋](./ai%20lecture/datasets/)**: 과정에서 사용되는 실습용 데이터
- **[Docker 설정 파일](./ai%20lecture/docker-compose.dev.yml)**: 개발 환경용 Docker 설정
- **[GPU 지원 Docker 설정](./ai%20lecture/docker-compose.gpu.yml)**: GPU 환경용 Docker 설정
- **[프로젝트 TODO](./ai%20lecture/TODO.md)**: 프로젝트 개선 사항 및 향후 계획
---
## 🛠️ 기술 스택
### AI 강의 과정
- **언어**: Python 3.10+
- **의존성 관리**: Poetry (권장) / pip
- **핵심 라이브러리**: NumPy, Pandas, Scikit-learn, PyTorch, LangChain
- **API 서버**: FastAPI
- **배포 및 운영**: Docker, Git
- **개발 환경**: JupyterLab, Visual Studio Code, Cursor, GitHub Copilot
- **코드 품질**: Black, Ruff, MyPy, Pytest
- **CI/CD**: GitLab CI/CD
### 서버 인프라
- **컨테이너화**: Docker, Docker Compose
- **웹 서버**: Nginx (리버스 프록시)
- **가상화 기술**:
- **Type 1**: KVM (Kernel-based Virtual Machine) - 하드웨어 직접 제어
- **Type 2**: Docker 컨테이너 - OS 레벨 가상화
- **복합 구조**: Docker + KVM 중첩 가상화로 Windows 환경 구현
- **네트워킹**: iptables 방화벽, NAT 포트 포워딩, RDP 원격 접속
- **모니터링**: 시스템 리소스 모니터링 도구
---
## 🚀 시작하기
### AI 강의 과정 시작하기
1. **[개발 환경 설정](./ai%20lecture/SETUP.md)**을 참고하여 환경을 구축합니다.
2. **[Part 0: 과정 소개](./ai%20lecture/courses/00_introduction/part_0_introduction.md)**부터 시작합니다.
3. 각 파트별로 이론 학습과 실습을 병행합니다.
### 서버 인프라 설정
1. **[Docker 배포 가이드](./docker/deployment_guide.md)**를 참고하여 Docker 환경을 구축합니다.
2. **[Nginx 프록시 설정](./nginx/proxy_analysis.md)**을 확인하여 웹 서버를 설정합니다.
---
## 📞 문의 및 지원
- **기술 문의**: 각 파트별 README 파일 및 FAQ 참고
- **개발 환경 문제**: [TROUBLESHOOTING.md](./ai%20lecture/TROUBLESHOOTING.md) 참고
- **프로젝트 기여**: [CONTRIBUTING.md](./ai%20lecture/CONTRIBUTING.md) 참고
---
**💡 이 저장소는 금도의 내부 교육 및 인프라 관리를 위한 문서입니다. 지속적인 업데이트와 개선을 통해 더 나은 학습 경험을 제공하겠습니다.**
Markdown is supported
0% or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment