```bash
# ๐ FastAPI CRUD ํ์ค ํด๋ ๊ตฌ์กฐ (my-api/ ๋ด๋ถ)
my-api/ # ๐ฆ ํ์ด์ฌ ๋ฐฑ์๋ ๋
๋ฆฝ ํด๋
├── .vscode/
│ └── settings.json # ๐ก ๊ฐ์ํ๊ฒฝ ๊ณ ์ ์ธํ
(./.venv/bin/python)
├── .venv/ # ๐ก ์ด ํด๋๋ง์ ์ํ ๋
๋ฆฝ ๊ฐ์ํ๊ฒฝ
├── app/ # ๐ ๋ฉ์ธ ์ ํ๋ฆฌ์ผ์ด์
์์ค์ฝ๋ ํด๋
│ ├── __init__.py
│ ├── main.py # ์๋ฒ ์ง์
์ (FastAPI ์ธ์คํด์ค, ๋ฏธ๋ค์จ์ด ์ค์ )
│ │
│ ├── config.py # ํ๊ฒฝ ๋ณ์ ๋ฐ DB ์ฐ๊ฒฐ ์ค์ (Pydantic Settings)
│ ├── database.py # SQLAlchemy DB ์ธ์
์ค์ (SessionLocal)
│ │
│ ├── api/ # [Router] URL ๊ฒฝ๋ก ๋ฐ ์๋ํฌ์ธํธ ๊ด๋ฆฌ
│ │ ├── __init__.py
│ │ └── v1/
│ │ ├── __init__.py
│ │ └── table.py # ๐ก ๋งจ ์ฒ์ ๊ธฐํํ HTMX ํ์ด์ง๋ค์ด์
๋ผ์ฐํฐ ์์น
│ │
│ ├── crud/ # [Repository/CRUD] ์์ DB ์ฟผ๋ฆฌ (Select, Insert)
│ │ ├── __init__.py
│ │ └── base.py # ๊ณตํต CRUD ์ฟผ๋ฆฌ (์กฐํ, ์์ฑ, ์ญ์ , ์์ ๊ณตํตํ)
│ │
│ ├── models/ # [DB Model] SQLAlchemy ํ
์ด๋ธ ์ ์
│ │ ├── __init__.py
│ │ └── table_data.py # ํ
์ด๋ธ ๋ฐ์ดํฐ ์คํค๋ง
│ │
│ └── schemas/ # [DTO] Pydantic ์
์ถ๋ ฅ ๋ฐ์ดํฐ ๊ฒ์ฆ ๊ท๊ฒฉ
│ ├── __init__.py
│ └── table_data.py # Request/Response Validation์ฉ ์คํค๋ง
│
├── public/ # ๐จ ์ฐ๋ฆฌ๊ฐ ์ง์ ํ ์ ์ ํ์ผ ๋ณด๊ด์
│ └── favicon.ico # ํ๋น์ฝ ์์ด์ฝ ํ์ผ
├── logs/ # ๐ ๋ฐฑ์๋ ์๊ตฌ ๋ณด๊ด ๋ก๊ทธ ํด๋
│ └── access.log # User-Agent๊ฐ ํฌํจ๋ ์ํ์น ํฌ๋งท ๋ก๊ทธ ํ์ผ
├── pyproject.toml # uv ํจํค์ง ๊ด๋ฆฌ ๋ฐ Ruff ์ต์ ํ ์ค์ ํ์ผ
└── README.md # ํ๋ก์ ํธ ์ค๋ช
์
app/
└── domains/
├── packet/
│ ├── __init__.py
│ ├── router.py
│ ├── crud.py
│ └── models.py # ๐งฑ ์ค์ง '๋คํธ์ํฌ ํจํท ๋ฐ์ดํฐ'๋ง ์ค๊ณํ๋ ๊ตฌ์กฐ์ฒด ์ ์ธ์
│
└── user/
├── __init__.py
├── router.py
├── crud.py
└── models.py # ๐งฑ ์ค์ง 'ํ์ ์ ๋ณด/๋น๋ฐ๋ฒํธ'๋ง ์ค๊ณํ๋ ๊ตฌ์กฐ์ฒด ์ ์ธ์
app/
└── domains/
└── packet/
├── __init__.py
├── router.py # ๐ฎ♂️ View / API ์ฃผ์์ฐฝ ์ ์ด์ค
├── crud.py # ๐️ ์์ DB ์ฟผ๋ฆฌ ์ ์ฉ ํจ์ ๋ณด๊ด์
├── models.py # ๐งฑ SQLite DB ํ
์ด๋ธ ๋ฌผ๋ฆฌ ์ค๊ณ๋ (SQLAlchemy)
├── schemas.py # ๐ [์ฌ๊ธฐ์ ์ฅ์ฐฉ!] ํจํท ๋ฐ์ดํฐ ์
๋ ฅ๊ฐ/์ถ๋ ฅ๊ฐ ๊ท๊ฒฉ์ (Pydantic)
└── utils.py # ๐ ️ ํจํท ์ ์ฉ ํฌํผ ๋ฐ ๊ฐ๊ณต ๊ณ์ฐ ํจ์
```
๋ณธ ๊ณต๊ฐ์ ์ธ๊ณต์ง๋ฅ(AI)์ด ๋์ถํ ๋ฐฉ๋ํ ์ง์์ ์ผ๋ชฉ์์ฐํ๊ฒ ํ๋ ์ด์
ํ์ฌ ๊ธฐ๋กํ๋ ๋ธ๋ก๊ทธ์
๋๋ค. ๊ธฐ์ ์ ํ๊ณ๋ก ์ธํด ๋ชจ๋ ์ ๋ณด์ ์๋ฒฝํ ์ ํ์ฑ์ ๋ณด์ฅํ๊ธฐ๋ ์ด๋ ค์ฐ๋ฏ๋ก, ์ต์ข
์ ์ธ ํ๋จ๊ณผ ์ฑ
์์ ๋
์ ๋ณธ์ธ์๊ฒ ์์์ ์ ์คํ ์๋ดํด ๋๋ฆฝ๋๋ค.
2026๋ 7์ 21์ผ ํ์์ผ
# ๐ FastAPI CRUD ํ์ค ํด๋ ๊ตฌ์กฐ (my-api/ ๋ด๋ถ)
database.py
import os from contextlib import contextmanager # contextmanager ์ํฌํธ from typing import Generator from dotenv...
-
bool atob(const char * string) { if (!strcmp(string, "true")) return true; return false; }
-
/// CXXXView.cpp void CXXXView::OnInitialUpdate() { CView::OnInitialUpdate(); // TODO: Add your specialized code here and/or call the ...
-
WxWidgets: http://www.wxwidgets.org/downloads/ MinGW: http://sourceforge.net/projects/mingw/files/ * Microsoft Windows Environment Var...