2024/06 21

2024 Epson Innovation challenge ์ฐธ์—ฌ ํ›„๊ธฐ

์˜ค๋Š˜์€2024 Epson API ๊ณต๋ชจ์ „์— ์ฐธ์—ฌํ•˜์˜€์Šต๋‹ˆ๋‹ค. ํ•ด๋‹น ๊ณต๋ชจ์ „์€ Epson ์ฝ”๋ฆฌ์•„ + ๋ฉ‹์Ÿ์ด ์‚ฌ์ž์ฒ˜๋Ÿผ์—์„œ ํ•จ๊ป˜ ์ง„ํ–‰ํ•ด์ฃผ์…จ์Šต๋‹ˆ๋‹ค. ๋ณธ์„  ๋ฐœํ‘œ ์ „, ํ”ผ์นญ ์‹œ๊ฐ„์ด ์žˆ์—ˆ์Šต๋‹ˆ๋‹ค.  ํ”„๋กœ์ ํŠธ - PaideiaEpson Connect API๋ฅผ ํ™œ์šฉํ•œ ํ”„๋กœ์ ํŠธ๋ฅผ ๊ฐœ๋ฐœํ•˜๋Š” ๊ณต๋ชจ์ „์ด์˜€์Šต๋‹ˆ๋‹ค. ์ €ํฌ ํŒ€์—์„œ๋Š” GPT ์—”์ง„์„ ํ™œ์šฉํ•œ ๊ฐœ์ธ ๋งž์ถคํ˜• ๊ต์œก ์ž๋ฃŒ๋ฅผ ์ƒ์„ฑํ•˜๋Š” ์„œ๋น„์Šค๋ฅผ ๋งŒ๋“ค์—ˆ์Šต๋‹ˆ๋‹ค.์ €๋Š” ํ”„๋กœ์ ํŠธ์—์„œ DB ์„ค๊ณ„๋ฅผ ๋งก์•„ ์ƒ์„ฑ๋œ ๊ต์œก ์ž๋ฃŒ๋ฅผ DB์— ์ €์žฅํ•˜๊ณ  ํ™œ์šฉํ•˜๋Š” ๊ธฐ๋Šฅ๋“ค์„ ๊ตฌํ˜„ํ–ˆ์Šต๋‹ˆ๋‹ค. ERD์ดˆ๊ธฐ์— ๊ณ„ํšํ•œ ERD์ž…๋‹ˆ๋‹ค.์ถ”์ฒœ ํ•™์Šต, ์˜ค๋Š˜์˜ ํ•™์Šต, ์ฆ๊ฒจ์ฐพ๊ธฐํ•œ ํ•™์Šต, ์˜ค๋‹ต๋…ธํŠธ ๋“ฑ ์ดˆ๊ธฐ ๊ธฐํš์— ๋งž์ถฐ ๊ตฌ์„ฑํ–ˆ๋Š”๋ฐ ์ œ์ถœ ๊ธฐํ•œ์— ๋งž์ถฐ ๊ธฐ๋Šฅ์ด ์ถ•์†Œ๋˜๋ฉด์„œ ๋‹ค์‹œ ERD๋ฅผ ์ž‘์„ฑํ–ˆ์Šต๋‹ˆ๋‹ค. ๋‹ค์‹œ ์ž‘์„ฑํ•œ ERD์ž…๋‹ˆ๋‹ค. ERD๋ฅผ ๊ธฐ๋ฐ˜์œผ๋กœ ์„ค๊ณ„ํ•œ ..

Web 2024.06.30

๊ณต์—ฐ ์˜ˆ๋งค ํ”„๋กœ์ ํŠธ - ERD, API ๋ช…์„ธ์„œ

