์ „์ฒด ๊ธ€ 60

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

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

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

Web 2024.06.17

TDD ํ…Œ์ŠคํŠธ ์ฃผ๋„ ๊ฐœ๋ฐœ

TDD๋ž€?TDD๋Š” ์†Œํ”„ํŠธ์›จ์–ด ๊ฐœ๋ฐœ ๋ฐฉ๋ฒ•๋ก  ์ค‘ ํ•˜๋‚˜๋กœ, ํ…Œ์ŠคํŠธ ์ผ€์ด์Šค๋ฅผ ๋จผ์ € ์ž‘์„ฑํ•œ ํ›„ ๊ทธ ํ…Œ์ŠคํŠธ๋ฅผ ํ†ต๊ณผํ•˜๋Š” ์‹ค์ œ ์ฝ”๋“œ๋ฅผ ๊ตฌํ˜„ํ•˜๋Š” ๋ฐ˜๋ณต์ ์ธ ๊ฐœ๋ฐœ ํ”„๋กœ์„ธ๋ฅด๋ฅผ ๋งํ•œ๋‹ค.  TDD ํ”„๋กœ์„ธ์Šค TDD๋Š” ๋‹ค์Œ๊ณผ ๊ฐ™์€ ๋ฐ˜๋ณต์ ์ธ ๋‹จ๊ณ„๋กœ ์ง„ํ–‰๋œ๋‹ค. Red - ์‹คํŒจํ•˜๋Š” ํ…Œ์ŠคํŠธ ์ผ€์ด์Šค๋ฅผ ์ž‘์„ฑํ•œ๋‹ค. Green - ๊ฐ€๋Šฅํ•œ ๋น ๋ฅด๊ฒŒ ํ…Œ์ŠคํŠธ๋ฅผ ํ†ต๊ณผํ•˜๋Š” ์ตœ์†Œํ•œ์˜ ์ฝ”๋“œ๋ฅผ ์ž‘์„ฑํ•œ๋‹ค. Refactor - ์ฝ”๋“œ๋ฅผ ๋ฆฌํŒฉํ† ๋งํ•˜์—ฌ ์ค‘๋ณต์„ ์ œ๊ฑฐํ•˜๊ณ  ๊ฐ€๋…์„ฑ์„ ๋†’์ธ๋‹ค.์ด ๊ณผ์ •์„ ๋ฐ˜๋ณตํ•˜์—ฌ ์ ์ง„์ ์œผ๋กœ ๊ธฐ๋Šฅ์„ ๊ตฌํ˜„ํ•ด ๋‚˜๊ฐ„๋‹ค.  TDD์˜ ์žฅ์  ๋†’์€ ์ฝ”๋“œ ํ’ˆ์งˆ - ํ…Œ์ŠคํŠธ ์ผ€์ด์Šค ๊ธฐ๋ฐ˜์œผ๋กœ ๊ฐœ๋ฐœํ•˜๋ฏ€๋กœ ๋ฒ„๊ทธ๊ฐ€ ์ ๊ณ  ์œ ์ง€๋ณด์ˆ˜์„ฑ์ด ๋†’์•„์ง„๋‹ค. ์ž์‹ ๊ฐ ์žˆ๋Š” ๋ฆฌํŒฉํ† ๋ง - ํ…Œ์ŠคํŠธ ์ผ€์ด์Šค๊ฐ€ ์กด์žฌํ•˜๋ฏ€๋กœ ์ฝ”๋“œ ๋ณ€๊ฒฝ ์‹œ ์•ˆ์ „์„ฑ์ด ๋†’์•„์ง‘๋‹ˆ๋‹ค. ๋ช…ํ™•ํ•œ ์š”๊ตฌ์‚ฌํ•ญ ์ •์˜ - ํ…Œ์ŠคํŠธ ์ผ€์ด์Šค๋ฅผ ๋จผ์ €..

Web 2024.06.15

3๊ณ„์ธต ๋ ˆ์ด์–ด๋ž€

