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. ์ด์ 1 ๋ค์ 728x90 ๋ฐ์ํ