์˜ค๋Š˜์€์ƒˆ๋กœ ์‹œ์ž‘ํ•˜๊ฒŒ๋œ ํ”„๋กœ์ ํŠธ์— ์•ž์„œ API ๋ช…์„ธ์„œ์™€ ERD๋ฅผ ์ž‘์„ฑํ–ˆ์Šต๋‹ˆ๋‹ค.  API ๋ช…์„ธ์„œํ”„๋กœ์ ํŠธ์—์„œ ํ•„์š”ํ•œ ์ตœ์†Œํ•œ์˜ ํ•„์ˆ˜์  ๊ธฐ๋Šฅ๋“ค๋กœ ์ž‘์„ฑํ–ˆ์Šต๋‹ˆ๋‹ค.  - auth : ํšŒ์›๊ฐ€์ž…, ๋กœ๊ทธ์ธ - user : ๊ฐœ์ธ ์ •๋ณด ์กฐํšŒ - show : ๊ณต์—ฐ ์ƒ์„ฑ, ๊ณต์—ฐ ๊ฒ€์ƒ‰, ๊ณต์—ฐ ์ƒ์„ธ ์กฐํšŒ- ticket : ๋žœ๋ค ์˜ˆ๋งคํ•˜๊ธฐ, ์˜ˆ๋งค ํ™•์ธ, ์˜ˆ๋งค ์ทจ์†Œ, ์ „์ฒด ์ขŒ์„ ์˜ˆ๋งค ์ •๋ณด ํ™•์ธ, ์ขŒ์„ ์ง€์ • ์˜ˆ๋งค  ์ขŒ์„๋งˆ๋‹ค ๋“ฑ๊ธ‰์ด ์žˆ๊ณ  ๊ฐ€๊ฒฉ์ด ๋‹ค๋ฅด๊ธฐ ๋•Œ๋ฌธ์— ์ขŒ์„์„ ์ง€์ •ํ•˜์—ฌ ์˜ˆ๋งค, ์˜ˆ๋งค ์ทจ์†Œ, ์ „์ฒด ์ขŒ์„ ์˜ˆ๋งค ์ •๋ณด ํ™•์ธ API๊ฐ€ ํ•ด๋‹น ํ”„๋กœ์ ํŠธ์—์„œ ํ•ต์‹ฌ์ ์ธ ๋ถ€๋ถ„์ด๋ผ๊ณ  ์ƒ๊ฐ๋ฉ๋‹ˆ๋‹ค.  req, res ์ž‘์„ฑ์—์„œ ERD์˜ ํ•„์š”์„ฑ์„ ๋Š๊ปด ๋ฒˆ๊ฐˆ์•„๊ฐ€๋ฉฐ ์ž‘์—…ํ–ˆ์Šต๋‹ˆ๋‹ค. ์˜ˆ๋งค์™€ ๊ด€๋ จ๋œ API URL๊ณผ method๊ฐ€ RESTful ํ•˜๊ฒŒ ์ž‘์„ฑ๋˜์—ˆ๋Š”์ง€, ํ”ผ๋“œ๋ฐฑ์„ ๋ฐ›์•„..

Web 2024.06.28

ํƒ€์ž…์Šคํฌ๋ฆฝํŠธ์˜ ๊ณ ๊ธ‰ ํƒ€์ž… ์ •๋ฆฌ

TypeScript๋Š” JavaScript์— ์ •์  ํƒ€์ž…์„ ์ถ”๊ฐ€ํ•˜์—ฌ ์ฝ”๋“œ์˜ ์•ˆ์ •์„ฑ๊ณผ ๊ฐ€๋…์„ฑ์„ ๋†’์ด๋Š” ์–ธ์–ด์ž…๋‹ˆ๋‹ค. TypeScript์—๋Š” ๊ธฐ๋ณธ ํƒ€์ž… ์™ธ์—๋„ ๊ณ ๊ธ‰ ํƒ€์ž…์ด ์กด์žฌํ•˜์—ฌ ๋ณต์žกํ•œ ํƒ€์ž… ์ •์˜์™€ ๋” ๊ฐ•๋ ฅํ•œ ํƒ€์ž… ์ฒดํฌ๋ฅผ ๊ฐ€๋Šฅํ•˜๊ฒŒ ํ•ฉ๋‹ˆ๋‹ค.  ์˜ค๋Š˜์€ TypeScript์˜ ๊ณ ๊ธ‰ ํƒ€์ž…๋“ค์„ ์ •๋ฆฌํ•œ ์ž๋ฃŒ์ž…๋‹ˆ๋‹ค.   1. ์œ ๋‹ˆ์˜จ ํƒ€์ž… (Union Types)์—ฌ๋Ÿฌ ํƒ€์ž… ์ค‘ ํ•˜๋‚˜๋ฅผ ๊ฐ€์งˆ ์ˆ˜ ์žˆ๋Š” ๋ณ€์ˆ˜๋ฅผ ์ •์˜ํ•  ๋•Œ ์‚ฌ์šฉํ•ฉ๋‹ˆ๋‹ค.typescriptlet value: string | number;value = "Hello";value = 123; 2. ์ธํ„ฐ์„น์…˜ ํƒ€์ž… (Intersection Types)์—ฌ๋Ÿฌ ํƒ€์ž…์„ ๊ฒฐํ•ฉํ•˜์—ฌ ํ•˜๋‚˜์˜ ํƒ€์ž…์œผ๋กœ ๋งŒ๋“ค ๋•Œ ์‚ฌ์šฉํ•ฉ๋‹ˆ๋‹ค.interface Person { name: string;}interf..