3๊ณ„์ธต ์•„ํ‚คํ…์ฒ˜๋Š” ์†Œํ”„ํŠธ์›จ์–ด ์‹œ์Šคํ…œ์„ ํ”„๋ ˆ์  ํ…Œ์ด์…˜ ๊ณ„์ธต, ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜ ๊ณ„์ธต, ๋ฐ์ดํ„ฐ ๊ณ„์ธต์œผ๋กœ ๋…ผ๋ฆฌ์ ์œผ๋กœ ๋ถ„๋ฆฌํ•˜๋Š” ์•„ํ‚คํ…์ฒ˜ ํŒจํ„ด์ด๋‹ค.  ํ”„๋ ˆ์  ํ…Œ์ด์…˜ ๊ณ„์ธต ์‚ฌ์šฉ์ž ์ธํ„ฐํŽ˜์ด์Šค๋ฅผ ์ œ๊ณตํ•˜๋Š” ๊ณ„์ธตํด๋ผ์ด์–ธํŠธ ์ธก์—์„œ ์‹คํ–‰๋˜๋ฉฐ ์‚ฌ์šฉ์ž์™€ ์ƒํ˜ธ์ž‘์šฉํ•œ๋‹ค. ์›น ๋ธŒ๋ผ์šฐ์ €, ๋ชจ๋ฐ”์ผ ์•ฑ ๋“ฑ์ด ์ด ๊ณ„์ธต์— ํ•ด๋‹นํ•œ๋‹ค. ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜ ๊ณ„์ธต ๋น„์ฆˆ๋‹ˆ์Šค ๋กœ์ง์„ ์ฒ˜๋ฆฌํ•˜๋Š” ๊ณ„์ธตํ”„๋ ˆ์  ํ…Œ์ด์…˜ ๊ณ„์ธต์˜ ์š”์ฒญ์„ ๋ฐ›์•„ ํ•„์š”ํ•œ ๋ฐ์ดํ„ฐ๋ฅผ ๋ฐ์ดํ„ฐ ๊ณ„์ธต์—์„œ ๊ฐ€์ ธ์™€ ์ฒ˜๋ฆฌํ•œ๋‹ค. ๋ฐ์ดํ„ฐ ๊ณ„์ธต ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค๋‚˜ ํŒŒ์ผ ์‹œ์Šคํ…œ ๋“ฑ ๋ฐ์ดํ„ฐ๋ฅผ ์˜๊ตฌ์ ์œผ๋กœ ์ €์žฅํ•˜๋Š” ๊ณ„์ธต์• ํ”Œ๋ฆฌ์ผ€์ด์…˜ ๊ณ„์ธต์˜ ์š”์ฒญ์— ๋”ฐ๋ผ ๋ฐ์ดํ„ฐ๋ฅผ ์ œ๊ณตํ•˜๊ฑฐ๋‚˜ ์ˆ˜์ •ํ•œ๋‹ค. 3๊ณ„์ธต ์•„ํ‚คํ…์ฒ˜๋Š” ๊ฐ ๊ณ„์ธต์„ ๋ถ„๋ฆฌํ•˜์—ฌ ๊ฐœ๋ฐœํ•˜๊ณ  ์œ ์ง€๋ณด์ˆ˜ํ•  ์ˆ˜ ์žˆ์–ด ์‹œ์Šคํ…œ์˜ ํ™•์žฅ์„ฑ๊ณผ ์œ ์—ฐ์„ฑ์„ ๋†’์ผ ์ˆ˜ ์žˆ๋Š” ์žฅ์ ์ด ์žˆ๋‹ค.

Web 2024.06.14

๋นˆ์•ฝํ•œ ๋„๋ฉ”์ธ ๋ชจ๋ธ

๋นˆ์•ฝํ•œ ๋„๋ฉ”์ธ ๋ชจ๋ธ์€ ๋„๋ฉ”์ธ ๊ฐ์ฒด์— ๋น„์ฆˆ๋‹ˆ์Šค ๋กœ์ง์ด ๊ฑฐ์˜ ์—†๊ณ  ๋‹จ์ˆœํ•œ ๋ฐ์ดํ„ฐ ๊ฒŒํ„ฐ/์„ธํ„ฐ ๋ฉ”์„œ๋“œ๋งŒ ์กด์žฌํ•˜๋Š” ์•ˆํ‹ฐํŒจํ„ด์„ ๋งํ•œ๋‹ค.๋Œ€์‹  ๋Œ€๋ถ€๋ถ„์˜ ๋น„์ฆˆ๋‹ˆ์Šค ๋กœ์ง์ด ์„œ๋น„์Šค ๊ณ„์ธต์— ๊ตฌํ˜„๋˜์–ด ์žˆ๋‹ค. ๋นˆ์•ฝํ•œ ๋„๋ฉ”์ธ ๋ชจ๋ธ์˜ ํŠน์ง• ๋„๋ฉ”์ธ ๊ฐ์ฒด๋Š” ๋‹จ์ˆœํ•œ ๋ฐ์ดํ„ฐ ์ปจํ…Œ์ด๋„ˆ ์—ญํ• ๋งŒ์„ ๋‹ด๋‹น.๋น„์ฆˆ๋‹ˆ์Šค ๋กœ์ง์€ ์„œ๋น„์Šค ๊ณ„์ธต์— ์ง‘์ค‘๊ฐ์ฒด์ง€ํ–ฅ ์„ค๊ณ„ ์›๋ฆฌ๋ฅผ ์œ„๋ฐ˜ํ•˜๋ฉฐ ์ ˆ์ฐจ์  ์ฝ”๋“œ ์Šคํƒ€์ผ๋„๋ฉ”์ธ ๊ฐ์ฒด๊ฐ€ ๋ฌด์˜๋ฏธํ•ด์ง€๊ณ  ๋„๋ฉ”์ธ ์ง€์‹์ด ์„œ๋น„์Šค ๊ณ„์ธต์— ์„ž์—ฌ์žˆ๋‹ค. ๋นˆ์•ฝํ•œ ๋„๋ฉ”์ธ ๋ชจ๋ธ์˜ ๋‹จ์  ๋„๋ฉ”์ธ ๊ฐ์ฒด์˜ ๋ฌด๊ฒฐ์„ฑ๊ณผ ๋ถˆ๋ณ€์„ฑ์„ ๋ณด์žฅํ•˜๊ธฐ ์–ด๋ ค์›€๋„๋ฉ”์ธ ๋กœ์ง ๋ณ€๊ฒฝ ์‹œ ์„œ๋น„์Šค ๊ณ„์ธต์˜ ๋ณ€๊ฒฝ์ด ๋ถˆ๊ฐ€ํ”ผ๊ฐ์ฒด์ง€ํ–ฅ ์„ค๊ณ„ ์›๋ฆฌ๋ฅผ ์œ„๋ฐ˜ํ•˜์—ฌ ์œ ์ง€๋ณด์ˆ˜์„ฑ์ด ๋–จ์–ด์ง„๋‹ค.๋„๋ฉ”์ธ ์ง€์‹์ด ์„œ๋น„์Šค ๊ณ„์ธต์— ์„ž์—ฌ ์ดํ•ดํ•˜๊ธฐ ์–ด๋ ค์›€๋”ฐ๋ผ์„œ ๋„๋ฉ”์ธ ๋ชจ๋ธ์— ์ถฉ๋ถ„ํ•œ ๋น„์ฆˆ๋‹ˆ์Šค ๋กœ์ง์„ ํฌํ•จํ•˜๋Š” ํ’๋ถ€ํ•œ ๋„๋ฉ”์ธ ๋ชจ๋ธ์„ ์‚ฌ์šฉ..

