## ๋ฆฌ๋์ค์ ํ์ ๋ฐฐ๊ฒฝ https://redux.js.org/introduction/motivation **์๋ฐ์คํฌ๋ฆฝํธ ์ฑ๊ธ ํ์ด์ง ์ ํ๋ฆฌ์ผ์ด์ ์ ๋ํ ์๊ตฌ ์ฌํญ์ด ์ ์ ๋ณต์กํด ์ง์ ๋ฐ๋ผ์, ์ฐ๋ฆฌ์ ์ฝ๋๋ ๊ทธ ์ด๋ ๋ ๋ณด๋ค๋ ๋ ๋ง์ด ์ํ๊ด๋ฆฌ์ ๋ํ ํ์์ฑ์ ๋๋ผ๊ณ ์๋ค.** ์ฌ๊ธฐ์ ๋งํ๋ ์ํ์๋ ์๋ฒ ์๋ต, ์บ์๋ ๋ฐ์ดํฐ ๋ฟ๋ง์๋๋ผ ์๋ฒ์ ์์ง ์...
Read## ๋ฆฌ๋์ค ๊ณต๋ถํด๋ณด๊ธฐ 1 [๋ฆฌ๋์ค ๊ณต์๋ฌธ์](https://redux.js.org/introduction/getting-started)๋ฅผ ์ค์ค๋ก ๋์ถฉ ๋ฒ์ญํด๋ณธ ๊ธ์ ๋๋ค. ๋ฆฌ๋์ค๋ ์๋ฐ์คํฌ๋ฆฝํธ ์ฑ์ ์ํ **์์ธก ๊ฐ๋ฅํ ์ํ ๊ด๋ฆฌ ์ปจํ ์ด๋**๋ค. ๋ฆฌ๋์ค๋ ์ผ๊ด์ฑ ์๊ฒ ๋์ํ๊ณ , ์๋ก ๋ค๋ฅธ ํ๊ฒฝ (ํด๋ผ์ด์ธํธ, ์๋ฒ, ๋ค์ดํฐ๋ธ)์์ ์คํ๋๋ฉฐ, ํ ์คํธํ๊ธฐ ...
Read```typescript export async function MyMiddleware( ctx: Koa.Context, next: (ctx: Koa.Context) => Promise<any> ) { console.log("first middleware started..") // ctx๋ฅผ ์กฐ์ํ์ฌ ์ธ์ฆ๋ฑ์ ์ต์ ์ ์ฒ๋ฆฌํ ์ ์๋ค. co...
Read## WebSocket ์น์ ์ ํ์ ์ผ๋ก HTTP ์์ฒญ์ ๋ํ HTTP ์๋ต์ ๋ฐ๊ณ , ์ด์ ๋ฐ๋ผ ๋ธ๋ผ์ฐ์ ํ๋ฉด์ ์๋ก ๋ง๋๋ ๋ฐฉ์์ด๋ค. ๋ฐ๋ผ์ ๋ฐ์ดํฐ ํต์ ์ ์์ฒญ๊ณผ ์๋ต์ด ํ ์์ผ๋ก ๋ฌถ์ฌ์๋ค. ๊ทธ๋ฌ๋ ์น ํ์ด์ง๊ฐ ๋ณด๋ค ์ฝ๊ฒ ์ํธ์์ฉ์ ํ๋ ค๋ฉด, ๋ธ๋ผ์ฐ์ ์ ์น ์ฌ์ด์ ์ด๋ฌํ ์์ฒญ - ์๋ต ๋ฐฉ์์ด ์๋ ๋ ์์ ๋ก์ด ์๋ฐฉํฅ ๋ฉ์์ง ์ก์์ ๊ธฐ์ ์ด ํ์ํ๋ค. ์ด๋ฌํ ...
Read๋ค์ด๋ฒ ํด๋ผ์ฐ๋ ํ๋ซํผ์ ์๋น์ค ์ค ํ๋์ธ https://www.ncloud.com/product/applicationService/sens ๋ก SMS๋ฅผ ๋ฐ์กํ๋ ์์ . ncloud์๋น์ค๋ฅผ ๋ค ์จ๋ณธ๊ฑด ์๋์ง๋ง, `make_signature`๋ ์ ์๋น์ค์ ๋ค ๋๊ฐ์ด ์ธ ์ ์์ ๊ฒ ๊ฐ์ ๊ธฐ๋ถ์ด๋ค. ```python import time import req...
Read