Web 2024.06.28

ํƒ€์ž…์Šคํฌ๋ฆฝํŠธ์˜ ์ปดํŒŒ์ผ

์˜ค๋Š˜์€ ํƒ€์ž…์Šคํฌ๋ฆฝํŠธ๋ฅผ ์‚ฌ์šฉํ•˜๊ธฐ ์œ„ํ•ด ์ถ”๊ฐ€๋œ ๊ณผ์ •์ธ ์ปดํŒŒ์ผ์— ๋Œ€ํ•ด์„œ ๊ณต๋ถ€ํ–ˆ์Šต๋‹ˆ๋‹ค.  ์ปดํŒŒ์ผ์ด๋ž€ ? ์ผ๋ฐ˜์ ์œผ๋กœ, ์†Œ์Šค ์ฝ”๋“œ๋ฅผ ํŠน์ • ํ”Œ๋žซํผ์—์„œ ์‹คํ–‰ ๊ฐ€๋Šฅํ•œ ํ˜•ํƒœ๋กœ ๋ณ€ํ™˜ํ•˜๋Š” ๊ณผ์ •์„ ์˜๋ฏธํ•ฉ๋‹ˆ๋‹ค. ํƒ€์ž…์Šคํฌ๋ฆฝํŠธ๋ฅผ ๋ธŒ๋ผ์šฐ์ €์—์„œ ์‹คํ–‰ํ•˜๋ ค๋ฉด '์ปดํŒŒ์ผ' ๊ณผ์ •์ด ํ•„์š”ํ•œ๋ฐ์š”,๋ธŒ๋ผ์šฐ์ €๋Š” ์•„์ง๊นŒ์ง€ ํƒ€์ž…์Šคํฌ๋ฆฝํŠธ ์ฝ”๋“œ๋ฅผ ์ฒ˜๋ฆฌํ•  ์ˆ˜ ์—†๊ธฐ ๋•Œ๋ฌธ์ž…๋‹ˆ๋‹ค.๋”ฐ๋ผ์„œ ๊ฐœ๋ฐœ ๊ณผ์ •์—์„œ ํƒ€์ž…์Šคํฌ๋ฆฝํŠธ๋กœ ์ž‘์„ฑํ•˜์ง€๋งŒ ๋ฐฐํฌ์‹œ์—๋Š” ๋ฐ˜๋“œ์‹œ ์ž๋ฐ”์Šคํฌ๋ฆฝํŠธ๋กœ ๋ณ€ํ™˜ํ•˜๋Š” ๊ณผ์ •์ด ํ•„์š”ํ•ฉ๋‹ˆ๋‹ค.  ์ปดํŒŒ์ผ๋Ÿฌ๋ž€ ? ํƒ€์ž…์Šคํฌ๋ฆฝํŠธ ์ฝ”๋“œ๋ฅผ ์ž๋ฐ”์Šคํฌ๋ฆฝํŠธ ์ฝ”๋“œ๋กœ ๋ณ€ํ™˜ํ•  ๋•Œ ํ•„์š”ํ•œ ๋„๊ตฌ๋ฅผ '์ปดํŒŒ์ผ๋Ÿฌ'๋ผ๊ณ  ํ•ฉ๋‹ˆ๋‹ค. (ํ”„๋กœ๊ทธ๋ž˜๋ฐ ์–ธ์–ด๋กœ ์ž‘์„ฑ๋œ ์†Œ์Šค ์ฝ”๋“œ -> ๋‹ค๋ฅธ ํ”„๋กœ๊ทธ๋ž˜๋ฐ ์–ธ์–ด๋กœ ๋ณ€ํ™˜ํ•˜๋Š” ๋„๊ตฌ)'์ปดํŒŒ์ผ๋Ÿฌ'๋Š” ์ฝ”๋“œ ๋ณ€ํ™˜ ๊ณผ์ •์—์„œ ์˜ค๋ฅ˜๋ฅผ ์‚ฌ์ „์— ๋ฐœ๊ฒฌํ•˜๊ธฐ๋„ ํ•˜๊ณ  ์ฝ”๋“œ์˜ ์ตœ์ ํ™”๋ฅผ ๋„์™€ ์ „๋ฐ˜์ ์ธ ์–ดํ”Œ๋ฆฌ..

