Delete README.md

This commit is contained in:
2026-04-09 10:18:51 +09:00
parent ae658a332b
commit f2d86cd840
-205
View File
@@ -1,205 +0,0 @@
# 인트라넷 게시판 초보자 가이드
이 프로젝트는 `WSL2 Ubuntu + VS Code` 환경에서 실행하는 사내 게시판입니다.
중요한 점은, `WSL2`에서는 앱을 `0.0.0.0:8010`으로 띄워도 다른 PC가 곧바로 WSL 주소로 접속되지 않을 수 있다는 점입니다.
즉, 내부망 공유를 하려면 아래 2가지가 모두 필요합니다.
1. WSL 안에서 FastAPI 서버 실행
2. Windows가 `8010` 요청을 받아 WSL의 `8010`으로 전달하도록 설정
## 1. 이번에 정리된 내용
- 앱은 [main.py](/home/b17301/my-intranet-app/main.py) 에서 `0.0.0.0:8010`으로 실행됨
- 데이터는 `data.db`에 저장됨
- WSL2 내부망 공유용 보조 스크립트를 `scripts/` 폴더에 추가함
- Windows `portproxy`와 방화벽 규칙 설정용 PowerShell 스크립트를 추가함
## 2. 폴더 구조
```text
my-intranet-app/
├── main.py
├── requirements.txt
├── data.db
├── static/
├── templates/
│ └── index.html
└── scripts/
├── run_server.sh
├── show_access_info.sh
├── setup_windows_portproxy.ps1
└── remove_windows_portproxy.ps1
```
## 3. 왜 다른 PC에서 접속이 안 되었는가
당신의 현재 환경은 `WSL2`입니다.
WSL2는 Windows 안에 있는 별도 가상 네트워크를 사용합니다.
그래서 아래처럼 동작할 수 있습니다.
- 내 PC 브라우저에서 `http://127.0.0.1:8010` 접속: 됨
- 다른 PC에서 `http://WSL-IP:8010` 접속: 안 될 수 있음
이럴 때는 다른 PC가 `Windows 호스트 IP:8010` 으로 접속하고,
Windows가 그 요청을 WSL 앱으로 넘겨줘야 합니다.
## 4. 처음 한 번만 할 설정
프로젝트 폴더로 이동:
```bash
cd /home/b17301/my-intranet-app
```
가상환경 생성:
```bash
python3 -m venv .venv
```
가상환경 활성화:
```bash
source .venv/bin/activate
```
라이브러리 설치:
```bash
pip install -r requirements.txt
```
## 5. WSL에서 서버 실행
아래 명령으로 실행:
```bash
./scripts/run_server.sh
```
또는 기존처럼:
```bash
source .venv/bin/activate
python main.py
```
내 PC 테스트 주소:
```text
http://127.0.0.1:8010
```
중요:
- 이제 서버는 `reload=False`로 실행되므로, 예전처럼 자동 재시작 로그가 반복해서 나오지 않습니다.
- 코드를 수정한 뒤 반영하려면 서버를 `Ctrl + C`로 끄고 다시 `./scripts/run_server.sh`를 실행하면 됩니다.
## 6. 현재 WSL 쪽 주소 확인
아래 명령 실행:
```bash
./scripts/show_access_info.sh
```
현재 값은 실행 시점마다 달라질 수 있습니다.
- WSL 내부 IP: `./scripts/show_access_info.sh` 실행 결과를 확인
- Windows와 연결된 주소 추정값: `./scripts/show_access_info.sh` 실행 결과를 확인
하지만 다른 PC가 접속할 때는 보통 `WSL 내부 IP`가 아니라 `Windows 호스트 IP`를 사용해야 합니다.
## 7. 가장 중요한 설정: Windows 포트 전달
다음 작업은 `Windows PowerShell을 관리자 권한`으로 열어서 실행해야 합니다.
가장 쉬운 방법은 `PowerShell`에서 아래 명령을 실행하는 것입니다.
```powershell
& "\\wsl$\Ubuntu\home\b17301\my-intranet-app\scripts\setup_windows_portproxy.ps1" -Port 8010
```
만약 `CMD` 창만 사용하고 있다면 아래 명령을 그대로 실행하면 됩니다.
```cmd
"\\wsl$\Ubuntu\home\b17301\my-intranet-app\scripts\setup_windows_portproxy.cmd"
```
이 스크립트가 하는 일:
- Windows의 `0.0.0.0:8010` 수신
- 들어온 요청을 `현재 WSL IP:8010` 으로 전달
- Windows 방화벽에서 TCP `8010` 허용
## 8. 다른 PC에서 접속할 주소
다른 PC 브라우저에서는 아래처럼 접속합니다.
```text
http://Windows호스트IP:8010
```
예를 들어 Windows PC의 실제 사내 IP가 `192.168.0.25` 라면:
```text
http://192.168.0.25:8010
```
여기서 중요한 점:
- WSL 주소를 다른 PC에 알려주면 안 될 수 있음
- 다른 PC에는 반드시 `Windows IP`를 알려주는 쪽이 안전함
## 9. WSL IP가 바뀌면 어떻게 하나
WSL을 재시작하면 내부 IP가 바뀔 수 있습니다.
그럴 때는 아래 순서로 다시 맞추면 됩니다.
1. WSL에서 `./scripts/show_access_info.sh` 실행
2. 새 WSL IP 확인
3. 관리자 PowerShell에서 다시 실행
```powershell
.\setup_windows_portproxy.ps1 -Port 8010
```
## 10. 접속 확인 순서
1. WSL에서 `./scripts/run_server.sh` 실행
2. 내 PC 브라우저에서 `http://127.0.0.1:8010` 확인
3. Windows 관리자 PowerShell에서 `setup_windows_portproxy.ps1` 실행
4. 다른 PC에서 `http://Windows호스트IP:8010` 접속
## 11. 안 되면 확인할 것
1. 서버가 실제로 실행 중인지 확인
```bash
lsof -i :8010
```
2. 다른 프로그램이 `8010`을 이미 사용 중인지 확인
3. Windows 방화벽 규칙이 생겼는지 확인
4. 회사 네트워크에서 사설 포트 접근이 막히지 않았는지 확인
5. WSL IP가 바뀌었는지 확인
## 12. 제거가 필요할 때
관리자 PowerShell에서:
```powershell
& "\\wsl$\Ubuntu\home\b17301\my-intranet-app\scripts\remove_windows_portproxy.ps1" -Port 8010
```
또는 `CMD`에서는:
```cmd
"\\wsl$\Ubuntu\home\b17301\my-intranet-app\scripts\remove_windows_portproxy.cmd" 8010
```
## 13. 초보자용 한 줄 요약
이 프로젝트는 이제 코드 문제는 해결되어 있고, 내부망 공유의 핵심은 `Windows IP:8010 -> WSL 8010` 연결을 Windows에서 열어주는 것입니다.