diff --git a/public/images/academy/docker-environment/1.svg b/public/images/academy/docker-environment/1.svg new file mode 100644 index 00000000..19f1636d --- /dev/null +++ b/public/images/academy/docker-environment/1.svg @@ -0,0 +1,131 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + MNG + + + + API + + + + MySQL + + + + + + + + LOCAL + + + + 내 노트북 + + + + + + + + + + + + + + + + + + + + + 운영 서버 + + + + + + + + + + + Docker + + + 어디서든 동일한 환경 + + + + + + + + + 개발 환경과 운영 환경의 차이를 제거합니다 + + \ No newline at end of file diff --git a/public/images/academy/docker-environment/2.svg b/public/images/academy/docker-environment/2.svg new file mode 100644 index 00000000..d24fe253 --- /dev/null +++ b/public/images/academy/docker-environment/2.svg @@ -0,0 +1,167 @@ + + + + + + + + + + + + + + + + + + + + + 가상머신(VM) vs Docker 컨테이너 + + + + + + + + 가상머신 (VM) + + + + + + + Hardware + + + + Host OS + + + + Hypervisor + + + + + + + Guest OS + + + Bins/Libs + + + App 1 + + VM 1 + + + + + + + Guest OS + + Bins/Libs + + App 2 + VM 2 + + + + + + + Guest OS + + Bins/Libs + + App 3 + VM 3 + + + + + + Docker 컨테이너 + + + + + + + Hardware + + + + Host OS (커널 공유) + + + + Docker Engine + + + + + + + Bins/Libs + + + App 1 + Container 1 + + + + + + + Bins/Libs + + App 2 + Container 2 + + + + + + + Bins/Libs + + App 3 + Container 3 + + + + + + + + + GB 단위 + + + + + + MB 단위 + + + + + + 각 VM마다 OS 필요 + 무겁고 느림 + + + + 커널을 공유하여 OS 불필요 + 가볍고 빠름 + + + + VS + \ No newline at end of file diff --git a/public/images/academy/docker-environment/3.svg b/public/images/academy/docker-environment/3.svg new file mode 100644 index 00000000..99247d9e --- /dev/null +++ b/public/images/academy/docker-environment/3.svg @@ -0,0 +1,174 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + SAM 전체 아키텍처 + + + + + samnet (브리지 네트워크) + + + + + + 🌐 + Nginx + :80 / :443 + + + + + + + + + + API + Laravel :9000 + + + + + + + 🖥 + MNG + Laravel :9001 + + + + + + + + React + Next.js :3000 + + + + + + + 🎨 + Design + Laravel :9003 + + + + + + + 💰 + Sales + Laravel :9004 + + + + + + + 📦 + PHP 7.3 + Legacy :9002 + + + + + + + + + + + 🗄 + MySQL + :3306 + + + + + + + 🔧 + phpMyAdmin + :8080 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + Nginx 라우팅 + + API + + MNG + + React + + MySQL + + Sales + + Design + + PHP 7.3 (Legacy) + + phpMyAdmin + + \ No newline at end of file diff --git a/public/images/academy/docker-environment/4.svg b/public/images/academy/docker-environment/4.svg new file mode 100644 index 00000000..905ff376 --- /dev/null +++ b/public/images/academy/docker-environment/4.svg @@ -0,0 +1,151 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + 요청 처리 흐름 (5단계) + + + + + 사용자가 페이지를 열 때 내부에서 일어나는 일 + + + + + + + + + + 1 + + + + + 🌐 + + + + 브라우저 + HTTP 요청 + + + + + :80 + + + + + 2 + + + 🔀 + Nginx + + 라우팅 + URL 분석 + + + + + FastCGI + + + + + 3 + + + ⚙️ + PHP-FPM / Node + + 처리 엔진 + 코드 실행 + + + + + + + + + 4 + + + 🏗 + Laravel / Next.js + + 프레임워크 + 비즈니스 로직 + + + + + SQL + + + + + 5 + + + + + + + MySQL + + 데이터 + 조회/저장 + + + + + + 응답 반환 (HTML / JSON) + + + + + + + + + + + 예시: mng.sam-erp.com/dashboard 접속 시 + + + ① 브라우저가 mng.sam-erp.com 으로 HTTP 요청 전송 + + + ② Nginx가 도메인을 보고 MNG 컨테이너로 라우팅 + + + ③ PHP-FPM이 Laravel 코드를 실행 → ④ 대시보드 컨트롤러가 → ⑤ MySQL에서 데이터 조회 후 HTML 반환 + + + \ No newline at end of file diff --git a/public/images/academy/docker-environment/5.svg b/public/images/academy/docker-environment/5.svg new file mode 100644 index 00000000..6d0b6005 --- /dev/null +++ b/public/images/academy/docker-environment/5.svg @@ -0,0 +1,199 @@ + + + + + + + + + + + + + + + + + + + + + 서비스별 내부 프로세스 구조 + + + Supervisor가 각 컨테이너 안의 프로세스를 관리합니다 + + + + + + + + + MNG 컨테이너 + + + + + Supervisor + + + + + + + + + + + + Nginx + 웹서버 + + + + + PHP-FPM + PHP 처리 + + + + + + + + + + + + Queue + Worker + + + + + Worker 1 + + + + + Worker 2 + + + + + + + 관리자 페이지 + 이메일/알림 등 + 백그라운드 작업 처리 + + + Port :9001 + + + + + + + + + API 컨테이너 + + + + + Supervisor + + + + + + + + + + + + + Nginx + 웹서버 + + + + + PHP-FPM + PHP 처리 + + + + + Queue + Worker + + + + + Scheduler + 크론작업 + + + + 매 1분 실행 + 예약 작업 관리 + 알림, 동기화 등 + + + + + REST API 서비스 + 스케줄러 + 데이터 처리, 인증, 파일 관리 + + + Port :9000 + + + + + + + + + React 컨테이너 + + + + + Node.js + + + + + + + + Next.js Server + SSR + Static Pages + + + + Supervisor 없이 단일 프로세스 + (Node.js가 직접 관리) + + + + 사용자 화면 (고객 앱) + 서버사이드 렌더링 + 정적 페이지 + + + Port :3000 + + + + + + = 실행중 (Running) + + + = Supervisor 관리 프로세스 + + \ No newline at end of file