Blog
About Me
citeFredโs Blog
/
Blog Post
Blog
About Me
citeFredโs Blog
/
Blog Post
Share
Blog
About Me
โ๐ป
Blog Post
Post Gallery
Post List
Table
Search
6์ผ์ฐจ: ์ต์ข ์์คํ ํตํฉ ๋ฐ ๋ฐ๋ชจ (FastAPI)
๋ถ์ :
๋ฅ๋ณด์ด์ค/๋ฅํ์ดํฌ ํ์ง ๋ชจ๋ธ์ ํ์ฉํ
์ถ๋ก API ์๋ฒ
๊ตฌ์ถ ๋ฐ
์ ์ฒด ํตํฉ
Agenda: 6์ผ์ฐจ ํ์ต ๋ชฉํ ๋ฐ ์ผ์ (8H)
โข
๋ชจ๋ 1 (์ด๋ก /์ค์ต):
FastAPI ์๋ฒ ํ๊ฒฝ ์ค์ ๋ฐ ํ๋ก์ ํธ ๊ตฌ์กฐ ๊ตฌ์ฑ
โข
๋ชจ๋ 2 (์ค์ต):
๋ฅ๋ณด์ด์ค ํ์ง API ๊ฐ๋ฐ (FastAPI)
โข
๋ชจ๋ 3 (์ค์ต):
๋ฅํ์ดํฌ ์ด๋ฏธ์ง ํ์ง API ๊ฐ๋ฐ (FastAPI)
โข
๋ชจ๋ 4 (์ค์ต):
์ ์ฒด ํ๋ก ํธ/๋ฐฑ์๋ ์์คํ ํตํฉ ๋ฐ ์ฐ๊ฒฐ
โข
๋ชจ๋ 5 (์ต์ข ):
Docker ๊ฐ์ ์ปจํ ์ด๋ ๊ธฐ์ ์ ํ์ฉํ ํตํฉ ์ ํ๋ฆฌ์ผ์ด์ ๊ตฌ์ถ ํ๋ก์ ํธ ๋ฐ๋ชจ ๋ฐ Q&A
๋ชจ๋ 1: FastAPI ์๋ฒ ํ๊ฒฝ ์ค์ ๋ฐ ํ๋ก์ ํธ ๊ตฌ์กฐ
1. ํ๊ฒฝ ์ค์ ๋ฐ ๋ผ์ด๋ธ๋ฌ๋ฆฌ ์ค์น
โข
๋ชฉํ:
FastAPI ์น ์๋ฒ ํ๊ฒฝ์ ๊ตฌ์ถํ๊ณ , TensorFlow ๋ชจ๋ธ์ ๋ก๋ํ ์ ์๋๋ก ์ค๋น.
โข
ํ์ ๋ผ์ด๋ธ๋ฌ๋ฆฌ:
fastapi
,
uvicorn
,
tensorflow
,
librosa
,
opencv-python
.
[AI๋ฅํ์ดํฌ] 6.
๋ฅํ์ดํฌ ํ์ง ํ๋ก์ ํธ(2) - Inference API + Frontend + Backend โ Docker ์ ํ๋ฆฌ์ผ์ด์ ํตํฉ
5์ผ์ฐจ: ๋ฅํ์ดํฌ ํ์ง ์ฑ ๊ฐ๋ฐ(1) ํ๋ก์ ํธ
๋ถ์ :
๋ฐ์ดํฐ ์ ์ฒ๋ฆฌ, ๋ฅ๋ณด์ด์ค ๋ฐ ๋ฅํ์ดํฌ ์ด๋ฏธ์ง ๋ชจ๋ธ ๋ถ์๊ณผ ํ๋ จ
Agenda: 5์ผ์ฐจ ํ์ต ๋ชฉํ ๋ฐ ์ผ์
โข
๋ฐ์ดํฐ ์ ์ฒ๋ฆฌ:
๊ฐ๋ ์ดํด ๋ฐ ๋ฅํ์ดํฌ ํ์ง๋ฅผ ์ํ ๊ธฐ์ด ๋ฐ์ดํฐ ํ๋ณด.
โข
๋ฅ๋ณด์ด์ค ๋ชจ๋ธ ๋ถ์:
์์ฑ ํน์ง ํ์ต ๋ฐ ์ง์ ํ๋ณ ๋ฉ์ปค๋์ฆ ์ดํด.
โข
๋ฅํ์ดํฌ ์ด๋ฏธ์ง ๋ชจ๋ธ ํ์:
์ด๋ฏธ์ง ๋ชจ๋ธ ์ํคํ ์ฒ ๋น๊ต ๋ฐ ํ๋ก์ ํธ ์ ์ฉ ๋ชจ๋ธ ์ ์ .
โข
์ค์ต:
Colab ํ๊ฒฝ์์ ์ ์ฒ๋ฆฌ, ๋ชจ๋ธ ๊ตฌ์ถ, ํ๋ จ ๋ฐ ์ฑ๋ฅ ํ๊ฐ ์ํ.
๋ชจ๋ 1: ๋ฐ์ดํฐ ์ ์ฒ๋ฆฌ ๋ฐ ๊ฐ์
1. ๋ฐ์ดํฐ ์ ์ฒ๋ฆฌ
[AI๋ฅํ์ดํฌ] 5.
๋ฅํ์ดํฌ ํ์ง ํ๋ก์ ํธ(1) - AI ๋ชจ๋ธ ํ์ต
4์ผ์ฐจ: ๋ฐฑ์๋ ํ๋ก๊ทธ๋๋ฐ (NestJS)
๋ถ์ :
Node.js, TypeScript, NestJS ํต์ฌ ๊ฐ๋ ๊ณผ RESTful API ์๋ฒ ๊ตฌ์ถ
Agenda: 4์ผ์ฐจ ํ์ต ๋ชฉํ ๋ฐ ์ผ์
1.
NestJS ์ด๋ก (1):
ํต์ฌ ๊ฐ๋ , ์ํคํ ์ฒ (DI, Module)
2.
NestJS ์ค์ต (1):
Nest CLI ํ๊ฒฝ ๊ตฌ์ถ ๋ฐ ํ๋ก์ ํธ ์์ฑ (Resource)
3.
NestJS ์ด๋ก (2):
๋ฐ์ดํฐ๋ฒ ์ด์ค์ ORM (TypeORM)
4.
NestJS ์ค์ต (2):
DB ์ฐ๋, Entity/Repository, ์๋น์ค ๋ก์ง ๊ตฌํ
5.
NestJS ์ด๋ก (3):
REST API ๋ฆฌํฉํ ๋ง (DTO, Pipe)
6.
์์ฝ ๋ฐ 5์ผ์ฐจ ์๊ณ
(FastAPI AI ์ฐ๋ ์ค๋น)
๋ชจ๋ 1: NestJS ํต์ฌ ๊ฐ๋ (์ด๋ก )
1. Why NestJS?
โข
Problem:
Node.js
์ ์์ ๋. (Express, Koa)
[AI๋ฅํ์ดํฌ] 4.
๋ฐฑ์๋ ํ๋ก๊ทธ๋๋ฐ ์ธ์ด ๋ฐ ๊ฐ๋ฐ ํ๊ฒฝ ๊ตฌ์ถ
(
NestJS
)
3์ผ์ฐจ - ํ๋ก ํธ์๋ ๊ฐ๋ฐ: React ๊ธฐ์ด
๋ถ์ :
JavaScript ํต์ฌ ๋ฌธ๋ฒ, React ์ปดํฌ๋ํธ, Hooks๋ฅผ ํ์ฉํ ๋ฅํ์ดํฌ ํ์ง ์น UI ๊ตฌํ
Agenda: 3์ผ์ฐจ ํ์ต ๋ชฉํ ๋ฐ ์ผ์
1.
JavaScript Core (์ด๋ก ):
ES6+ ์ฃผ์ ๋ฌธ๋ฒ, ๋น๋๊ธฐ ์ฒ๋ฆฌ (Promise, async/await).
2.
React Core (์ด๋ก ):
SPA, JSX, Component, Props, State ๊ฐ๋ .
3.
์ค์ต 1 (ํ๊ฒฝ ๊ตฌ์ถ):
React ๊ฐ๋ฐ ํ๊ฒฝ ๊ตฌ์ถ (Vite), ๊ธฐ๋ณธ ์ปดํฌ๋ํธ ๋ฐ Props.
4.
์ค์ต 2 (์ํ ๊ด๋ฆฌ):
React Hooks (
useState
), ์ด๋ฒคํธ ํธ๋ค๋ง.
5.
์ค์ต 3 (UI/์๋ช ์ฃผ๊ธฐ/๋ผ์ฐํ ):
HTML/CSS in JSX,
useEffect
, React Router.
๋ชจ๋ 1: JavaScript Core (์ด๋ก )
1. Why JavaScript?
โข
์น ๋ธ๋ผ์ฐ์ ๋ฅผ ์ ์ดํ๋ ์ ์ผํ ํ๋ก๊ทธ๋๋ฐ ์ธ์ด.
โข
React, NestJS(Node.js) ๋ชจ๋ JavaScript(TypeScript) ๊ธฐ๋ฐ์ผ๋ก ๋์ํจ.
[AI๋ฅํ์ดํฌ] 3. ํ๋ก ํธ์๋ ํ๋ก๊ทธ๋๋ฐ ์ธ์ด ๋ฐ ๊ฐ๋ฐ ํ๊ฒฝ ๊ตฌ์ถ (React)
2์ผ์ฐจ: ์ค๋งํธ์ํฐ ์ฐ์ ๋ํฅ ๋ฐ ๋ฅํ์ดํฌ ํ์ง ํ๋ก์ ํธ ์ค๊ณ
๋ถ์ :
๋ฅํ์ดํฌ ํ์ง ๊ธฐ์ ์ ์ค๋งํธ์ํฐ ์ ์ฉ ๋ฐฉ์ ๋ชจ์ ๋ฐ ์น ์๋น์ค ๊ธฐํ
2์ผ์ฐจ ํ์ต ๋ชฉํ ๋ฐ ์ผ์
1.
์ด๋ก (2H):
์ค๋งํธ์ํฐ ์ฐ์ ๋ํฅ ๋ฐ ๋ฅํ์ดํฌ ํ์ง ๊ธฐ์ ์ ์ฉ ๋ฐฉ์
2.
์ค์ต (6H):
๋ฅํ์ดํฌ ํ์ง ์น ์ ํ๋ฆฌ์ผ์ด์ ํ๋ก์ ํธ ์ค๊ณ
3.
๋ฐํ ๋ฐ ํผ๋๋ฐฑ:
ํ๋ณ ์ค๊ณ ๋ด์ฉ ๋ฐํ
๋ชจ๋ 1: ์ค๋งํธ์ํฐ ์ฐ์ ๊ณผ AI
1. ์ค๋งํธ์ํฐ ์ฐ์ ๋ํฅ
โข
์ ์:
ICT ๊ธฐ์ ์ ๋์ ๊ณต๊ฐ์ ์ ์ฉ, ๋์ ์์์ ํจ์จ์ ์ผ๋ก ํ์ฉํจ.
โข
๊ตญ๋ด์ธ ์ฌ๋ก ๋ถ์ (HWP ๊ธฐ๋ฐ)
โข
ํต์ฌ ๊ธฐ์ :
IoT, ๋น ๋ฐ์ดํฐ, AI, ๊ทธ๋ฆฌ๊ณ ๋์งํธ ํธ์.
[AI๋ฅํ์ดํฌ] ๏ผ.
์ค๋งํธ์ํฐ ์ฐ์ ๊ณผ AI
1์ผ์ฐจ: AI ํ์ ๊ณผ ์ค๋งํธ์ํฐ: ๋ฅํ์ดํฌ ํ์ง ์ฒซ๊ฑธ์
๋ถ์ :
AI ๊ธฐ๋ณธ๊ธฐ, ์ค๋งํธ์ํฐ ์ ์ฉ, ๊ทธ๋ฆฌ๊ณ ๋ฅํ์ดํฌ ๋ฌธ์ ์ ์ดํด
Agenda: 1์ผ์ฐจ ํ์ต ๋ชฉํ ๋ฐ ์ผ์
1.
AI/DL ์ด๋ก :
AI, ๋จธ์ ๋ฌ๋, ๋ฅ๋ฌ๋ ๊ฐ๋ ๋ฐ ์ฐจ์ด์ ์ดํด
2.
์ค์ต 1 (ํ๊ฒฝ):
Colab ๋ฐ Python ๋ฐ์ดํฐ ๋ถ์ ๋๊ตฌ (Numpy/Pandas) ํ์ฉ
3.
์ค๋งํธ์ํฐ ์ด๋ก :
์ค๋งํธ์ํฐ ๊ฐ๋ , AI ํ์ฉ ๋ฐฉ์
4.
๋ฅํ์ดํฌ ์ด๋ก :
๋ฅํ์ดํฌ ๊ธฐ์ ์๋ฆฌ ๋ฐ ์ฌํ์ ๋ฌธ์ ์ ์ธ์ง
5.
์ค์ต 2 (๋ถ์):
๋ฅํ์ดํฌ ์ํ ๋ฐ์ดํฐ ๋ถ์ ๋ฐ ํ ๋ก
๋ชจ๋ 1: AI ๊ฐ์ ๋ฐ ๋ฅ๋ฌ๋ (์ด๋ก )
1. ์ธ๊ณต์ง๋ฅ(AI)์ ์ ์
[AI๋ฅํ์ดํฌ] 1. AI ๋ฐ ์ค๋งํธ์ํฐ
1,2,3 ์ฅ์์์ ์ค์ต๊ณผ ์ค๋ช ์ ๋น์ ๊ณต, ์น๊ฐ๋ฐ ๊ฒฝํ์ด ์๋ ๋์์ ์ํด ์๋ดํ์ง๋ง, ์ด ๊ณผ์ ๋ ๋ค์ ์ด๋ ต๊ฒ ๋๊ปด์ง ์ ์๋ ์์ด๋ณด๋ค์ ์ํ AI ํ์ฉ ๋ฐฉ๋ฒ์ด๋ค.
1. AI์๊ฒ ๊ตฌ์ฑ ๋ง๋ค๋๋ก ํ๊ธฐ
โข
Framer ํํ์ด์ง์์
Start with AI
์ ํ
โข
ํ๋ก์ ํธ ์๊ฐ ํ์ด์ง๋ฏ๋ก
Landing Page
์ ํ ๋ฐ
์ ์ก
โข
์์์ ์๋ํฐ๊ฐ ์ด๋ฆฌ๋ฉด์, ๊ธฐ๋ณธ ๋ ์ด์์์ AI๊ฐ ์์ฑํ๋ค.
โข
์ผ์ชฝ Ask Framerโฆ ์์ ์ํ๋ ๊ฒ์ ์ ๋ ฅํด๋ณด๋ ค๊ณ ํ๋ค.
โข
์ค์๊ฐ์ผ๋ก AI๊ฐ ํ์ด์ง๋ฅผ ๋ณ๊ฒฝํ๊ธฐ ์์ํ๋ค.
โข
๊ฐ๋จํ ๋ ์ด์์์ด๋ ์ค๋ช ๋ฑ์ ํตํด ๊ธฐ๋ณธ ๋ ์ด์์ ์ ๋๋ฅผ ๋น ๋ฅด๊ฒ ์์ฑํด์ฃผ๋ ๋์์ ๋ฐ์ ์ ์๋ค.
โข
AI๋ ์ง์ํ๋๋ก ์์ง์ด๊ธฐ ๋๋ฌธ์ ๋ช ๋ น์ ๋ณด๋ค ๋ช ํํ๊ฒ ์์ธํ ํ ์๋ก ์ข์ ๊ฒฐ๊ณผ๋ฅผ ๋ง๋ค์ด์ค๋ค.
โข
ํ๋ก์ ํธ๋ฅผ ํ๋ณดํ๊ณ ์์, ์ด๋ฏธ์ง ๋ฑ์ ์ ๋ก๋ํ๋ ๋๋ฉํ์ด์ง ์ ๋๋ ์คํ๋ ค ๋น ๋ฅด๊ฒ ๊ตฌ์ฑ ํ ์ ์์
2. ํจ๊ณผ ๋ฑ ์์ ํด๋ณด๊ธฐ
โข
์ํ๋ ์ด๋ฏธ์ง ๋ฑ์ ๋ฃ๊ธฐ๋ง ํด๋ ๋๋ง์ ๊ฐ๋จํ ํ๋ก์ ํธ ์๊ฐ ํํ์ด์ง๊ฐ ๊ตฌ์ฑ๋๋ค.
โข
๊ฐ ์ด๋ฏธ์ง๋ ํ ์คํธ, ๋ ์ด์์ ํ๋ ์์ด ๋ํ๋๊ฑฐ๋ ํ๋๋๋ ๊ฐ์ข ํจ๊ณผ๋ฅผ ์ถ๊ฐํด๋ณด๋ฉด์ ๊พธ๋ฐ ์๋ ์๋ค.
[Framer] 4. AI Framer๋ฅผ ํ์ฉ ์น์ฌ์ดํธ์ ๋ง๋ค๊ธฐ(์ด์ฌ์์ถ์ฒ)
1. ์น ์๋น์ค์ ๋์์ ๋ํด ์ดํดํ๊ธฐ
โข
ํํ์ด์ง๋ ์ฐ๋ฆฌ๊ฐ ๋ณด์ฌ์ฃผ๋ ๊ฒ ๋ง๊ณ ๋ ํด๋ฆญํด์ ๋๋ ์๋ ๋์ํ๋ ๊ฒ๋ค์ด ํฌํจ๋๋ค. ์ด ํํ์ด์ง์ ์์๋ก๋ ์๋ ์ฌ์ง๊ณผ ๊ฐ๋ค.
โข
์ฐ๋ฆฌ๋ ๊ฐ์ ๋ก ์ฐ๋ฆฌ ํ๋ก์ ํธ ์ด๋ฏธ์ง๋ฅผ ๋ฃ๊ธดํ์ง๋ง, ์ ๋ ๊ฒ ํ๋ก์ ํธ ๋ฉ๋ด๋ก ์ด๋ํ๋
์ฐ๋ฆฌ๊ฐ ์์ ํ์ง ๋ชปํ๋ ๋ถ๋ถ๋ค์ด ์๋ ๊ฒ์ ํ์ธ
ํ๋ค.
โข
์ค์ ํํ์ด์ง๋ค์ ๋์์ ๋จ์ํ ์ด๋ฏธ์ง๋ฅผ ๊ต์ฒดํ๋ ์ ๋๋ก๋ ํ๊ณ๊ฐ ์๊ณ ,
โข
ํ์ง๋ง
Framer์์๋ ์ด๋ฌํ ๋ณต์กํจ์ ๊ฐ๋จํ ํ์ด์ง ๊ตฌ์ฑ์ ํตํด ํด๊ฒฐ
ํ ์ ์๋ค.
2. ํํ์ด์ง์ ์ฝํ ์ธ ๋ฅผ ๋ณ๊ฒฝํด๋ณด๊ธฐ
โข
์ฐ๋ฆฌ๋ ๋จ์ํ ์ด๋ฏธ์ง๋ฅผ ๊ต์ฒดํด๋ณด๊ธฐ๋ ํ์ง๋ง, ํ๋ก์ ํธ๋ ์ฌ๋ผ์ด๋ ์ด๋ฏธ์ง ์ฌ์ง์ ๋๋ฅด๋ฉด ๋ํ๋๋ ์์ธ ์ ๋ณด๋ ๋ฃ์ด์ฃผ๊ณ ์ถ์ด์ก๋ค.
โข
Framer ์๋ํฐ๋ฅผ ์ผ๊ณ ์ผ์ชฝ ๋ฉ๋ด๋ฅผ ์ดํด๋ณธ๋ค.
โข
Edit in CMS๋ฅผ ๋ค์ด๊ฐ๋ณด๋ฉด ๋ค์์ฒ๋ผ ๋ฑ๋ก๋ ํ๋ก์ ํธ๋ค์ด ์ค์ ๋ก ๋ณด์ด๊ฒ ๋๋ค.
โข
์ด๋ ์ฐ๋ฆฌ๊ฐ ์ฒ์์ ์ด๋ฏธ์ง๋ฅผ ๋จ์ํ ๋ฐ๊พธ๋๊ฒ ๋ณด๋ค๋ ์ค์ ๋ก ์ด ํ๋ก์ ํธ ๊ด๋ฆฌ ๋ถ๋ถ์ ๋ค์ด์์ ์ด๋ฏธ์ง๋ฅผ ๊ต์ฒดํ๊ณ ์ค๋ช ์ ์ ๋ ฅํ๋ฉด
โข
ํํ์ด์ง์์ ๋์ผํ๊ฒ ๋ณด์ผ ๊ฒ์ด๋ค.
[Framer] 3. Framer๋ฅผ ํ์ฉ ์น์ฌ์ดํธ์ ์ฝํ ์ธ ๋ฅผ ๋ฐ๊ฟ๋ณด๊ธฐ ์ฌํ(์ฝํ ์ธ ๊ด๋ฆฌ์์คํ CMS?)
1. Framer ํ์๊ฐ์
โข
ํ์๊ฐ์ ํ๊ธฐ
โข
๊ตฌ๊ธ๋ก ๊ฐํธ ํ์๊ฐ์ ํ๊ธฐ
โข
๊ตฌ๊ธ ํ์ ๊ฐ์ ์งํ, ์๋ง๋ ์ ๋ณด ์ ๋ ฅํ์ฌ ํ์ ๊ฐ์ ์๋ฃํ๊ธฐ
โข
ํ์๊ฐ์ ํ ๋ํ๋๋ ๋ฉ์ธ ์๋ํฐ ํ์ด์ง
2. ํ ๋ง ์ฐพ๊ธฐ
โข
์๋ํฐ์์ ์ง์ ํ ํ๋ฆฟ์ ๋์์ธํ๊ณ ๋ ์ด์์์ ๊ตฌ์ฑํ๊ฑฐ๋ Figma ๋ฑ์ ์น๋์์ธ ํด์ ํตํด ๋์์ธํ ๊ฒ์ ์ฝ์ ํ ์๋ ์๋ค.
โข
ํ์ง๋ง ์น ๋์์ธ์ ์ต์ํ์ง ์์ ์ฌ๋๋ค์ ์ํด์๋ ์ ๋ฌธ๊ฐ๋ค์ด ํ์ ์ก์๋ ์ ์ฉํ ํ ํ๋ฆฟ์ ํ์ฉํ๋ ๊ฒ์ผ๋ก ์๊ฐ์ ์ ์ฝ ํ ์ ์๋ค.
โข
์๋ํฐ ์ฐฝ์์ ๋ธ๋ผ์ฐ์ ์์ ์๋ ๋งํฌ๋ก ์ ์
โข
ํ ํ๋ฆฟ๋ค์ ์ดํด๋ณด๊ธฐ ์ํด์ ์ ์ฒด ๋ชฉ๋ก์ ์ดํด๋ณด๊ธฐ
โข
โ๋ฌด๋ฃโ ํ ํ๋ฆฟ ๋ชจ์์ ์ดํด๋ณด๊ธฐ ๋ฐ ๊ณ ๋ฅด๊ธฐ
โข
์ํ๋ ํ ํ๋ฆฟ ์ ํ๊ณผ ๋ฏธ๋ฆฌ๋ณด๊ธฐ๋ฅผ ํตํด์ ํํ์ด์ง๊ฐ ์์ฑ๋ ๋ชจ์ต์ ๋ฏธ๋ฆฌ ์ฒดํ ํ ์ ์๋ค.
โข
ํด๋น ํ ํ๋ฆฟ ์ฌ์ฉ์ ์ํ๋ค๋ฉด, Use For Free ์ ํ
[Framer] 2. Framer๋ฅผ ํ์ฉ ์น์ฌ์ดํธ ๋์์ธ๊ณผ ๋ฐฐํฌํด๋ณด๊ธฐ
1. Framer๋ ๋ฌด์์ธ๊ฐ?
Framer: Create a professional website, free. No code website builder loved by designers.
Framer(ํ๋ ์ด๋จธ)๋ ๋์์ด๋๊ฐ ์ฝ๋ฉ ์์ด๋ ์ค์ ์๋ํ๋ ์ ๋ฌธ๊ฐ ์์ค์ ์น์ฌ์ดํธ๋ฅผ ๋ง๋ค ์ ์๋๋ก ํ๋
ํ์ ์ ์ธ ์น ๋น๋ฉ ํ๋ซํผ
์ ๋๋ค.
๊ณผ๊ฑฐ์๋ ๋์์ด๋๊ฐ ๋ง๋ ์์์ ๊ฐ๋ฐ์๊ฐ ์ฝ๋๋ก ๊ตฌํํ๋ ๋ฐฉ์์ด ์ผ๋ฐ์ ์ด์์ง๋ง, Framer๋
๋์์ธ๊ณผ ๊ฐ๋ฐ ์ฌ์ด์ ๊ฐ๊ทน์ ํ๋ฌผ์ด
๋์์ธ ํด์์ ์์ ํ๋ฏ ์น์ฌ์ดํธ๋ฅผ ๋ง๋ค๊ณ ํด๋ฆญ ํ ๋ฒ์ผ๋ก ๋ฐ๋ก ์ธํฐ๋ท์ ๊ฒ์(๋ฐฐํฌ)ํ ์ ์๊ฒ ํด์ค๋๋ค.
์ฝ๊ฒ ๋งํด, "๋์์ธ ํด(Figma ๋ฑ)์ ์์ ๋ + ์น ๋น๋(Wix, Squarespace ๋ฑ)์ ํธ๋ฆฌํจ + ์ค์ ์น ๊ธฐ์ (React)์ ๊ฐ๋ ฅํจ"์ ํฉ์ณ๋์ ๋๊ตฌ๋ผ๊ณ ์ดํดํ์๋ฉด ๋ฉ๋๋ค.
2. Framer์ ํต์ฌ ํน์ง
โข
์น์ฌ์ดํธ ๋น๋:
Figma๋ Sketch ๊ฐ์ ๋์์ธ ํด๊ณผ ์ฌ์ฉ๋ฒ์ด ๋งค์ฐ ๋น์ทํ์ฌ ๋์์ด๋๊ฐ ์ฝ๊ฒ ์ ์ํ๊ณ ์น์ฌ์ดํธ๋ฅผ ์ง์ ๋ง๋ค ์ ์์ต๋๋ค. ์ฝ๋๋ฅผ ์ ํ ๋ชฐ๋ผ๋ ๋๋๊ทธ ์ค ๋๋กญ ๋ฐฉ์์ผ๋ก ์ฌ์ดํธ๋ฅผ ๊ตฌ์ถํ ์ ์์ต๋๋ค.
โข
ํธ์คํ ํฌํจ:
Framer๋ก ๋ง๋ ๋ชจ๋ ์ฌ์ดํธ๋ Framer์์ ์ง์ ํธ์คํ ์ ์ ๊ณตํฉ๋๋ค. ๋ฐ๋ผ์ ๋ณ๋์ ํธ์คํ ์๋น์ค๋ฅผ ๊ณ์ฝํ๊ฑฐ๋ ์๋ฒ๋ฅผ ์ค์ ํ ํ์๊ฐ ์์ต๋๋ค.
โข
๋ฐ์ํ ๋์์ธ:
๋ฐ์คํฌํฑ, ํ๋ธ๋ฆฟ, ๋ชจ๋ฐ์ผ ๋ฑ ๋ค์ํ ๊ธฐ๊ธฐ ํ๊ฒฝ์ ๋ง์ถฐ ์๋์ผ๋ก ์กฐ์ ๋๋ ๋ฐ์ํ ์น์ฌ์ดํธ๋ฅผ ์์ฝ๊ฒ ์ ์ํ ์ ์์ต๋๋ค.
โข
CMS ๊ธฐ๋ฅ:
๋ธ๋ก๊ทธ ๊ฒ์๋ฌผ, ํฌํธํด๋ฆฌ์ค ๋ฑ ๋์ ์ธ ์ฝํ ์ธ ๋ฅผ ๊ด๋ฆฌํ ์ ์๋ CMS(์ฝํ ์ธ ๊ด๋ฆฌ ์์คํ ) ๊ธฐ๋ฅ๋ ๋ด์ฅ๋์ด ์์ต๋๋ค.
[Framer] 1. ์ด๋ณด, ๋น์ ๊ณต์๋ฅผ ์ํ Framer๋ก ํํ์ด์ง ๋ง๋ค๊ธฐ ์๊ฐ
Python์ด๋ ๋ฌด์์ธ๊ฐ?
Python(ํ์ด์ฌ)์ 1991๋ ๋ค๋๋๋์ ํ๋ก๊ทธ๋๋จธ
๊ท๋ ๋ฐ ๋ก์ฌ(Guido van Rossum)
์ด ๊ฐ๋ฐํ ๊ณ ๊ธ ํ๋ก๊ทธ๋๋ฐ ์ธ์ด๋ค. 'Monty Python's Flying Circus'๋ผ๋ ์๊ตญ์ ์ฝ๋ฏธ๋ ํ๋ก๊ทธ๋จ์์ ์ด๋ฆ์ ๋ฐ์จ Python์
"๊ฐ๋จํ๊ณ ์ฝ๊ธฐ ์ฌ์ด"
์ฒ ํ์ ๋ฐํ์ผ๋ก ์ค๊ณ๋์๋ค.
Python์ ํต์ฌ ํน์ง
1. ๊ฐ๋จํ๊ณ ์ง๊ด์ ์ธ ๋ฌธ๋ฒ
Python์ ๊ฐ์ฅ ํฐ ์ฅ์ ์
์ฌ๋์ด ์ฝ๊ธฐ ์ฌ์ด ๋ฌธ๋ฒ
์ด๋ค. ๋ค๋ฅธ ํ๋ก๊ทธ๋๋ฐ ์ธ์ด์ ๋นํด ์ฝ๋๊ฐ ์์ด์ ๋น์ทํ์ฌ ์ด๋ณด์๋ ์ฝ๊ฒ ์ดํดํ ์ ์๋ค.
2. ์ธํฐํ๋ฆฌํฐ ์ธ์ด
Python์
์ธํฐํ๋ฆฌํฐ ์ธ์ด
๋ค. ์ด๋ ์ฝ๋๋ฅผ ํ ์ค์ฉ ์คํํ๋ฏ๋ก ์ฆ์ ๊ฒฐ๊ณผ๋ฅผ ํ์ธํ ์ ์์ด ํ์ต๊ณผ ๊ฐ๋ฐ์ ๋งค์ฐ ์ ๋ฆฌํ๋ค.
3. ํ๋ซํผ ๋ ๋ฆฝ์
"Write Once, Run Anywhere"
- Python์ผ๋ก ์์ฑํ ์ฝ๋๋ Windows, macOS, Linux ๋ฑ ์ด๋ค ์ด์์ฒด์ ์์๋ ๋์ผํ๊ฒ ์คํ๋๋ค.
4. ํ๋ถํ ๋ผ์ด๋ธ๋ฌ๋ฆฌ
Python์
ํ์ค ๋ผ์ด๋ธ๋ฌ๋ฆฌ
์
์๋ํํฐ ๋ผ์ด๋ธ๋ฌ๋ฆฌ
๊ฐ ๋งค์ฐ ํ๋ถํ๋ค. ์น ๊ฐ๋ฐ, ๋ฐ์ดํฐ ๋ถ์, ์ธ๊ณต์ง๋ฅ ๋ฑ ๋ค์ํ ๋ถ์ผ์ ๋ผ์ด๋ธ๋ฌ๋ฆฌ๋ฅผ ์ฝ๊ฒ ์ฌ์ฉํ ์ ์๋ค.
Python์ ์ฃผ์ ํ์ฉ ๋ถ์ผ
[Python] Python์ด๋ ๋ฌด์์ธ๊ฐ? - ํ๋ก๊ทธ๋๋ฐ ์ ๋ฌธ์๋ฅผ ์ํ
ํ๋ก๊ทธ๋๋ฐ์ ์ํ Python ๋ฌธ๋ฒ ๊ธฐ์ด
Python Tutorials
[Python] 0. Python ๋ค์ด๊ฐ๊ธฐ
์์ ํ์ ๋ถ๋ถ
AuthModule
auth.module.ts
AuthModule ํ์ธ ํ์
auth.module.ts
TypeError: Cannot read properties of undefined (reading 'challenge')
ํด๋ผ์ด์ธํธ ์ฝ์ ์์ ๋ก๊ทธ์ธ(OAuth)์ ๋ฐฑ์๋ ์๋ฒ ์ค์ฌ ์ธ์ฆ๋ฐฉ์์ผ๋ก ๋ณ๊ฒฝ
โข
๋ณด์ ๋ฐ ๊ด๋ก์ ํ๋ก๋์ ํ๊ฒฝ์์๋ Credential ํ๋ ๋ฐ ๊ด๋ฆฌ๋ฅผ ๋ฐฑ์๋์์ ์ฒ๋ฆฌํ๋ ๊ฒ์ด ์ผ๋ฐ์ ์ธ ๊ด๋ก์ด์ ๋ ์์ ํ ๋ฐฉ์
โข
๋ฐ๋ผ์ ์ด์ ํด๋ผ์ด์ธํธ ์ฌ์ด๋๋ก Credential์ ์ ๋ฌํ๋ ์ฝ์ ๊ตฌํ์์ ๋ฐฑ์๋ ์ค์์ง์ค์ ๊ตฌํ์ผ๋ก ๋ณ๊ฒฝํ๊ณ ์ ํ๋ค.
1. ๋ฐฑ์๋์์์ Passport๋ฅผ ํตํ ๊ตฌ๊ธ ๋ก๊ทธ์ธ ์ ๋ต ๊ตฌ์ฑ
โข
๋ฐฑ์๋์ ๊ธฐ์กด JWT ํ์ฉ ์ธ์ฆ/์ธ๊ฐ ๊ตฌํ์ ๋ฐฉ์์ฒ๋ผ Passport๋ฅผ ํตํ Google Auth Strategy๋ฅผ ์ถ๊ฐ ๊ตฌ์ฑํ๋ ค๊ณ ํ๋ค.
1-1. Google Auth ๋ผ์ด๋ธ๋ฌ๋ฆฌ ์ค์น
โข
์๋ ๋ช ๋ น์ด๋ฅผ ํตํด Google ์ธ์ฆ ๋ชจ๋์ ์ค์นํ ์ ์๋ค. ์ด๋ ์นด์นด์ค ๋ก๊ทธ์ธ ์ฒ๋ผ ํด๋น ๋ชจ๋์ ์ด๋ฏธ ์ ์๋ ๋ด์ฅ ํจ์๋ค์ ํตํด ์ฝ๊ณ ๋น ๋ฅด๊ฒ ๊ตฌํ ํ ์ ์๋ค.
1-2. GoogleStrategy ์์ฑ
โข
๊ธฐ์กด ์ธ์ฆ์ ๋ต ํ์ผ์ด ๋ชจ์ฌ์๋ ๊ณณ์ ์๋ ์ฝ๋๋ฅผ ์์ฑํ๋ค.
[OAuth2.0] Google Social Login ๊ตฌํ - ๋ฐฑ์๋ ์ค์ ๊ด๋ฆฌ์ ๋ก์ง ๊ตฌํ
์์ ๋ก๊ทธ์ธ์ ๋ชจ๋ ๋น์ทํ ๊ณผ์
โข
์ด์ ์นด์นด์ค ๋ก๊ทธ์ธ ๊ตฌํ๊ณผ ๊ฒฐ๊ณผ์ ์ผ๋ก ๋์ผํ ๊ณผ์ ์ ๊ฑฐ์น๋ค.
โข
์ค์ ์ ํ๋ฆฌ์ผ์ด์ ์์ ๊ตฌํํ๋ ๊ณผ์ ์ ์ ๋ฆฌ
1. ๊ตฌ๊ธ์์ ์ ํ๋ฆฌ์ผ์ด์ ์์ฑ
console.cloud.google.com
โข
ํ๋ก์ ํธ ๋ง๋ค๊ธฐ
1-1. ๋์ํ๋ฉด ๊ตฌ์ฑ
โข
์ฝ์์์ OAuth ๋์ํ๋ฉด์ ๋จผ์ ์์ฑํด์ค๋ค.
[OAuth2.0] Google Social Login ๊ตฌํ - ํด๋ผ์ด์ธํธ ์ฌ์ด๋ ์ฝ์
๋ฌธ์ ์ธ์
ํด๊ฒฐ ๋ฐฉ์ ํ์
ํด๊ฒฐ ์๋์ ๊ฒฐ๊ณผ
Refused to display in a frame because it set 'X-Frame-Options' to 'sameorigin'.
๋๋ฉ์ธ ๊ตฌ๋งค ํ, DNS ๊ด๋ฆฌํ์ด์ง -> A Record ์ค์ -> ์๋ฒ ์ธ๋ถ IP ์ฐ๊ฒฐ
โข
http://www.metaverseacademy.site
โข
http://metaverseacademy.site/
โข
๋๊ฐ์ ์ ๊ทผ ์ฃผ์ HTTP ์ผ๋ฐ ๋ฐฐํฌ ์ํ ํ์ธ (์ดํ โ SSL ๋ฐ๊ธ ํ HTTPS ๋ณด์ ๋ฐฐํฌ๋ก ์ฐ๊ฒฐ)
ํฌํธํฌ์๋ฉ ์ ๋ฆฌ
[์๋ฒ์ปดํจํฐ]
โข
ํ๋ก ํธ์๋ Angular -> Nginx ์น์๋ฒ ์ ์ ์๋น ๋ด๋ถ 4200 ํฌํธ -> ์ธ๋ถ(๋๋ฉ์ธ) 80 ํฌํธ โ SSL 443 ํฌํธ
โข
๋ฐฑ์๋ NestJS -> Express ๋ด์ฅ์๋ฒ ๋์ ๋ฐ์ดํฐ ์๋น(WAS) ๋ด๋ถ 3100 ํฌํธ -> ์ธ๋ถ(๋๋ฉ์ธ) 3100 ํฌํธ
โข
๋ฐ์ดํฐ๋ฒ ์ด์ค MySQL -> Docker ๋ด๋ถ ๋คํธ์ํฌ 3306 ํฌํธ -> ๋ด๋ถ 3306 ํฌํธ -> ๋ฐฑ์๋์ ํต์
โข
Pixel Streaming(UE) -> Turn/Stun Server ํฌํธ -> ์ธ๋ถ 85 ํฌํธ โ SSL ์ธ๋ถ 8443 ํฌํธ
์์ฒด ์๋ฒ(๋ก์ปฌ) HTTPS ๋ฐฐํฌ๋ฅผ ์ํ WACS๋ฅผ ํตํ ์์ฒด Letโs Encrypt ์ธ์ฆ์ ๋ฐ๊ธ๊ณผ ์ฐ๊ฒฐ
์ํ ๋ชจ์ต
1.
ํ๋ก ํธ์๋์ ํ์ผ ์ ๋ก๋ ์์ฒญ ์์
2.
๋ฐฑ์๋ ์ปจํธ๋กค๋ฌ์ ์์ฒญ ํ๋ฆ
3.
ํ๋ก ํธ์๋์ ํ์ผ ๋ฐ์ดํฐ๋ฒ ์ด์ค ๋ชฉ๋ก ์กฐํ ํ๋ฉด
4.
๊ฐ์์ค์ ์์ฒญ ํ๋ฉด ์ง์ ๋ชจ์ต
5.
์์ฒญ ํ๋ฉด ์์ฒญ ์ NAS์ ์น์๋ฒ๋ก๋ถํฐ ์๋น๋๋ ์์์ ๋ชจ์ต
๋ฐฑ์๋์๋ฒโNAS API ํ์ผ ์ ๋ก๋โNAS ์์ ์๋น ๋ทฐ ํ์ด์ง ๋ฐํ๊น์ง์ ๊ตฌํ ์ํ
๋ฌธ์ ์ธ์
โข
๋ฌธ์ ์ํ ๋ถ์
ํด๊ฒฐ ๋ฐฉ์ ํ์
โข
ํน์ ์ ์ ๊ฐ ๋ก๊ทธ์ธํ๋ ๋ฐฉ์์ SSH ์ธ์ ์ ๊ฒฐ๊ตญ ํด๋น ์ ์์ ์ข ๋ฃํ๋ฉด ์ธ์ ์ด ์ข ๋ฃ๋๋ฉด์ ๊ด๋ จ ํ๋ก์ธ์ค๊ฐ ๋ชจ๋ ์ข ๋ฃ๋จ
โข
๋ฐ๋ผ์, NAS๊ฐ ๊ณ์ํ์ฌ ์คํ๋๋ root ์ ์ ๋ก ์ ๊ทผํ๋ฉด ํด๊ฒฐ ํ ์ ์์ง๋ง root๊ณ์ ์ผ๋ก ํฐ๋ฏธ๋์ ์ ๊ทผํ๋ ๊ฒ์ ๊ฐ๋ฐฉํ๋ ๊ฒ์ ์ํ์ฑ์ด ์์
โข
NAS ์์ฒด์์ ์ ๊ณตํ๋
Docker๋ฅผ ํตํด ์คํํ๋ฉด root์์ ์คํํ๋๊ฒ์ด๋ฏ๋ก ์ง์์ ์ธ ํ๋ก์ธ์ค๋ฅผ ์ ์ง ํ ์ ์์
๋ฌธ์ ํด๊ฒฐ ๊ณผ์
โข
Docker๋ฅผ ํ์ฉ
ํ๊ธฐ ์ํ ์์
์ถ๊ฐ์ ์ธ ๋ฌธ์ ์ ๋ฐ์
โข
ํด๋น ํ๋ก์ ํธ๋ ์ด์ Docker ๊ฐ์ํ๊ฒฝ ๋ด์์ ์๋ํ๊ธฐ ๋๋ฌธ์ ์๋๊ฒฝ๋ก๋ก๋ ํด๋น ์ปดํจํฐ์ ์ ํํ video๋ผ๋ ํด๋์ ์ ๊ทผ ํ ์ ์์๋ค.
โข
๊ณต์ ํด๋๋ก ์ง์ ํ๊ณ ์๋ video์ ์ ๋๊ฒฝ๋ก๋ฅผ ์ ๋ ฅํ์ฌ ์ ํํ ๊ณต์ ํด๋๋ก ์ฐพ์ ๊ฐ ์ ์๋๋ก ์ง์
โข
์ปจํ ์ด๋ ์ค์ ์์ ์ปจํ ์ด๋ ๋ณผ๋ฅจ์ ๊ณต์ ํด๋์ ๋งตํํ๋ ๋ถ๋ถ์ด ์๋๊ฒ์ผ๋ก ๋ณด์ ์ด๋ถ๋ถ์์๋ ํด๊ฒฐ ๊ฐ๋ฅ ํ ๊ฒ์ผ๋ก ๋ณด์ธ๋ค.
NAS ๋ด ํ์ผ์ ๋ก๋ ์ ํ๋ฆฌ์ผ์ด์ ์ ํน์ SSH์ ์ข ์๋ ์ธ์ ๋ง๋ฃ ๋ฌธ์ + Docker์ Host์ ์ปจํ ์คํธ ์ธ์ ๋ฌธ์
NAS ํ์ผ ์คํ ๋ฆฌ์ง๋ฅผ ํ์ฉํ๊ธฐ
โข
NAS:
โข
์๋น์ค ๋ฐฑ์๋ ์๋ฒ:
โข
์๋น์ค ํ๋ก ํธ์๋ ์๋ฒ:
โข
์ถ๊ฐ ๊ณ ๋ ค ์ฌํญ
โข
๊ฐ๋ฐ ๊ณผ์ ์ค ๋ฌธ์ ํด๊ฒฐ๊ณผ ํ์ฌ ์ํ
NAS ํ์ผ์๋ฒ ๊ตฌ์ถ๊ณผ ์น์๋ฒ(Nginx)๋ฅผ ํตํ ํ์ผ ์๋น
Standalone?
Angular์์ "Standalone" ์ปดํฌ๋ํธ๋ Angular 14 ์ด์์์ ๋์ ๋ ๊ธฐ๋ฅ์ผ๋ก, ๋ชจ๋ ์์ด ๋ ๋ฆฝ์ ์ผ๋ก ์ฌ์ฉํ ์ ์๋ ์ปดํฌ๋ํธ๋ฅผ ์๋ฏธํฉ๋๋ค. ์ด๋ ์ปดํฌ๋ํธ์ ์ฌ์ฌ์ฉ์ฑ๊ณผ ๊ด๋ฆฌ์ฑ์ ๋์ด๋ฉฐ, ๋ ๊ฐํธํ๊ฒ ์ ํ๋ฆฌ์ผ์ด์ ์ ๊ตฌ์ฑํ ์ ์๊ฒ ํด์ค๋๋ค.
Standalone ์ปดํฌ๋ํธ์ ํน์ง
1.
๋ชจ๋ ๋ถํ์: ๊ธฐ์กด์ Angular ์ปดํฌ๋ํธ๋ ๋ฐ๋์ ๋ชจ๋์ ํฌํจ๋์ด์ผ ํ์ง๋ง, Standalone ์ปดํฌ๋ํธ๋ ๋ ๋ฆฝ์ ์ผ๋ก ์ฌ์ฉํ ์ ์์ต๋๋ค.
2.
๊ฐํธํ ์ฌ์ฉ: ์ปดํฌ๋ํธ๋ฅผ ๋ค๋ฅธ ์ปดํฌ๋ํธ์์ ์ง์ ์ฌ์ฉํ ์ ์์ด, ๋ถํ์ํ ๋ชจ๋ ์์กด์ฑ์ ์ค์ผ ์ ์์ต๋๋ค.
3.
Lazy Loading ์ง์: Standalone ์ปดํฌ๋ํธ๋ Lazy Loading์ ์ง์ํ์ฌ, ํ์ํ ๋๋ง ๋ก๋ํ ์ ์์ต๋๋ค.
Standalone ์ปดํฌ๋ํธ ์์ฑ ์์ ๋ค์์ Standalone ์ปดํฌ๋ํธ๋ฅผ ์์ฑํ๋ ๋ฐฉ๋ฒ์ ๋๋ค.
Standalone ์ปดํฌ๋ํธ ์ฌ์ฉ ์ด์ ๋ค๋ฅธ ์ปดํฌ๋ํธ์์ Standalone ์ปดํฌ๋ํธ๋ฅผ ์ฌ์ฉํ ์ ์์ต๋๋ค. ์๋ฅผ ๋ค์ด, ๋ถ๋ชจ ์ปดํฌ๋ํธ์์ ์ฌ์ฉํด ๋ณด๊ฒ ์ต๋๋ค.
๋ชจ๋์ ๋ฑ๋กํ์ง ์๊ณ ์ฌ์ฉ Standalone ์ปดํฌ๋ํธ๋ ๋ชจ๋์ ๋ฑ๋กํ ํ์๊ฐ ์์ผ๋ฏ๋ก, ๋ค์๊ณผ ๊ฐ์ด ์ฌ์ฉํ ์ ์์ต๋๋ค.
์ปดํฌ๋ํธ์ standalone์ ํ์์ฑ๊ณผ ์ ์ฉ ๋ฒ์ ๊ณ ๋ ค
๋ฐ์ดํฐ ๋ฐ์ธ๋ฉ์ ์ํ @Input ๋ฐ์ฝ๋ ์ดํฐ
Angular์์ ๋ฐ์ดํฐ ๋ฐ์ธ๋ฉ์ ์ํ ๋ฐ์ฝ๋ ์ดํฐ๋ ์ฃผ๋ก
@Input()
์ ์ฌ์ฉํ์ฌ ๋ถ๋ชจ ์ปดํฌ๋ํธ๋ก๋ถํฐ ๊ฐ์ ๋ฐ์์ค๋ ๋ฐ ์ฌ์ฉ๋ฉ๋๋ค. ์ด ๋ฐ์ฝ๋ ์ดํฐ๋ ์์ ์ปดํฌ๋ํธ์์ ๋ถ๋ชจ ์ปดํฌ๋ํธ์ ๋ฐ์ดํฐ๋ฅผ ๋ฐ์ธ๋ฉํ ์ ์๊ฒ ํด์ค๋๋ค.
๋ค์์ Angular์์
@Input()
๋ฐ์ฝ๋ ์ดํฐ๋ฅผ ์ฌ์ฉํ์ฌ ๋ฐ์ดํฐ ๋ฐ์ธ๋ฉ์ ๊ตฌํํ๋ ๊ฐ๋จํ ์์์ ๋๋ค.
1.
์์ ์ปดํฌ๋ํธ ์์ฑ ๋จผ์ ์์ ์ปดํฌ๋ํธ๋ฅผ ์์ฑํ๊ณ ,
@Input()
์ ์ฌ์ฉํ์ฌ ๋ฐ์ดํฐ๋ฅผ ๋ฐ์ ์ค๋น๋ฅผ ํฉ๋๋ค.
2.
๋ถ๋ชจ ์ปดํฌ๋ํธ ์์ฑ ๋ถ๋ชจ ์ปดํฌ๋ํธ์์ ์์ ์ปดํฌ๋ํธ๋ฅผ ์ฌ์ฉํ๊ณ , ๋ฐ์ดํฐ๋ฅผ ์ ๋ฌํฉ๋๋ค.
3.
๋ชจ๋์ ์ปดํฌ๋ํธ ์ถ๊ฐ ๋ชจ๋ ํ์ผ์ ์์ ์ปดํฌ๋ํธ๋ฅผ ์ถ๊ฐํฉ๋๋ค.
4.
๊ฒฐ๊ณผ ์ด์ Angular ์ ํ๋ฆฌ์ผ์ด์ ์ ์คํํ๋ฉด, ๋ถ๋ชจ ์ปดํฌ๋ํธ์์ ์์ ์ปดํฌ๋ํธ๋ก ๋ฐ์ดํฐ๊ฐ ๋ฐ์ธ๋ฉ๋์ด ํ์๋ฉ๋๋ค. ์์ ์ปดํฌ๋ํธ๋ ๋ถ๋ชจ์ ๋ฐ์ดํฐ๋ฅผ ๋ฐ์์ ํ๋ฉด์ ์ถ๋ ฅํ๊ฒ ๋ฉ๋๋ค.
์ด๋ ๊ฒ
@Input()
๋ฐ์ฝ๋ ์ดํฐ๋ฅผ ์ฌ์ฉํ์ฌ Angular์์ ๋ฐ์ดํฐ ๋ฐ์ธ๋ฉ์ ๊ตฌํํ ์ ์์ต๋๋ค.
Angular์ @Input ๋ฐ์ฝ๋ ์ดํฐ ์ฌ์ฉ ๋ฐฉ๋ฒ
https://folk.universitetetioslo.no/trygver/themes/mvc/mvc-index.html
1. MVC ๋์์ธ ํจํด
2. MVC์ ์์
[Node.js] 13. MVC ๋์์ธ ํจํด๊ณผ ๋ฆฌํฉํ ๋ง
1. ๋ฐฑ์๋ NestJS+๋ด์ฅ Express ์ปจํ ์ด๋ํ ๋ฐ ์คํ
1.1 Dockerfile ๋ฐ .dockerignore ์์ฑ
โข
MP_Project/Back-end/
Dockerfile
์์ฑ
โข
MP_Project/Back-end/
.dockerignore
์์ฑ
1.2 ์ด๋ฏธ์ง ๋น๋
โข
ํฐ๋ฏธ๋
MP_Project/Back-end/
๊ฒฝ๋ก(Root)์์
โข
Docker-Desktop์์ ์์ฑ๋ NestJS ๋ฐฑ์๋ ํ๋ก์ ํธ๊ฐ ๋น๋๋ ์ด๋ฏธ์ง ํ์ธ
1.3 ์ปจํ ์ด๋ ์คํ
โข
CLI๋ฅผ ํตํ ์ด๋ฏธ์งโ์ปจํ ์ด๋ ์คํ ๋ช ๋ น์ด
[Docker] Docker VM ํ์ฉ ํตํฉ ๋ฐฐํฌ์ CI/CD ํ์ดํ๋ผ์ธ ๊ตฌ์ถ
1. ํ๋ฌ๊ทธ์ธ ์ค์น
Marketplace์์ ์๋ ํค์๋๋ก ๊ฒ์ํ์ฌ ๊ฐ๊ฐ ์ค์นํ๋ค.
โข
SQLTools
โข
@tag:sqltools-driver
2. ์ค์น ํ ์ปค๋ฅ์ ์ถ๊ฐ
โข
์ข์ธก ํ๋จ ์ํตํ DB ์์ด์ฝ์ด ์์ฑ๋๊ณ Add New Connection์ผ๋ก DB์ ์ฐ๊ฒฐํด์ผ ํ๋ค.
โข
๋๋ผ์ด๋ฒ ํ๋ฌ๊ทธ์ธ๋ ์ค์น๊ฐ ์ ์์ ์ผ๋ก ๋์๋ค๋ฉด ์๋์ ๊ฐ์ด ์์ด์ฝ์ด ๋ํ๋๋ค. MySQL ์ ํ
[Node.js] 12. ๋ฐ์ดํฐ๋ฒ ์ด์ค GUI VSCode ํ๋ฌ๊ทธ์ธ
Load more