Web 2024.06.27

๋™์  ํƒ€์ž… ์–ธ์–ด์™€ ์ •์  ํƒ€์ž… ์–ธ์–ด

์˜ค๋Š˜์€ ํƒ€์ž…์Šคํฌ๋ฆฝํŠธ๋ฅผ ๋ฐฐ์šฐ๊ธฐ ์ „, ์ž๋ฐ”์Šคํฌ๋ฆฝํŠธ๊ฐ€ ๋™์  ํƒ€์ž… ์–ธ์–ด์ด๊ธฐ ๋•Œ๋ฌธ์— ์ƒ๊ธธ ์ˆ˜ ์žˆ๋Š” ๋ฌธ์ œ์ ์„ ๋ฐฐ์› ์Šต๋‹ˆ๋‹ค. ์ œ๊ฒŒ๋Š” ์ƒ์†Œํ•œ ๊ฐœ๋…์ธ ๋™์  ํƒ€์ž… ์–ธ์–ด์™€ ์ •์  ํƒ€์ž… ์–ธ์–ด์— ๋Œ€ํ•ด ์ •๋ฆฌํ•ด๋ณด๊ณ ์ž ํ•ฉ๋‹ˆ๋‹ค. ๋™์  ํƒ€์ž… ์–ธ์–ด์™€ ์ •์  ํƒ€์ž… ์–ธ์–ด ๋ณ€์ˆ˜์™€ ๋ฐ์ดํ„ฐ ํƒ€์ž…์˜ ์ฒ˜๋ฆฌ ๋ฐฉ์‹์— ๋”ฐ๋ผ ๊ตฌ๋ถ„๋ฉ๋‹ˆ๋‹ค. 1. ๋™์  ํƒ€์ž… ์–ธ์–ด ( ์ธํ„ฐํ”„๋ฆฌํ„ฐ ์–ธ์–ด ) ๋ณ€์ˆ˜์˜ ํƒ€์ž…์ด ์‹คํ–‰ ์‹œ๊ฐ„(runtime)์— ๊ฒฐ์ •๋ฉ๋‹ˆ๋‹ค. ๋ณ€์ˆ˜๋ฅผ ์„ ์–ธํ•  ๋•Œ ํƒ€์ž…์„ ๋ช…์‹œํ•˜์ง€ ์•Š๊ณ , ๋ณ€์ˆ˜์— ๊ฐ’์„ ํ• ๋‹น ํ•  ๋•Œ ๊ทธ ๊ฐ’์˜ ํƒ€์ž…์— ๋”ฐ๋ผ ์ž๋™์œผ๋กœ ๋ณ€์ˆ˜์˜ ํƒ€์ž…์ด ๊ฒฐ์ •๋ฉ๋‹ˆ๋‹ค.  ํŠน์ง• 1. ์œ ์—ฐ์„ฑ : ๋ณ€์ˆ˜์˜ ํƒ€์ž…์ด ๊ณ ์ •๋˜์ง€ ์•Š๊ณ  ํ•„์š”์— ๋”ฐ๋ผ ๋ณ€๊ฒฝ๋ฉ๋‹ˆ๋‹ค. 2. ๊ฐ„๊ฒฐํ•œ ์ฝ”๋“œ : ๋ณ€์ˆ˜ ์„ ์–ธ ์‹œ ํƒ€์ž…์„ ๋ช…์‹œํ•  ํ•„์š”๊ฐ€ ์—†์–ด์ ธ์„œ ์ฝ”๋“œ๊ฐ€ ๊ฐ„๊ฒฐํ•ด์ง‘๋‹ˆ๋‹ค. 3. ๋Ÿฐํƒ€์ž„ ํƒ€์ž… ์ฒดํฌ : ๋ณ€์ˆ˜์˜ ํƒ€์ž…์ด ์‹ค..

Web 2024.06.26

HTTP ๋ฉ”์„œ๋“œ์™€ ์ƒํƒœ์ฝ”๋“œ

