1
0
forked from baron/baron-sso

WSL · Ubuntu · Docker 이해하기

내가 사용할 개발환경에 대한 이해를 돕기 위하여 작성
This commit is contained in:
2026-06-12 07:56:52 +09:00
parent bbf25683ce
commit a6e2b9bc29

View File

@@ -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 서비스들이 실행된다."