Web 2024.06.12

SOLID ์›์น™

SOLID ์›์น™์€ ๊ฐ์ฒด ์ง€ํ–ฅ ํ”„๋กœ๊ทธ๋ž˜๋ฐ ๋ฐ ์„ค๊ณ„์˜ 5๊ฐ€์ง€ ๊ธฐ๋ณธ ์›์น™์œผ๋กœ,์‹œ๊ฐ„์ด ์ง€๋‚˜๋„ ์œ ์ง€ ๋ณด์ˆ˜์™€ ํ™•์žฅ์ด ์‰ฌ์šด ์‹œ์Šคํ…œ์„ ๋งŒ๋“ค๊ธฐ ์œ„ํ•ด ์ ์šฉ๋œ๋‹ค.  ๋‹จ์ผ ์ฑ…์ž„ ์›์น™ (Single Responsibility Principle)ํ•œ ํด๋ž˜์Šค๋Š” ํ•˜๋‚˜์˜ ์ฑ…์ž„๋งŒ์„ ๊ฐ€์ ธ์•ผ ํ•˜๋ฉฐ, ํด๋ž˜์Šค๋ฅผ ๋ณ€๊ฒฝํ•˜๋Š” ์ด์œ ๋Š” ํ•˜๋‚˜์—ฌ์•ผ ํ•œ๋‹ค.  ๊ฐœ๋ฐฉ-ํ์‡„ ์›์น™ (Open/Closed Principle)์†Œํ”„ํŠธ์›จ์–ด ์—”ํ‹ฐํ‹ฐ ๋˜๋Š” ๊ฐœ์ฒด(ํด๋ž˜์Šค,๋ชจ๋“ˆ,ํ•จ์ˆ˜)๋Š” ํ™•์žฅ์—๋Š” ์—ด๋ ค์žˆ์œผ๋‚˜ ๋ณ€๊ฒฝ์—๋Š” ๋‹ซํ˜€ ์žˆ์–ด์•ผํ•œ๋‹ค. ์ฆ‰ ๊ธฐ๋Šฅ์„ ์ถ”๊ฐ€ํ•  ๋•Œ๋Š” ๊ธฐ์กด ์ฝ”๋“œ๋ฅผ ๋ณ€๊ฒฝํ•˜์ง€ ์•Š๊ณ  ์ƒˆ๋กœ์šด ์ฝ”๋“œ๋ฅผ ์ž‘์„ฑํ•ด์•ผ ํ•œ๋‹ค. ๋ฆฌ์Šค์ฝ”ํ”„ ์น˜ํ™˜ ์›์น™ (Liskov Substitution Principle)ํ”„๋กœ๊ทธ๋žจ์˜ ๊ฐ์ฒด๋Š” ํ”„๋กœ๊ทธ๋žจ์˜ ์ •ํ™•์„ฑ์„ ๊นจ๋œจ๋ฆฌ์ง€ ์•Š๊ณ  ์ƒ์œ„ ํƒ€์ž…์˜ ์ธ์Šคํ„ด์Šค๋กœ ๋ฐ”๊ฟ€ ์ˆ˜ ์žˆ์–ด์•ผ ํ•œ๋‹ค...

Web 2024.06.11