๋ณธ๋ฌธ ๋ฐ”๋กœ๊ฐ€๊ธฐ
728x90
๋ฐ˜์‘ํ˜•

Protocol5

[WWDC 2022] Swift๋กœ ํ”„๋กœํ† ์ฝœ ์ธํ„ฐํŽ˜์ด์Šค ์„ค๊ณ„ํ•˜๊ธฐ (Design protocol interface in Swift) ์•ˆ๋…•ํ•˜์„ธ์š” Foma ์ž…๋‹ˆ๋‹ค! ์˜ค๋Š˜์€ ์ €๋ฒˆ ๊ธ€์ธ Embrace Swift Generics์—์„œ ๊ณ„์† ์–ธ๊ธ‰ํ•˜๋˜ Design protocol interface in Swift ์„ธ์…˜์— ๋Œ€ํ•ด์„œ ๋‹ค๋ค„๋ณด๋ ค๊ณ  ํ•ฉ๋‹ˆ๋‹ค! (์ €๋ฒˆ ๊ธ€๊ณผ ๋งŽ์ด ์—ฐ๊ด€๋˜์–ด ์žˆ์œผ๋‹ˆ ์•ˆ๋ณด์‹  ๋ถ„๋“ค์€ ๊ผญ ์—ฌ๊ธฐ ์—์„œ ๋ณด๊ณ  ์™€์ฃผ์„ธ์š”!) ๋ฐ”๋กœ ์‹œ์ž‘ํ• ๊ฒŒ์š”~ Understand type erasure ๊ฐ€์žฅ ๋จผ์ € ํƒ€์ž… ์ด๋ ˆ์ด์ ธ์— ๋Œ€ํ•ด์„œ ์•Œ์•„๋ณด๋„๋ก ํ•˜๊ฒ ์Šต๋‹ˆ๋‹ค. (erasure๋ฅผ ์ •ํ™•ํžˆ ์–ด๋–ป๊ฒŒ ํ•ด์„ํ•ด์•ผ ํ• ์ง€ ๋ชจ๋ฅด๊ฒ ๋„ค์š”.. ์‚ญ์ œ? ์ง€์›€?) ๊ฐ€์žฅ ๋จผ์ € ๋™๋ฌผ ํ”„๋กœํ† ์ฝœ์„ ์‚ดํŽด๋ณด๋„๋ก ํ•˜๊ฒ ์Šต๋‹ˆ๋‹ค. ๋™๋ฌผ ํ”„๋กœํ† ์ฝœ์€ associatedtype์œผ๋กœ ๋จน์ดํƒ€์ž…๊ณผ ์ƒ์‚ฐํ’ˆํƒ€์ž…์ด ์žˆ๊ณ , ๋ฉ”์„œ๋“œ๋กœ ๋จน์ดํƒ€์ž…์„ ํŒŒ๋ผ๋ฏธํ„ฐ๋กœ ๋ฐ›๋Š” eat, ์ƒ์‚ฐํ’ˆ ํƒ€์ž…์„ ๋ฐ˜ํ™˜ํ•˜๋Š” produce ๋ฉ”์„œ๋“œ๊ฐ€ ์žˆ์Šต๋‹ˆ๋‹ค. pro.. 2022. 7. 11.
[WWDC 2022] ์ œ๋„ˆ๋ฆญ๊ณผ ํ”„๋กœํ† ์ฝœ์„ ์‚ฌ์šฉํ•ด ์ฝ”๋“œ ์ถ”์ƒํ™”ํ•˜๊ธฐ (feat. some,any) (Embrace Swift generics) ์•ˆ๋…•ํ•˜์„ธ์š” Foma ์ž…๋‹ˆ๋‹ค! ์˜ค๋Š˜์€ WWDC 2022์—์„œ ์ œ๋„ˆ๋ฆญ๊ณผ ํ”„๋กœํ† ์ฝœ์„ ์‚ฌ์šฉํ•˜์—ฌ ์ •์„(?)์œผ๋กœ ์ฝ”๋“œ๋ฅผ ์ถ”์ƒํ™”ํ•˜๋Š” ๋ฐฉ๋ฒ•์— ๋Œ€ํ•ด ๋‹ค๋ฃฌ Embrace Swift generics ์„ธ์…˜์— ๋Œ€ํ•ด ์ •๋ฆฌํ•ด ๋ณด๋ ค๊ณ  ํ•ฉ๋‹ˆ๋‹ค. ๋ฐ”๋กœ ์‹œ์ž‘ํ• ๊ฒŒ์š”~ (์ œ ๋ฐฉ์‹๋Œ€๋กœ ํ•ด์„ํ•˜์—ฌ ์ •๋ฆฌํ•˜๋Š” ๊ฒƒ์ด๋‹ˆ ํ‹€๋ฆฐ ์ ์ด๋‚˜ ๊ถ๊ธˆํ•œ ์ ์ด ์žˆ๋‹ค๋ฉด ์–ธ์ œ๋“  ๋Œ“๊ธ€๋กœ ์•Œ๋ ค์ฃผ์„ธ์š”!) Model with concrete types ๊ฐ€์žฅ ๋จผ์ € ์–ด๋– ํ•œ ๊ฒƒ๋„ ์ถ”์ƒํ™”๋‚˜ ์ œ๋„ˆ๋ฆญ์„ ์‚ฌ์šฉํ•˜์ง€ ์•Š๊ณ  ์žˆ๋Š” ๊ทธ๋Œ€๋กœ ์ฆ‰, ๊ตฌ์ฒด์ ์ธ ํƒ€์ž…์„ ์ด์šฉํ•ด์„œ ๋†์žฅ ์‹œ์Šคํ…œ์„ ๊ตฌํ˜„ํ•ด ๋ณด๊ฒ ์Šต๋‹ˆ๋‹ค. ๋†์žฅ์— ์†Œ๊ฐ€ ์žˆ๋‹ค๊ณ  ๊ฐ€์ •ํ•˜๊ณ , ๊ทธ ์†Œ๋Š” ๊ฑด์ดˆ(Hay)๋ฅผ ๋จน๋Š” struct๋ฅผ ์ƒ์„ฑํ•ด ์ฃผ๊ฒ ์Šต๋‹ˆ๋‹ค. struct Cow { func eat(_ food:Hay) {...} } ์ด์ œ ์†Œ๊ฐ€ ๋จน๋Š” ๊ฑด์ดˆ๋Š” ์ž๋ผ๋ฉด ์•Œ.. 2022. 7. 10.
[Network] Port๋ž€? (feat. Protocol) (What is a Port?) Port๋ž€? Port๋Š” ์‚ฌ์ „์ ์ธ ์˜๋ฏธ๋กœ "ํ•ญ๊ตฌ"๋ผ๋Š” ๋œป์ด๋‹ค. ํ•ญ๊ตฌ๋Š” ๋ฐฐ๊ฐ€ ์ •์ฐฉํ•˜๊ณ  ์ถœ๋ฐœํ•˜๋Š” ๊ณต๊ฐ„์„ ์˜๋ฏธํ•œ๋‹ค. ์ปดํ“จํ„ฐ ๊ณผํ•™์—์„œ๋„ Port๋Š” ๋น„์Šทํ•œ ์˜๋ฏธ๋กœ ์‚ฌ์šฉ๋˜๋Š”๋ฐ ํŠน์ • ์„œ๋ฒ„์— ์ ‘์†ํ•˜๊ธฐ ์œ„ํ•œ ๊ณต๊ฐ„์œผ๋กœ ์‚ฌ์šฉ๋˜๋ฉฐ ํ†ต์‹ ํ•˜๊ธฐ ์œ„ํ•œ ์ข…๋‹จ์  ์—ญํ• ์„ ํ•œ๋‹ค. ํ•˜๋“œ์›จ์–ด์ ์ธ ์˜๋ฏธ๋กœ๋Š” ํ†ต์‹  ์žฅ๋น„๋ฅผ ์—ฐ๊ฒฐํ•˜๊ธฐ ์œ„ํ•œ ์—ฐ๊ฒฐ๋‹จ์ด๊ณ , ์†Œํ”„ํŠธ์›จ์–ด์ ์ธ ์˜๋ฏธ๋กœ๋Š” ๋„คํŠธ์›Œํฌ ์„œ๋น„์Šค๋ฅผ ์‹๋ณ„ํ•˜๋Š” ๋…ผ๋ฆฌ์  ๋‹จ์œ„๋ฅผ ์˜๋ฏธํ•œ๋‹ค. ์กฐ๊ธˆ ์‰ฝ๊ฒŒ ๋งํ•˜๋ฉด ์‹ค์ œ๋กœ ๋ฐฐ๊ฐ€ ๋ฌผ๊ฑด์„ ์‹ค์–ด๋‚˜๋ฅด๋Š” ์žฅ์†Œ๋ฅผ ํ•ญ๊ตฌ๊ฐ€ ์•Œ๋ ค์ฃผ๋Š” ๊ฒƒ๊ณผ ๊ฐ™์ด ๋ฌผ๊ฑด ๋Œ€์‹  ๋ฐ์ดํ„ฐ๋ฅผ ๋„คํŠธ์›Œํฌ ์ƒ์—์„œ ์ฃผ๊ณ  ๋ฐ›๋Š” ๊ณต๊ฐ„๊ณผ๋„ ๊ฐ™๋‹ค. Port๊ฐ€ ํ•„์š”ํ•œ ์ด์œ  ๊ทธ๋Ÿฐ๋ฐ ๋ฌธ๋“ "IP์™€ URL ์ฃผ์†Œ๋งŒ์œผ๋กœ ์ถฉ๋ถ„ํžˆ ์–ด๋–ค ๊ณณ์—์„œ ๋ฐ์ดํ„ฐ๋ฅผ ์ฃผ๊ณ  ๋ฐ›์„์ง€ ์•Œ๋ ค์ค„ ์ˆ˜ ์žˆ์ง€ ์•Š์„๊นŒ? ๊ตณ์ด Port๋ฒˆํ˜ธ๊นŒ์ง€ ์ถ”๊ฐ€์ ์œผ๋กœ ๊ฐ€์ ธ์•ผํ•  ์ด์œ ๋Š” ๋ฌด์—‡์ผ๊นŒ?".. 2022. 4. 29.
[Network] TCP์™€ UDP์˜ ์ฐจ์ด (Difference between TCP and UDP) TCP์™€ UDP ๊ณตํ†ต์  ์ด์ „ ๊ธ€์—์„œ 'OSI 7 ๊ณ„์ธต์ด๋ž€?' ์—์„œ OSI 7๊ณ„์ธต์„ 'ํ”„๋กœํ† ์ฝœ์ด๋ž€?' ์—์„œ ํ”„๋กœํ† ์ฝœ์— ๋Œ€ํ•ด ๋‹ค๋ฃจ๋ฉด์„œ ๋ชจ๋‘ TCP์™€ UDP๋ฅผ ์–ธ๊ธ‰ํ–ˆ์—ˆ๋‹ค. ๋‹จ์ˆœํ•˜๊ฒŒ ์งš๊ณ  ๋„˜์–ด๊ฐ€๊ธฐ์—” ์ค‘์š”๋„๊ฐ€ ํฐ ๊ฒƒ ๊ฐ™์•„์„œ ๋” ์ž์„ธํžˆ ์ •๋ฆฌํ•ด๋ณด๋ ค๊ณ  ํ•œ๋‹ค. ์ฐจ์ด์ ์„ ์•Œ์•„๋ณด๊ธฐ ์ „์— ๋จผ์ € ๊ณตํ†ต์ ์— ๋Œ€ํ•ด ์•Œ์•„๋ณด์ž. TCP์™€ UDP๋Š” ๋ชจ๋‘ Transport(์ „์†ก) ๊ณ„์ธต์— ์žˆ๋Š” ํ”„๋กœํ† ์ฝœ์„ ์˜๋ฏธํ•œ๋‹ค. ๊ณ ๋กœ Network ๊ณ„์ธต์— ์žˆ๋Š” IP ์ฃผ์†Œ์™€ ํ•จ๊ป˜ ์ „์†ก๋œ ํŒจํ‚ท ๋ฐ์ดํ„ฐ๋ฅผ ์„ธ๊ทธ๋จผํŠธ๋กœ Session ๊ณ„์ธต์— ์ „๋‹ฌํ•˜๋Š” ์—ญํ• ์„ ํ•œ๋‹ค. TCP์™€ UDP์˜ ์ฐจ์ด 1. ์—ฐ๊ฒฐ์„ฑ TCP๋Š” ์•ˆ์ „ํ•œ ๋ฐ์ดํ„ฐ๋ฅผ ๋ณด๋‚ด๊ธฐ ์œ„ํ•ด ๋ฐ์ดํ„ฐ๋ฅผ ๋ณด๋‚ด๋Š” ์ชฝ๊ณผ ๋ฐ์ดํ„ฐ๋ฅผ ๋ฐ›๋Š” ์ชฝ์„ ์—ฐ๊ฒฐํ•˜์—ฌ ๋ฐ์ดํ„ฐ๋ฅผ ์ „์†กํ•œ๋‹ค. UDP๋Š” ๋น ๋ฅด๊ฒŒ ๋ฐ์ดํ„ฐ๋ฅผ ๋ณด๋‚ด๊ธฐ ์œ„ํ•ด ๋ฐ์ดํ„ฐ๋ฅผ ๋ณด๋‚ด๋Š” ์ชฝ์ด ์ผ.. 2022. 4. 7.
[Network] ํ”„๋กœํ† ์ฝœ(Protocol)์ด๋ž€? (What is a protocol?) Protocol ๐Ÿ“ƒ Protocol์˜ ์‚ฌ์ „์  ์˜๋ฏธ๋Š” "์—ฌ๋Ÿฌ ์ปดํ“จํ„ฐ๋‚˜ ๋‹จ๋ง๊ธฐ ์‚ฌ์ด์—์„œ ๋ฐ์ดํ„ฐ ํ†ต์‹ ์„ ์›ํ™œํ•˜๊ฒŒ ํ•˜๊ธฐ ์œ„ํ•ด ํ•„์š”ํ•œ ํ†ต์‹  ๊ทœ์•ฝ" ์ด๋‹ค. ์ฆ‰, ํ†ต์‹  ํ”„๋กœํ† ์ฝœ์ด ๋ฐ”๋กœ ํ”„๋กœํ† ์ฝœ๊ณผ ๊ฐ™์€ ์˜๋ฏธ์ด๋‹ค. ํ†ต์‹  ํ”„๋กœํ† ์ฝœ์€ ์‰ฝ๊ฒŒ ๋งํ•ด ํ†ต์‹ ์„ ํ•˜๊ธฐ ์œ„ํ•œ ์•ฝ์†์ด๋ผ๊ณ  ์ดํ•ดํ•˜๋ฉด ๋œ๋‹ค. ๊ตฌ์„ฑ ๐Ÿ”— ํ”„๋กœํ† ์ฝœ์€ ๋ฌผ๋ฆฌ์  ์ธก๋ฉด๊ณผ ๋…ผ๋ฆฌ์  ์ธก๋ฉด ์ด๋ ‡๊ฒŒ 2๊ฐ€์ง€๋กœ ์ด๋ฃจ์–ด์ ธ ์žˆ๋‹ค. ๋ฌผ๋ฆฌ์  ์ธก๋ฉด ๋ฌผ๋ฆฌ์  ์ธก๋ฉด์€ ๋ง ๊ทธ๋Œ€๋กœ ๋ฌผ๋ฆฌ์ ์ธ ๊ธฐ๊ธฐ์˜ ์–ด๋–ค ๊ฒƒ์„ ์˜๋ฏธํ•œ๋‹ค. ์‹ค์ œ ์–ด๋–ค ์žฅ๋น„๋กœ ๋ฐ์ดํ„ฐ๋ฅผ ๋ณด๋‚ผ ๊ฒƒ์ด๋ฉฐ, ์–ด๋–ค ๋‹จ์ž๋ฅผ ์‚ฌ์šฉํ•  ๊ฒƒ์ด๋ฉฐ, ํšŒ์„ ์˜ ๊ทœ๊ฒฉ์€ ์–ด๋А ์ •๋„๋กœ ์„ค์ •ํ• ์ง€๊ฐ€ ์—ฌ๊ธฐ์— ํฌํ•จ๋œ๋‹ค. ๋…ผ๋ฆฌ์  ์ธก๋ฉด ๋…ผ๋ฆฌ์  ์ธก๋ฉด์€ ๋ฌผ๋ฆฌ์ ์ธ ๊ฒƒ์ด ์•„๋‹Œ ๋ฐ์ดํ„ฐ๋ฅผ ๋ณด๋‚ผ ๋•Œ ๋…ผ๋ฆฌ์ ์ธ ๋ฐฉ์‹์„ ์˜๋ฏธํ•œ๋‹ค. ๋ฐ์ดํ„ฐ๋ฅผ ์–ด๋–ค ์‹์œผ๋กœ ํ‘œํ˜„ํ•  ๊ฒƒ์ด๋ฉฐ, ์–ด๋–ค ํ˜•์‹ ๋‹จ์œ„๋กœ ๋ฐ์ดํ„ฐ๋ฅผ ์ „์†กํ•  .. 2022. 4. 6.
728x90
๋ฐ˜์‘ํ˜•