diff --git a/docs/setup/WSL · Ubuntu · Docker 이해하기_moon b/docs/setup/WSL · Ubuntu · Docker 이해하기_moon new file mode 100644 index 00000000..66133209 --- /dev/null +++ b/docs/setup/WSL · Ubuntu · Docker 이해하기_moon @@ -0,0 +1,639 @@ +# WSL · Ubuntu · Docker 이해하기 (초보자용 가이드) + +## 문서 정보 + +| 항목 | 내용 | +| ---- | -------------------------- | +| 문서명 | WSL · Ubuntu · Docker 이해하기 | +| 대상 | 개발 입문자, 신규 팀원 | +| 작성목적 | Baron SSO 개발환경 이해 | +| 작성일 | 2026-06-12 | + +--- + +# 1. 개요 + +현재 Baron SSO 개발환경은 다음과 같은 구조로 구성되어 있습니다. + +```text +Windows + ↓ +WSL + ↓ +Ubuntu + ↓ +Docker + ↓ +Baron 서비스들 +``` + +처음 접하는 사람은 용어가 많아 어렵게 느껴질 수 있지만, + +사실은 다음과 같이 이해하면 쉽습니다. + +| 구성요소 | 비유 | +| -------------- | ---------- | +| Windows | 집 | +| WSL | 집 안의 리눅스 방 | +| Ubuntu | 방에 사는 사람 | +| Docker | 작업실 | +| Container | 개별 작업실 | +| Baron Backend | 백엔드 작업실 | +| Baron Frontend | 프론트엔드 작업실 | +| ClickHouse | 데이터 저장 작업실 | + +--- + +# 2. 전체 구조 이해하기 + +## 실제 개발환경 구조 + +```text +┌─────────────────────────┐ +│ Windows 11 │ +│ │ +│ VS Code │ +│ Chrome │ +│ Git │ +└──────────┬──────────────┘ + │ + ▼ +┌─────────────────────────┐ +│ WSL │ +│ (Windows Linux Layer) │ +└──────────┬──────────────┘ + │ + ▼ +┌─────────────────────────┐ +│ Ubuntu │ +│ (Linux) │ +└──────────┬──────────────┘ + │ + ▼ +┌─────────────────────────┐ +│ Docker │ +└──────────┬──────────────┘ + │ + ▼ + ┌─────────┼─────────┬─────────┐ + ▼ ▼ ▼ ▼ +Backend UserFront AdminFront ClickHouse +``` + +--- + +# 3. Windows란? + +현재 우리가 사용하는 기본 운영체제(OS)입니다. + +예) + +```text +C:\Users +D:\Project +E:\Workspace +``` + +Windows 환경에서 사용하는 경로입니다. + +주요 프로그램 + +* VS Code +* Chrome +* Edge +* Explorer +* Git GUI + +등이 Windows 위에서 실행됩니다. + +--- + +# 4. WSL이란? + +## WSL + +Windows Subsystem for Linux + +즉, + +"Windows 안에서 Linux를 실행할 수 있게 해주는 기능" + +입니다. + +--- + +## WSL이 없던 시절 + +Linux를 사용하려면 + +```text +PC + ├─ Windows + └─ Virtual Machine + └─ Ubuntu +``` + +구조를 사용했습니다. + +문제점 + +* 느림 +* 무거움 +* 메모리 많이 사용 + +--- + +## WSL 사용 + +```text +PC + ├─ Windows + └─ WSL + └─ Ubuntu +``` + +장점 + +* 빠름 +* 가벼움 +* 실제 Linux와 거의 동일 + +--- + +# 5. Ubuntu란? + +Ubuntu는 Linux 운영체제입니다. + +Windows와 같은 OS입니다. + +비교하면 + +| Windows | Linux | +| ---------- | -------- | +| Windows 11 | Ubuntu | +| 탐색기 | Shell | +| CMD | Terminal | +| PowerShell | Bash | + +--- + +Ubuntu 접속 예시 + +```bash +wsl +``` + +또는 + +```bash +ubuntu +``` + +실행 후 + +```bash +ubuntu@DESKTOP-XXXX:~$ +``` + +가 보이면 Ubuntu 안에 들어온 상태입니다. + +--- + +# 6. Docker란? + +Docker는 + +"프로그램을 독립적으로 실행하는 기술" + +입니다. + +--- + +예를 들어 + +Baron 프로젝트에 필요한 것 + +```text +NodeJS +Database +Backend +Frontend +ClickHouse +``` + +를 직접 설치하면 + +PC가 복잡해집니다. + +--- + +Docker 사용 시 + +```text +┌────────────┐ +│ Backend │ +└────────────┘ + +┌────────────┐ +│ Frontend │ +└────────────┘ + +┌────────────┐ +│ Database │ +└────────────┘ + +┌────────────┐ +│ ClickHouse │ +└────────────┘ +``` + +각각 독립적으로 실행됩니다. + +--- + +# 7. Container란? + +Docker 안에서 실행되는 작은 서버입니다. + +쉽게 말하면 + +"미니 컴퓨터" + +라고 생각하면 됩니다. + +--- + +현재 Baron 환경 예시 + +```text +Container 1 +baron_backend + +Container 2 +baron_userfront + +Container 3 +baron_adminfront + +Container 4 +baron_clickhouse +``` + +각 컨테이너는 + +* 독립 실행 +* 독립 설정 +* 독립 포트 + +를 가집니다. + +--- + +# 8. Image와 Container 차이 + +많이 헷갈리는 부분입니다. + +## Image + +설치 파일 + +예) + +```text +Windows 설치 ISO +``` + +와 비슷 + +--- + +## Container + +실행 중인 프로그램 + +예) + +```text +설치 완료 후 실행된 Windows +``` + +와 비슷 + +--- + +관계 + +```text +Docker Image + ↓ +실행 + ↓ +Container +``` + +--- + +# 9. 실제 Baron 프로젝트 구조 + +현재 개발환경 + +```text +Windows +│ +├─ VS Code +│ +├─ Git +│ +└─ E:\h_workspace\baron-sso +``` + +--- + +WSL에서 보면 + +```text +/mnt/e/h_workspace/baron-sso +``` + +가 됩니다. + +--- + +같은 폴더를 + +Windows와 Ubuntu가 + +다르게 표현하는 것입니다. + +| Windows | Ubuntu | +| ------------------------ | ---------------------------- | +| E:\h_workspace\baron-sso | /mnt/e/h_workspace/baron-sso | + +--- + +# 10. VS Code는 어디서 실행되는가? + +VS Code 자체는 Windows에서 실행됩니다. + +```text +Windows + └─ VS Code +``` + +하지만 + +Remote WSL 기능을 사용하면 + +```text +VS Code + ↓ +WSL + ↓ +Ubuntu +``` + +에 연결됩니다. + +--- + +좌측 하단에 + +```text +WSL: Ubuntu +``` + +가 보이면 + +Ubuntu 내부를 편집 중인 상태입니다. + +--- + +# 11. Docker Compose란? + +여러 컨테이너를 한 번에 실행하는 기능입니다. + +예) + +docker-compose.yml + +```yaml +services: + + backend: + ... + + userfront: + ... + + adminfront: + ... + + clickhouse: + ... +``` + +--- + +실행 + +```bash +docker compose up -d +``` + +--- + +Docker가 자동으로 + +```text +Backend 시작 +UserFront 시작 +AdminFront 시작 +ClickHouse 시작 +``` + +을 수행합니다. + +--- + +# 12. Baron SSO 실행 흐름 + +```text +개발자 + │ + ▼ + +VS Code 수정 + + │ + ▼ + +Git 저장 + + │ + ▼ + +Docker Compose 실행 + + │ + ▼ + +Backend Container + +UserFront Container + +AdminFront Container + +ClickHouse Container + + │ + ▼ + +웹 브라우저 접속 +``` + +--- + +# 13. 자주 사용하는 명령어 + +## 현재 컨테이너 보기 + +```bash +docker ps +``` + +--- + +## 전체 컨테이너 보기 + +```bash +docker ps -a +``` + +--- + +## 로그 보기 + +```bash +docker logs 컨테이너명 +``` + +예) + +```bash +docker logs baron_backend +``` + +--- + +## 컨테이너 접속 + +```bash +docker exec -it 컨테이너명 bash +``` + +예) + +```bash +docker exec -it baron_backend bash +``` + +--- + +## 컨테이너 중지 + +```bash +docker stop 컨테이너명 +``` + +--- + +## 컨테이너 재시작 + +```bash +docker restart 컨테이너명 +``` + +--- + +# 14. 최종 정리 + +## 한 문장 설명 + +### Windows + +사용자가 사용하는 실제 운영체제 + +--- + +### WSL + +Windows 안에서 Linux를 사용할 수 있게 해주는 기능 + +--- + +### Ubuntu + +WSL 안에서 실행되는 Linux 운영체제 + +--- + +### Docker + +프로그램을 독립된 환경에서 실행하는 기술 + +--- + +### Container + +Docker 안에서 실행되는 개별 서비스 + +--- + +## Baron SSO 전체 구조 + +```text +사용자 + │ + ▼ + +Windows + + │ + +VS Code + + │ + +WSL + + │ + +Ubuntu + + │ + +Docker + + │ + +├─ baron_backend +├─ baron_userfront +├─ baron_adminfront +└─ baron_clickhouse + + │ + +브라우저 접속 +``` + +--- + +## 기억해야 할 핵심 + +"Windows 위에서 WSL이 동작하고, + +WSL 안에서 Ubuntu가 실행되며, + +Ubuntu 안에서 Docker가 실행되고, + +Docker 안에서 Baron 서비스들이 실행된다."