์˜ค๋Š˜์€ ์ง€๋‚œ๋ฒˆ, ์ง์ ‘ Insomnia๋กœ ํ…Œ์ŠคํŠธํ•ด๋ณด๋ฉฐ HTTP ๋ฉ”์„œ๋“œ๊ฐ€ ๊ธฐ๋Šฅ์€ ํฌํ•จํ•˜์ง€ ์•Š๋Š”๋‹ค๋Š” ์‚ฌ์‹ค์„ ์•Œ๊ฒŒ ๋˜์—ˆ์Šต๋‹ˆ๋‹ค. ๊ฐ™์€ ์˜๋ฏธ๋กœ ์ƒํƒœ ์ฝ”๋“œ ๋˜ํ•œ ์–ด๋–ค ๊ธฐ๋Šฅ๋„ ์ง€๋‹ˆ์ง€ ์•Š์œผ๋ฉฐ ํ‘œ์ค€์„ ์ง€ํ‚ค์ง€ ์•Š๋”๋ผ๋„ ๋ฐฑ์—”๋“œ ๋™์ž‘์—๋Š” ์•„๋ฌด ๋ฌธ์ œ๊ฐ€ ์—†์„ ๊ฒƒ์ž…๋‹ˆ๋‹ค. ๊ทธ๋ ‡๋‹ค๋ฉด ์™œ ๋ฉ”์„œ๋“œ์™€ ์ƒํƒœ ์ฝ”๋“œ๋ฅผ ์˜ฌ๋ฐ”๋ฅด๊ฒŒ ์ž‘์„ฑํ•ด์•ผ ํ•˜๋Š” ๊ฒƒ์ผ๊นŒ์š”1. ์ปจ๋ฒค์…˜์— ๋งž์ง€ ์•Š๋Š”๋‹ค.- ์ปจ๋ฒค์…˜์ด ๋งž์ง€ ์•Š์œผ๋‹ˆ ํด๋ผ์ด์–ธํŠธ์™€ ์„œ๋ฒ„๊ฐ€ ์„œ๋กœ ์ƒ๊ฐํ•˜๋Š” ๋™์ž‘์ด ๋‹ค๋ฅด๊ฒŒ ๋  ํ™•๋ฅ ์ด ์žˆ์Šต๋‹ˆ๋‹ค. ์ด๋Š” ์„œ๋น„์Šค ์ž์ฒด์— ๊ฒฐํ•จ์„ ์ดˆ๋ž˜ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ์˜ˆ๋ฅผ ๋“ค์–ด PATCH๋ฅผ ์‚ฌ์šฉํ•ด๋„ ์ถฉ๋ถ„ํ•œ API์—์„œ PUT์œผ๋กœ ์ž‘์„ฑํ•˜๊ฒŒ ๋œ๋‹ค๋ฉด ๋งค๋ฒˆ ํ•ด๋‹น ๋ฐ์ดํ„ฐ ์ „์ฒด๋ฅผ ๋ฎ์–ด์“ฐ๋Š” ์ž‘์—…์„ ํ‘œ์ค€์œผ๋กœ ๋‘๊ธฐ ๋•Œ๋ฌธ์— ํŠธ๋ž˜ํ”ฝ ๋‚ญ๋น„๊ฐ€ ์ƒ๊ธธ ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.  2. ์ƒํƒœ ์ฝ”๋“œ์˜ ์“ฐ์ž„- ๊ฐ™์€ ๋งฅ๋ฝ์—์„œ ์˜ฌ๋ฐ”๋ฅด์ง€ ๋ชปํ•œ ์ƒํƒœ ..

Web 2024.06.24

HTTP ๋ฉ”์„œ๋“œ๊ฐ€ ๊ฐ€์ง€๋Š” ์˜๋ฏธ๋Š” ?

