Skip to content

mycodehive/lecture

Folders and files

NameName
Last commit message
Last commit date

Latest commit

ย 

History

2 Commits
ย 
ย 

Repository files navigation

lecture

Fullstack ๊ด€๋ จ ์ž๋ฃŒ

ํ•™์Šต๋ฐฉํ–ฅ


๊ธฐ์ˆ  ์Šคํƒ (React + FastAPI + PostgreSQL)์„ ๊ธฐ๋ฐ˜์œผ๋กœ ํ•™์Šตํ•  ์ˆ˜ ์žˆ๋Š” ์ฒด๊ณ„์ ์ด๊ณ  ํšจ์œจ์ ์ธ ์ปค๋ฆฌํ˜๋Ÿผ์„ ๋‹ค์Œ๊ณผ ๊ฐ™์ด ์Šคํ„ฐ๋””ํ•ฉ๋‹ˆ๋‹ค.

๐Ÿ“Œ ํ•™์Šต ๋ชฉํ‘œ

  • ํ”„๋ก ํŠธ์—”๋“œ์—์„œ React๋กœ ์‚ฌ์šฉ์ž ์ธํ„ฐํŽ˜์ด์Šค๋ฅผ ๊ตฌ์„ฑํ•˜๊ณ  API ํ†ต์‹  ์ฒ˜๋ฆฌ
  • ๋ฐฑ์—”๋“œ์—์„œ FastAPI๋กœ RESTful API๋ฅผ ๊ฐœ๋ฐœํ•˜๊ณ  ๊ด€๋ฆฌ
  • PostgreSQL์„ ์ด์šฉํ•œ ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค ๋ชจ๋ธ๋ง ๋ฐ ์—ฐ๋™
  • ์ „์ฒด ์„œ๋น„์Šค์˜ ๊ตฌ์กฐ ์„ค๊ณ„ ๋ฐ ์šด์˜ ๋ฐฉ๋ฒ• ์ˆ™์ง€ (๋ฐฐํฌ, ๊ด€๋ฆฌ ํฌํ•จ)

โœ… ์ถ”์ฒœ ํ•™์Šต ์ปค๋ฆฌํ˜๋Ÿผ (์•ฝ 8์ฃผ ๊ณผ์ • ๊ธฐ์ค€)

์•„๋ž˜์™€ ๊ฐ™์ด ๊ตฌ์„ฑํ•˜๋ฉด ๊ธฐ์ˆ ๋ณ„ ๊ธฐ์ดˆ๋ถ€ํ„ฐ ์‹ฌํ™”๊นŒ์ง€ ๋น ๋ฅด๊ฒŒ ์Šต๋“ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.


๐Ÿšฉ Week 1-2: Front-End ๊ธฐ์ดˆ (React + TypeScript)

  1. JavaScript & ES6 ๊ธฐ์ดˆ ๋ณต์Šต (ํ•„์š” ์‹œ)

    • ๊ธฐ๋ณธ ๋ฌธ๋ฒ•, ํ•จ์ˆ˜ํ˜• ํ”„๋กœ๊ทธ๋ž˜๋ฐ, ๋น„๋™๊ธฐ ์ฒ˜๋ฆฌ(Promise, async/await)
  2. React ๊ธฐ๋ณธ ๊ฐœ๋…

    • JSX, ์ปดํฌ๋„ŒํŠธ ๊ฐœ๋… (ํ•จ์ˆ˜ํ˜• ์ปดํฌ๋„ŒํŠธ)
    • props, state ๊ด€๋ฆฌ(useState, useEffect, useRef ๋“ฑ)
    • React Router๋กœ ํ™”๋ฉด ์ „ํ™˜ ์ฒ˜๋ฆฌ
  3. TypeScript ์†Œ๊ฐœ ๋ฐ ์ ์šฉ

    • TypeScript ๊ธฐ์ดˆ ๋ฐ ํƒ€์ž… ๊ฐœ๋… (interface, type, generics)
    • React ํ”„๋กœ์ ํŠธ์— TypeScript ์ ์šฉ ๋ฐฉ๋ฒ•
  4. REST API ์—ฐ๋™ (axios ๋˜๋Š” fetch)

    • ๋ฐฑ์—”๋“œ API๋ฅผ ํ˜ธ์ถœํ•˜๊ณ  ๋ฐ์ดํ„ฐ ์ฒ˜๋ฆฌํ•˜๋Š” ๋ฐฉ๋ฒ• ํ•™์Šต

ํ•™์Šต ์ž๋ฃŒ ์ถ”์ฒœ:


๐Ÿšฉ Week 3-4: Back-End ๊ธฐ์ดˆ (FastAPI + Python)

  1. Python ๊ธฐ์ดˆ ๋ณต์Šต (ํ•„์š” ์‹œ)

    • ๋น„๋™๊ธฐ ํ”„๋กœ๊ทธ๋ž˜๋ฐ(async/await), ํƒ€์ž… ํžŒํŠธ
  2. FastAPI ๊ธฐ๋ณธ ๊ฐœ๋…

    • FastAPI ํ”„๋กœ์ ํŠธ ํ™˜๊ฒฝ ์„ค์ • (venv, requirements.txt)
    • ๊ธฐ๋ณธ API ์ž‘์„ฑ๋ฒ•(GET, POST, PUT, DELETE)
    • Pydantic์„ ์ด์šฉํ•œ ๋ฐ์ดํ„ฐ ์œ ํšจ์„ฑ ๊ฒ€์ฆ ๋ฐ ์Šคํ‚ค๋งˆ ์ž‘์„ฑ
  3. FastAPI์™€ ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค ์—ฐ๋™(SQLAlchemy)

    • ORM ๊ฐœ๋… ๋ฐ CRUD ์ž‘์—… ์ฒ˜๋ฆฌ
    • ๋น„๋™๊ธฐ DB ์ฒ˜๋ฆฌ(asyncpg, SQLAlchemy-async)
  4. Swagger(OpenAPI)๋ฅผ ์ด์šฉํ•œ ์ž๋™ API ๋ฌธ์„œํ™”

ํ•™์Šต ์ž๋ฃŒ ์ถ”์ฒœ:

  • FastAPI ๊ณต์‹๋ฌธ์„œ
  • FastAPI Tutorial - ๊ณต์‹๋ฌธ์„œ ํŠœํ† ๋ฆฌ์–ผ
  • SQLAlchemy ๊ณต์‹ ๋ฌธ์„œ

๐Ÿšฉ Week 5: PostgreSQL ๊ธฐ์ดˆ ๋ฐ ์‹ฌํ™”

  1. PostgreSQL ์„ค์น˜ ๋ฐ ํ™˜๊ฒฝ ๊ตฌ์„ฑ

    • ๋กœ์ปฌ ํ™˜๊ฒฝ์—์„œ DB ์ƒ์„ฑ ๋ฐ ๊ด€๋ฆฌ (pgAdmin ๋˜๋Š” DBeaver)
  2. SQL ๊ธฐ์ดˆ ํ•™์Šต

    • ๊ธฐ๋ณธ ์ฟผ๋ฆฌ(SELECT, INSERT, UPDATE, DELETE), JOIN ์—ฐ์‚ฐ ์ดํ•ด
  3. ๊ณ ๊ธ‰ ๊ธฐ๋Šฅ

    • JSONB, ๋ถ€๋ถ„ ์ธ๋ฑ์Šค, ํŠธ๋žœ์žญ์…˜, ์ธ๋ฑ์Šค ์ตœ์ ํ™” ๋ฐฉ๋ฒ• ๋“ฑ
  4. FastAPI์™€ PostgreSQL ํ†ตํ•ฉ ์‹ค์Šต

    • ๋ฐ์ดํ„ฐ ๋ชจ๋ธ๋ง ์‹ค์Šต (๊ด€๊ณ„ํ˜• ๋ชจ๋ธ ์„ค๊ณ„)

ํ•™์Šต ์ž๋ฃŒ ์ถ”์ฒœ:


๐Ÿšฉ Week 6: Front-End & Back-End ํ†ตํ•ฉ ์‹ค์Šต

  1. FastAPI-React ์ „์ฒด ๊ตฌ์กฐ ์—ฐ๊ฒฐ ์‹ค์Šต

    • ์‹ค์ œ ์•ฑ์˜ ๊ตฌ์กฐ์ฒ˜๋Ÿผ API ์—ฐ๋™ ๋ฐ ํ†ตํ•ฉ ํ”„๋กœ์ ํŠธ ์ œ์ž‘
  2. JWT ๊ธฐ๋ฐ˜ ์ธ์ฆ ์ฒ˜๋ฆฌ

    • ๋กœ๊ทธ์ธ/ํšŒ์›๊ฐ€์ž… ๊ตฌํ˜„ ๋ฐ ๊ด€๋ฆฌ ๋ฐฉ๋ฒ• ํ•™์Šต
  3. API ์—๋Ÿฌ์ฒ˜๋ฆฌ ๋ฐ ์˜ˆ์™ธ์ฒ˜๋ฆฌ

    • ์˜ˆ์™ธ ์ฒ˜๋ฆฌ ๋กœ์ง ์ž‘์„ฑ ๋ฐ ์ƒํƒœ ์ฝ”๋“œ ๊ด€๋ฆฌ ๋ฐฉ๋ฒ•

์ถ”์ฒœ ์‹ค์Šต ํ”„๋กœ์ ํŠธ:

  • Todo ๋ฆฌ์ŠคํŠธ ์•ฑ (CRUD, ์ธ์ฆ, DB ํ™œ์šฉ ์‹ค์Šต์— ์ข‹์Œ)
  • ๊ฐ„๋‹จํ•œ ๊ฒŒ์‹œํŒ ์•ฑ ์ œ์ž‘

