2025-07-17 ํ์ต ๋ ธํธ
2025-07-17 ํ์ต ๋
ธํธ
๐ ๋์ปค, ํ์ด์ฌ, ๋ฆฌ์กํธ ํต์ฌ ์์ฝ
๐ณ Docker
๋ค๋ฅธ ํ๊ฒฝ์ผ๋ก ํ๋ก๊ทธ๋จ์ ์ฝ๊ฒ ์ด์ํ ์ ์๊ฒ ํด์ฃผ๋ ์ปจํ ์ด๋ ๊ธฐ์
- ์ค์น์ ์คํ์ ๊ฐํธํ๊ฒ ๋ง๋ค์ด์ค
- โ๋ด ์ปดํจํฐ์์๋ ์ ๋๋๋ฐโฆโ ๋ฌธ์ ํด๊ฒฐ
- ๊ฐ์๋จธ์ ๋ณด๋ค ๊ฐ๋ณ๊ณ ๋น ๋ฆ (OS ์ปค๋ ๊ณต์ )
Docker Compose ํ์ฉ ์ ๋ต
- ๊ฐ๋ฐ ๋จ๊ณ: Docker Compose ์ฌ์ฉ (
docker compose up -d,docker compose down๋ง์ผ๋ก ๊ฐํธ ๊ด๋ฆฌ) - ๋ฐฐํฌ ๋จ๊ณ: Compose ์์ด ๊ฐ๋ณ ์ปจํ ์ด๋๋ก ๋ฐฐํฌ (ํ๋ก๋์ ํ๊ฒฝ ํธํ์ฑ ๋ฌธ์ )
- ๊ฐ๋ฐ ์ ๋งค๋ฒ ์ปจํ ์ด๋์ ๋ค์ด๊ฐ๋ ๋ถํธํจ์ Compose๊ฐ ํด๊ฒฐ
๐ API Endpoints
API์์ ๋ฐ์ดํฐ๋ฅผ ์ฃผ๊ณ ๋ฐ๋ ์ ์ URL
- ํด๋ผ์ด์ธํธ์ ์๋ฒ ๊ฐ์ ํต์ ์ง์
- RESTful API์ ํต์ฌ ๊ตฌ์ฑ์์
- HTTP ๋ฉ์๋(GET, POST, PUT, DELETE)์ ํจ๊ป ์ฌ์ฉ
โฐ APScheduler
ํ์ด์ฌ์์ ์ฃผ๊ธฐ์ ์์ ์ ์คํํ๋ ๋ผ์ด๋ธ๋ฌ๋ฆฌ
- ํฌ๋ก ์ก ๊ฐ์ ์ค์ผ์ค๋ง ์์ ์ ํ์ด์ฌ์ผ๋ก
- ๋ฐฑ๊ทธ๋ผ์ด๋ ์์ ์๋ํ์ ์ ์ฉ
- ์ธํฐ๋ฒ, ํฌ๋ก , ๋ ์ง ๊ธฐ๋ฐ ์ค์ผ์ค๋ง ์ง์
๐จ ์ฝ๋ ํ์ง ๋๊ตฌ๋ค
Ruff (์ถ์ฒ)
- Black + Flake8 + isort๋ฅผ ๋์ฒดํ๋ ์ฌ์ธ์ ํด
- Rust๋ก ์์ฑ๋์ด ๋งค์ฐ ๋น ๋ฅธ ์ฑ๋ฅ
- ํฌ๋งคํ ๊ณผ ๋ฆฐํ ์ ํ ๋ฒ์ ์ฒ๋ฆฌ
- ์ค์ ํ์ผ ํ๋๋ก ๋ชจ๋ ๊ท์น ๊ด๋ฆฌ
- isort: ํ์ด์ฌ import ๋ฌธ์ ์๋์ผ๋ก ์ ๋ ฌํ๋ ํด
Black
- ํ์ด์ฌ ์ฝ๋ ํฌ๋งคํฐ
- ์ฝ๋ ์คํ์ผ์ ์๋์ผ๋ก ํต์ผ
- โํํ ์๋โ ํฌ๋งคํ ์ผ๋ก ์ ๋ช
Flake8
- ํ์ด์ฌ ๋ฆฐํฐ(Linter)
- ๋ฌธ๋ฒ ์ค๋ฅ, ์คํ์ผ ๋ฌธ์ , ์ฝ๋ ์ค๋ฉ ํ์ง
- PEP 8 ์ค์ ํ์ธ
๐ SPA (Single Page Application)
ํ์ด์ง ์๋ก๊ณ ์นจ ์์ด JavaScript๊ฐ ํ๋ฉด์ ๋์ ์ผ๋ก ๋ ๋๋งํ๋ ์น์ฑ ๊ตฌ์กฐ
SPA์ ์ฅ๋จ์
์ฅ์ :
- ์ฌ์ฉ์ ๊ฒฝํ ํฅ์ (๋น ๋ฅธ ํ์ด์ง ์ ํ)
- ์ฑ ๊ฐ์ ๋ถ๋๋ฌ์ด ์ธํฐ๋์
- ์๋ฒ ๋ถํ ๊ฐ์ (์ด๊ธฐ ๋ก๋ฉ ํ ๋ฐ์ดํฐ๋ง ์ฃผ๊ณ ๋ฐ์)
๋จ์ :
- ์ด๊ธฐ ๋ก๋ฉ ์๊ฐ ๊ธธ์ด์ง ์ ์์
- SEO(๊ฒ์ ์์ง ์ต์ ํ) ์ด๋ ค์ - JavaScript ์คํ ์ ์ ๋น ํ์ด์ง
SPA SEO ๋ฌธ์ ํด๊ฒฐ๋ฒ
- SSR (Server-Side Rendering): ์๋ฒ์์ HTML์ ๋ฏธ๋ฆฌ ์์ฑํด์ ์ ์ก
- SSG (Static Site Generation): ๋น๋ ์์ ์ ์ ์ HTML ํ์ผ๋ค์ ๋ฏธ๋ฆฌ ์์ฑ
- React, Vue, Angular ๋ฑ ์ฃผ์ ํ๋ ์์ํฌ ๋ชจ๋ SSR/SSG ์ง์
๐ HTTP ํด๋ผ์ด์ธํธ ๋น๊ต
Python: httpx vs aiohttp
| ์ํฉ | ์ถ์ฒ ๋ผ์ด๋ธ๋ฌ๋ฆฌ | ์ด์ |
|---|---|---|
| FastAPI + ๋น๋๊ธฐ API ํด๋ผ์ด์ธํธ | httpx | requests์ ์ ์ฌํ API, ๋๊ธฐ/๋น๋๊ธฐ ๋ชจ๋ ์ง์ |
| ์ ์์ค ํผํฌ๋จผ์ค ๊ทนํ ์ต์ ํ | aiohttp | ์ธ๋ฐํ ์ ์ด ๊ฐ๋ฅ, ์๋ฒ/ํด๋ผ์ด์ธํธ ๋ชจ๋ ์ง์ |
JavaScript: Axios vs Fetch (์ค์ ๊ด์ )
| ์ํฉ | ์ถ์ฒ | ์ด์ |
|---|---|---|
| Next.js ํ๋ก์ ํธ | Fetch | Next.js ๋ด์ฅ ์บ์ฑ ์ง์, ๊ณต์ ๊ถ์ฅ |
| ์์ ์ JS + ๊ตฌํ ๋ธ๋ผ์ฐ์ | Axios | IE11 ๋ฑ ๋ค์ดํฐ๋ธ ์ง์ (ํด๋ฆฌํ ๋ถํ์) |
| React/Vue + ๊ตฌํ ๋ธ๋ผ์ฐ์ | Fetch | ๋น๋ ๋๊ตฌ๊ฐ ์๋์ผ๋ก ํด๋ฆฌํ ์ถ๊ฐ |
| ๋ณต์กํ ์์ฒญ/์๋ต ์ฒ๋ฆฌ | Axios | ์ธํฐ์ ํฐ, ์๋ JSON ๋ณํ, ํ์์์ ๋ฑ |
| ๋น ๋ฅธ ํ๋กํ ํ์ดํ | Axios | ์ค์ ๊ฐํธ, ์๋ฌ ์ฒ๋ฆฌ ์๋ํ |
ํด๋ฆฌํ (Polyfill)
๊ตฌํ ๋ธ๋ผ์ฐ์ ์์ ์ต์ ๊ธฐ๋ฅ์ ์ฌ์ฉํ ์ ์๊ฒ ํด์ฃผ๋ ์ฝ๋
- ๋ธ๋ผ์ฐ์ ๊ฐ ์ง์ํ์ง ์๋ ๊ธฐ๋ฅ์ JavaScript๋ก ๊ตฌํ
- ์: IE์์ fetch API ์ฌ์ฉํ๋ ค๋ฉด fetch ํด๋ฆฌํ ํ์
๐ง TypeScript
๊ฐ๋ฐ ๋จ๊ณ์์๋ง ํ์ ์ฒดํฌ๋ฅผ ์ ๊ณตํ๋ ๋ ์
- ์ค์ ์คํ์ JavaScript๋ก ๋ณํ(ํธ๋์คํ์ผ) ํ ์งํ
- ์ปดํ์ผ ํ์์ ํ์ ์ค๋ฅ๋ฅผ ๋ฏธ๋ฆฌ ๋ฐ๊ฒฌ
โ๏ธ React ํํ ๋ฆฌ์ผ
ํฑํํ ๊ฒ์ ๊ตฌํ์ ํตํด ํ์ตํ React ๊ธฐ์ด
- ์ฐธ๊ณ : React ๊ณต์ ํํ ๋ฆฌ์ผ
๋ถ๋ณ์ฑ (Immutability)
- ์๋ณธ state๋ฅผ ์ง์ ๋ณํํ์ง ์๊ณ ๋ณต์ฌ๋ณธ ์์ฑ
squares.slice()๋ก ๋ฐฐ์ด ๋ณต์ฌ ํ ์์ - ๋ถํ์ํ ์์ ์ปดํฌ๋ํธ ๋ฆฌ๋ ๋๋ง ๋ฐฉ์ง๋ก ์ฑ๋ฅ ์ต์ ํ
- ์๊ฐ ์ฌํ ๋๋ฒ๊น ๊ณผ ์ํ ์ถ์ ์๋ ๋์
Key Props
- React๊ฐ ๊ฐ ์ปดํฌ๋ํธ๋ฅผ ๊ตฌ๋ณํ๊ธฐ ์ํ ๊ณ ์ ์๋ณ์
- ๋์ ๋ฆฌ์คํธ ๋ ๋๋ง ์ ํ์ (๊ณต์ ๊ถ์ฅ)
๐ Markdown ์์ฑ ํ
ํ(Table) ์์ฑ ๊ท์น
ํ ๋ฐ๋ก ์์๋์ ํ ์คํธ๊ฐ ์์ผ๋ฉด ํ๊ฐ ์ธ์๋์ง ์์ ์ ์์
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
โ ์๋ชป๋ ์:
์ด ํ
์คํธ ๋ฐ๋ก ์๋์ ํ๊ฐ ์์ต๋๋ค.
| ์ปฌ๋ผ1 | ์ปฌ๋ผ2 |
|-------|-------|
| ๊ฐ1 | ๊ฐ2 |
์ด ํ
์คํธ ๋ฐ๋ก ์์ ํ๊ฐ ์์ต๋๋ค.
โ
์ฌ๋ฐ๋ฅธ ์:
์ด ํ
์คํธ ์๋์ ๋น ์ค์ ๋ฃ๊ณ ํ๊ฐ ์์ต๋๋ค.
| ์ปฌ๋ผ1 | ์ปฌ๋ผ2 |
|-------|-------|
| ๊ฐ1 | ๊ฐ2 |
์ด ํ
์คํธ ์์ ๋น ์ค์ด ์๊ณ ๊ทธ ์์ ํ๊ฐ ์์ต๋๋ค.
This post is licensed under CC BY 4.0 by the author.