์˜ค๋Š˜์€๋ถ€ํŠธ ์บ ํ”„๋ฅผ ์ง„ํ–‰ํ•˜๋ฉฐ ์ƒˆ๋กœ์šด ํŒ€ ํ”„๋กœ์ ํŠธ๋ฅผ ์‹œ์ž‘ํ•˜๊ณ  ์˜ค๋Š˜๋กœ์จ ๋งˆ์ณค์Šต๋‹ˆ๋‹ค. ๋Œ์ด์ผœ๋ณด๋˜ ์ค‘ API ๋ช…์„ธ์„œ๋ฅผ ๋ณด๋ฉฐ ๋“  ์งˆ๋ฌธ์„ ์ž‘์„ฑํ•ด๋ณด๊ฒ ์Šต๋‹ˆ๋‹ค. ์ž‘์„ฑํ•œ API ๋ช…์„ธ์„œ์ž…๋‹ˆ๋‹ค. ํ•ด๋‹น ๋ช…์„ธ์„œ๋ฅผ ๋ณด๋ฉฐ ๋ฌธ๋“ ํ˜„์žฌ ๋กœ๊ทธ์•„์›ƒ API๋Š” ์ €์žฅ๋œ ๋ฆฌํ”„๋ ˆ์‰ฌ ํ† ํฐ์„ ์‚ญ์ œํ•˜๋Š” ์ž‘์—…์„ ์ˆ˜ํ–‰ํ•˜๋Š” ๋ฐPOST ๋ฉ”์„œ๋“œ๋กœ ์ž‘์„ฑ๋˜๋Š” ๊ฒŒ ์˜ณ์€ ๊ฑธ๊นŒ? ๋ผ๋Š” ์ƒ๊ฐ์ด ๋“ค์—ˆ์Šต๋‹ˆ๋‹ค. HTTP ๋ฉ”์„œ๋“œ๋Š” ์‹ค์ œ ๊ธฐ๋Šฅํ•˜๋Š”๊ฐ€ ? HTTP ๋ฉ”์„œ๋“œ๋Š” ์„œ๋ฒ„์— ์š”์ฒญํ•˜๋Š” ๋™์ž‘์— ์˜๋ฏธ๋ฅผ ๋‚˜ํƒ€๋‚ด๋Š” ๋™์‹œ์—, ์ฃผ์–ด์ง„ ๋ฆฌ์†Œ์Šค์— ์ˆ˜ํ–‰ํ•ด์•ผ ๋  ๋™์ž‘์„ ์ง€์ •ํ•˜๋Š” ๋ฐฉ๋ฒ•์ž…๋‹ˆ๋‹ค.๊ทธ๋ ‡๋‹ค๋ฉด GET, DEL ์™€ ๊ฐ™์€ ๋ฉ”์„œ๋“œ๋ฅผ ๋ณด๋‚ด๊ณ  ๋ฆฌ์†Œ์Šค๋ฅผ ์ถ”๊ฐ€ํ•˜๋Š” ๋™์ž‘์„ ์š”์ฒญํ•˜๋ฉด API๋Š” ๋™์ž‘ํ•˜์ง€ ์•Š๊ฒŒ ๋˜๋Š” ๊ฒƒ์ผ๊นŒ์š”? ๊ทธ๋Ÿผ์—๋„ ๋™์ž‘ํ•œ๋‹ค๋ฉด ? HTTP ๋ฉ”์„œ๋“œ๋Š” ๋ช…์‹œ์ ์ธ ์˜๋ฏธ๋งŒ์„ ๊ฐ€์ง€๋Š” ๊ฒƒ์ธ์ง€, ํ˜น์€ ๋™์ž‘์€ ํ•˜๋”..

Web 2024.06.21

์›น์†Œ์ผ“์ด๋ž€