๐Ÿšฉ Week 7: ๋ฐฐํฌ ๋ฐ CI/CD ํ™˜๊ฒฝ ๊ตฌ์„ฑ

  1. AWS Lightsail ๊ธฐ๋ฐ˜ ํ™˜๊ฒฝ ์„ค์ •

    • ์„œ๋ฒ„ ์„ค์ • (Ubuntu ์„œ๋ฒ„ ํ™˜๊ฒฝ ๊ตฌ์ถ•)
    • Nginx ๋ฆฌ๋ฒ„์Šค ํ”„๋ก์‹œ ์„ค์ • ๋ฐ HTTPS ์ ์šฉ (Certbot)
  2. Docker์™€ GitHub Actions๋ฅผ ์ด์šฉํ•œ CI/CD

    • Docker ์ปจํ…Œ์ด๋„ˆ ์ œ์ž‘
    • GitHub Actions๋กœ ์ž๋™ ๋ฐฐํฌ ์ฒ˜๋ฆฌ ์‹ค์Šต
  3. ํ™˜๊ฒฝ ๋ณ€์ˆ˜ ๊ด€๋ฆฌ ๋ฐ ๋ณด์•ˆ ๊ณ ๋ ค

ํ•™์Šต ์ž๋ฃŒ ์ถ”์ฒœ:


๐Ÿšฉ Week 8: ์‹ฌํ™” ๋ฐ ์ตœ์ ํ™”

  1. ์„ฑ๋Šฅ ๋ชจ๋‹ˆํ„ฐ๋ง ๋ฐ ์ตœ์ ํ™”

    • ๋ฐฑ์—”๋“œ API ์„ฑ๋Šฅ ์ตœ์ ํ™” (๋น„๋™๊ธฐ ์ฒ˜๋ฆฌ, ์บ์‹ฑ)
    • ํ”„๋ก ํŠธ์—”๋“œ ์ตœ์ ํ™” (์ฝ”๋“œ ์Šคํ”Œ๋ฆฌํŒ…, ์บ์‹ฑ ์ „๋žต ๋“ฑ)
  2. ํ…Œ์ŠคํŠธ ์ฝ”๋“œ ์ž‘์„ฑ

    • React ํ…Œ์ŠคํŠธ(Jest, React Testing Library)
    • FastAPI ํ…Œ์ŠคํŠธ (Pytest)
  3. ํ™•์žฅ์„ฑ ๋ฐ ์•„ํ‚คํ…์ฒ˜ ์„ค๊ณ„ ์‹ค์Šต

    • REST API ์„ค๊ณ„์˜ ๊ณ ๊ธ‰ ์ฃผ์ œ (๋ฆฌ์†Œ์Šค ๊ตฌ์กฐ, ์—๋Ÿฌ ์ฒ˜๋ฆฌ)

๐Ÿ”ง ์ตœ์ข… ๋ชฉํ‘œ (ํ•™์Šต ํ›„ ์„ฑ๊ณผ๋ฌผ)

  • React + FastAPI + PostgreSQL์„ ํ™œ์šฉํ•œ ํ’€์Šคํƒ ์•ฑ ์ œ์ž‘
  • JWT ์ธ์ฆ๊ณผ RESTful API ๊ตฌํ˜„ ๋ฐ ๋ฐฐํฌ ๊ฒฝํ—˜
  • Docker ๋ฐ GitHub Actions๋ฅผ ์ด์šฉํ•œ CI/CD ๊ฒฝํ—˜

๐Ÿ“Œ ํ•™์Šต ์ฒดํฌ๋ฆฌ์ŠคํŠธ

์ฃผ์ฐจ ์ฃผ์š” ๋ชฉํ‘œ
1~2์ฃผ React, TypeScript ๊ธฐ์ดˆ ๋ฐ API ์—ฐ๊ฒฐ ์‹ค์Šต
3~4์ฃผ FastAPI ๊ธฐ์ดˆ ๋ฐ DB ์—ฐ๋™ ์‹ค์Šต
5์ฃผ PostgreSQL ๊ธฐ์ดˆ ๋ฐ ๋ฐ์ดํ„ฐ ๋ชจ๋ธ๋ง
6์ฃผ ํ”„๋ก ํŠธ-๋ฐฑ์—”๋“œ ํ†ตํ•ฉ ์•ฑ ๊ตฌํ˜„ (CRUD+์ธ์ฆ)
7์ฃผ AWS ๋ฐฐํฌ ๋ฐ Docker, CI/CD ๊ตฌ์„ฑ
8์ฃผ ์„ฑ๋Šฅ ์ตœ์ ํ™” ๋ฐ ํ…Œ์ŠคํŠธ ์ฝ”๋“œ ์ž‘์„ฑ

About

No description, website, or topics provided.

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published