์›น์†Œ์ผ“(WebSocket)์€ ์›น ๋ธŒ๋ผ์šฐ์ €์™€ ์›น ์„œ๋ฒ„ ๊ฐ„์˜ ์–‘๋ฐฉํ–ฅ ํ†ต์‹  ์ฑ„๋„์„ ์ œ๊ณตํ•˜๋Š” ํ”„๋กœํ† ์ฝœ์ด๋‹ค.  ์›น์†Œ์ผ“์˜ ํŠน์ง•ํด๋ผ์ด์–ธํŠธ์™€ ์„œ๋ฒ„ ๊ฐ„ ์‹ค์‹œ๊ฐ„ ์–‘๋ฐฉํ–ฅ ํ†ต์‹ ์ด ๊ฐ€๋Šฅํ•˜๋‹ค. ์„œ๋ฒ„์—์„œ ํด๋ผ์ด์–ธํŠธ๋กœ ๋ฐ์ดํ„ฐ๋ฅผ ๋ณด๋‚ผ ์ˆ˜ ์žˆ๊ณ , ํด๋ผ์ด์–ธํŠธ์—์„œ๋„ ์„œ๋ฒ„๋กœ๋ฐ์ดํ„ฐ๋ฅผ ๋ณด๋‚ผ ์ˆ˜ ์žˆ๋‹ค. HTTP ํ”„๋กœํ† ์ฝœ๊ณผ ๋‹ฌ๋ฆฌ ํ—ค๋” ์˜ค๋ฒ„ํ—ค๋“œ๊ฐ€ ์ž‘์•„ ํšจ์œจ์ ์ด๋‹ค. ์ดˆ๊ธฐ ํ•ธ๋“œ์…ฐ์ดํฌ ํ›„์—๋Š” ์ž‘์€ ๋ฐ์ดํ„ฐ ํ”„๋ ˆ์ž„๋งŒ ์ฃผ๊ณ ๋ฐ›๋Š”๋‹ค. ์›น์†Œ์ผ“ ์—ฐ๊ฒฐ์€ ์ง€์†์ ์ด๋ฉฐ, ์„œ๋ฒ„๋‚˜ ํด๋ผ์ด์–ธํŠธ ์ค‘ ์–ด๋Š ํ•œ์ชฝ์—์„œ ์—ฐ๊ฒฐ์„ ๋Š์„ ๋•Œ๊นŒ์ง€ ์œ ์ง€๋œ๋‹ค์›น์†Œ์ผ“์˜ ๋™์ž‘ ๊ณผ์ • Opening Handshake : ํด๋ผ์ด์–ธํŠธ๊ฐ€ ์›น์†Œ์ผ“ ์—ฐ๊ฒฐ์„ ์š”์ฒญํ•˜๋ฉด ์„œ๋ฒ„์™€ ํ•ธ๋“œ์…ฐ์ดํฌ๋ฅผ ์ˆ˜ํ–‰ํ•œ๋‹ค. ์ด ๊ณผ์ •์—์„œ HTTP ํ”„๋กœํ† ์ฝœ์„ ์—…๊ทธ๋ ˆ์ด๋“œ ํ•œ๋‹ค. Data Transfer : ํ•ธ๋“œ์…ฐ์ดํฌ ํ›„ ์›น์†Œ์ผ“ ํ”„๋กœํ† ์ฝœ๋กœ ๋ฐ์ดํ„ฐ๋ฅผ ์ฃผ๊ณ ..

Web 2024.06.21

redis ์—ฐ๊ฒฐ ์‹œ await ์„ค์ •

1. ๊ฐœ์š”์ด๋ฉ”์ผ ๊ฒ€์ฆ๊ณผ ์‚ฌ์šฉ์ž์˜ ๋ฆฌํ”„๋ ˆ์‰ฌ ํ† ํฐ ์ €์žฅ์„ ์œ„ํ•˜์—ฌ Redis๋ฅผ ์‚ฌ์šฉํ•ด๋ณด๊ธฐ๋กœ ๊ฒฐ์ •ํ•˜์˜€์Šต๋‹ˆ๋‹ค.Redis ์„œ๋ฒ„์™€์˜ ์—ฐ๊ฒฐ ๊ณผ์ •์—์„œ ๋ฐœ์ƒํ–ˆ๋˜ ๋ฌธ์ œ์ ์— ๋Œ€ํ•ด ๋‹ค๋ค„๋ณด๊ฒ ์Šต๋‹ˆ๋‹ค.2. ํŠธ๋Ÿฌ๋ธ”์ŠˆํŒ…2.1 ๋ฐฐ๊ฒฝ 2.2 ๋ฐœ๋‹จ Redis ์„œ๋ฒ„์™€์˜ ์—ฐ๊ฒฐ ์ž‘์—… ์ค‘ ๋ฌธ์ œ๊ฐ€ ๋ฐœ์ƒํ•˜์˜€์Šต๋‹ˆ๋‹ค.Redis์—์„œ ์ œ๊ณตํ•˜๋Š” ํด๋ผ์ด์–ธํŠธ ์—ฐ๊ฒฐ ์ฝ”๋“œ๋ฅผ ์‚ฌ์šฉํ•˜์—ฌ ์—ฐ๊ฒฐ์„ ์‹œ๋„ํ–ˆ์„๋•Œ ์„œ๋ฒ„์™€ ์—ฐ๊ฒฐ์ด ๋˜์ง€ ์•Š๋Š”๋‹ค๋Š”์—๋Ÿฌ๊ฐ€ ๋ฐœ์ƒํ–ˆ์Šต๋‹ˆ๋‹ค. 2.3 ์ „๊ฐœํ„ฐ๋ฏธ๋„๋กœ ํ™•์ธํ•ด๋ณด๋‹ˆ redis๋Š” promise๋ฅผ ๋ฐ˜ํ™˜ํ•˜๊ณ  ์žˆ์—ˆ์Šต๋‹ˆ๋‹ค. 2.4 ์œ„๊ธฐ๋ฌธ์ œ๋ฅผ ํ•ด๊ฒฐํ•˜๊ธฐ ์œ„ํ•ด ํ•จ์ˆ˜๋กœ ํ•œ๋ฒˆ ๋” ๊ฐ์‹ธ async await ํ‚ค์›Œ๋“œ๋ฅผ ๋„ฃ์–ด์ฃผ์—ˆ์ง€๋งŒ ํ•ด๊ฒฐ๋˜์ง€ ์•Š์•˜์Šต๋‹ˆ๋‹ค. 2.5 ์ ˆ์ • async๋ฅผ ์ง€์›Œ๋ณด๊ณ  await๋งŒ์„ ์‚ฌ์šฉํ–ˆ์„ ๋•Œ ์„œ๋ฒ„์™€ ์ •์ƒ์ ์œผ๋กœ ์—ฐ๊ฒฐ์ด ์ด์–ด์กŒ์Šต๋‹ˆ๋‹ค. 2.6 ๊ฒฐ๋งํŠœํ„ฐ๋‹˜๊ป˜์„œ ์•Œ๋ ค..

Web 2024.06.20

Redis๋ž€ ?

Redis๋Š” ์˜คํ”ˆ์†Œ์Šค ์ธ๋ฉ”๋ชจ๋ฆฌ ํ‚ค-๊ฐ’ ๋ฐ์ดํ„ฐ ์ €์žฅ์†Œ๋ฅผ ๋œปํ•œ๋‹ค. Redis์˜ ์ •์˜ ์›๊ฒฉ ์‚ฌ์ „ ์„œ๋ฒ„(Remote Dicionary Server)์˜ ์•ฝ์ž์ด๋‹ค.ํ‚ค-๊ฐ’ ๊ตฌ์กฐ ์™ธ์—๋„ ๋ฆฌ์ŠคํŠธ, ์…‹, ์ •๋ ฌ ์…‹, ํ•ด์‹œ ๋“ฑ ๋‹ค์–‘ํ•œ ๋ฐ์ดํ„ฐ ๊ตฌ์กฐ๋ฅผ ์ง€์›ํ•œ๋‹ค. ๋ชจ๋“  ๋ฐ์ดํ„ฐ๋ฅผ ๋ฉ”๋ชจ๋ฆฌ์— ์ €์žฅํ•˜๋ฏ€๋กœ ๋””์Šคํฌ ๊ธฐ๋ฐ˜ ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค๋ณด๋‹ค ์ฝ๊ธฐ ์†๋„๊ฐ€ ๋งค์šฐ ๋น ๋ฅด๋‹ค.๋‹จ์ผ ์Šค๋ ˆ๋“œ ์ด๋ฒคํŠธ ๋ฃจํ”„ ๋ชจ๋ธ๋กœ ๋™์ž‘ํ•˜์—ฌ ํšจ์œจ์ ์ด๋‹ค.Redis์˜ ์ฃผ์š” ์šฉ๋„์บ์‹ฑ: ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค์—์„œ ์ž์ฃผ ์‚ฌ์šฉ๋˜๋Š” ๋ฐ์ดํ„ฐ๋ฅผ ๋ฉ”๋ชจ๋ฆฌ์— ์บ์‹ฑํ•˜์—ฌ ์‘๋‹ต ์†๋„๋ฅผ ๋†’์ธ๋‹ค. ์„ธ์…˜ ๊ด€๋ฆฌ: ์›น ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜์˜ ์‚ฌ์šฉ์ž ์„ธ์…˜ ์ •๋ณด๋ฅผ ์ €์žฅํ•œ๋‹ค.๋ฉ”์‹œ์ง• ๋ธŒ๋กœ์ปค: Pub/Sub ๊ธฐ๋Šฅ์„ ํ†ตํ•ด ๋ฉ”์‹œ์ง€ ํ ์‹œ์Šคํ…œ์œผ๋กœ ์‚ฌ์šฉํ•  ์ˆ˜ ์žˆ๋‹ค.Redis์˜ ํŠน์ง• ๋ฉ”๋ชจ๋ฆฌ ๊ธฐ๋ฐ˜์ด๋ฏ€๋กœ ๋””์Šคํฌ I/O ์—†์ด ๋ฐ์ดํ„ฐ์— ๋น ๋ฅด๊ฒŒ ์ ‘๊ทผํ•  ์ˆ˜ ์žˆ๋‹ค...

Web 2024.06.19