๋ถ๋ฅ ์ ์ฒด๋ณด๊ธฐ51 [GoF ๋์์ธ ํจํด] - ํฉํ ๋ฆฌ ๋ฉ์๋ ํจํด ๋ชจ๋ ์ฝ๋๋ Swift๋ก ์์ฑ๋์์ต๋๋ค. ์์ฑ ํจํด์์ฑ ํจํด์ด๋ GoF ๋์์ธ ํจํด ์ค ๊ฐ์ฒด๋ฅผ ์์ฑํ๋ ์ ์ฐจ๋ฅผ ์ถ์ํํ๋ 5๊ฐ์ง ๋์์ธ ํจํด์ ๋ถ๋ฅํ ๊ฒ์ ์ผ์ปซ๋ ์ฉ์ด์ด๋ค. ์์ฑ ํจํด์ ํ๋์ ๊ฐ์ฒด ์งํฅ ํ๋ก๊ทธ๋๋ฐ์ด ์์๋ณด๋ค ์ปดํฌ์ง์ ์ ์ฌ์ฉํ๋ ๋ฐฉํฅ์ผ๋ก ์งํํ๋ฉด์ ๋์ฑ ์ค์ํด์ง๊ณ ์๋ค. (์ค์ ๋ก ๊ตฌ๊ธ์์ ๊ฐ๋ฐํ ํ๋ก๊ทธ๋๋ฐ ์ธ์ด์ธ Golang ์ ์์ ์์์ด๋ ๊ฐ๋ ์ด ์กด์ฌํ์ง ์๋๋ค.) ๐ ์์๊ณผ ์ปดํฌ์ง์ ์์์ Animal - Cat, Dog ํน์ Man - Son, Husband, BoyFriend์ ๊ฐ์ด IS-A ๊ด๊ณ์ผ ๋ ๊ฐ์ฒด์ ๊ธฐ๋ฅ์ ์ฝ๋์ ์ค๋ณต ์์ด ํ์ฅ์ํฌ ์ ์๋ค.์ปดํฌ์ง์ ์ Computer - Monitor, Keyboard, Mouse์ ๊ฐ์ด HAS-A ๊ด๊ณ์ผ ๋ ๊ฐ๊ฐ์ ๊ฐ์ฒด๋ค์ ์กฐํฉ.. 2024. 5. 28. [GoF ๋์์ธ ํจํด] - ๋์์ธ ํจํด์ด๋? ๋ชจ๋ ์ฝ๋๋ Swift๋ก ์์ฑ๋์์ต๋๋ค. ๋์์ธ ํจํด์ด๋?๋์์ธ ํจํด์ด๋ ์ํํธ์จ์ด ์ค๊ณ์ ์์ด์ ๋ฐ๋ณต์ ์ผ๋ก ๋ฐ์ํ๋ ๋ฌธ์ ๋ค์ ํด๊ฒฐํ๋ ๋ฐ ์ฌ์ฉ๋๋ ์ผ์ข ์ ํ ํ๋ฆฟ ํน์ ๊ฐ์ด๋๋ผ์ธ์ด๋ค. ํํ ์ํคํ ์ฒ ํจํด๊ณผ ๋ง์ด ํผ๋ํด์ ์ฉ์ด๋ฅผ ์ฌ์ฉํ๊ณค ํ๋ค.์ํคํ ์ฒ ํจํด์ ์ ํ๋ฆฌ์ผ์ด์ ์ ์ ์ฒด์ ์ธ ๊ตฌ์กฐ์ ์ด์ ์ ๋ง์ถ ํจํด์ด๋ผ๋ฉด ๋์์ธ ํจํด์ ๊ฐ์ฒด๋ค ๊ฐ์ ๊ด๊ณ์ ์ด์ ์ ๋ง์ถ ํจํด์ด๋ผ๋ ์ฐจ์ด์ ์ด ์กด์ฌํ๋ค. GoF ๋์์ธ ํจํดํํ ์ํํธ์จ์ด ๊ณตํ์์ '๋์์ธ ํจํด'์ ๋๋ถ๋ถ GoF(Gang of Four) ๋์์ธ ํจํด์ ์๋ฏธํ๋ค. ์ด๋ค์ ๊ฐ๊ฐ์ ๋ชฉ์ ์ ๋ฐ๋ผ ์์ฑ ํจํด, ๊ตฌ์กฐ ํจํด, ํ์ ํจํด์ผ๋ก ๋ถ๋ฅํ๊ณ ์ด 23๊ฐ์ ํจํด์ผ๋ก ๊ตฌ์ฒดํํ์๋ค. ์ด๋ ๊ฒ๋ ๋ง์ ๋์์ธ ํจํด์ ๊ณต๋ถํ๊ณ ์ฌ์ฉํ๋ ์ด์ ๊ฐ ๋ฌด์์ผ๊น? ์ฒซ์งธ, ์์ฐ์ค๋ฝ๊ฒ ๊ฐ.. 2024. 5. 28. [Swift] ARC ๊ฐํ ์ฐธ์กฐ๋ ๋ฌด์์ด๊ณ ์ ํ์ํ๊ฐ์?๊ฐํ ์ฐธ์กฐ๋ ์ฐธ์กฐ ํ์ ์ธ์คํด์ค์ ์ฐธ์กฐ ๊ณ์๋ฅผ ์ฆ๊ฐ์ํค๋ฉด์ ์ฐธ์กฐํ๋ ๋ฐฉ์์ ๋๋ค. Swift๋ ARC๋ผ๋ ๋ฉ๋ชจ๋ฆฌ ๊ด๋ฆฌ ๋ฐฉ์์ ์ฌ์ฉํ๋๋ฐ, ์ด๋ ์ฐธ์กฐ ๊ณ์๊ฐ 0์ด ๋๋ ์ธ์คํด์ค๋ ๋ฉ๋ชจ๋ฆฌ์์ ํด์ ํ๊ฒ ๋ฉ๋๋ค. ๊ฐํ ์ฐธ์กฐ๊ฐ ์กด์ฌํด์ผ ์ฐธ์กฐ ๊ณ์๊ฐ 0์ด ๋์ง ์์ ๋ฉ๋ชจ๋ฆฌ์์ ํด์ ๋์ง ์๊ณ ์ ์ง์ํฌ ์ ์์ต๋๋ค. strong, weak, unowned reference๋ ๊ฐ๊ฐ ์ธ์ ์ฌ์ฉํ ๊น์?๊ฐํ ์ฐธ์กฐ๋ ์ฐธ์กฐ ๊ณ์๋ฅผ 1 ์ฆ๊ฐ์์ผ ์ฐธ์กฐํ๊ณ ์๋ ์ธ์คํด์ค๋ฅผ ๋ฉ๋ชจ๋ฆฌ์์ ์ ์ง์ํฌ ํ์๊ฐ ์์ ๊ฒฝ์ฐ ์ฌ์ฉํฉ๋๋ค. ์ฝํ ์ฐธ์กฐ๋ ๊ฐํ ์ฐธ์กฐ๋ฅผ ํ ๊ฒฝ์ฐ ๋ฐ์ํ ์ ์๋ ๊ฐํ ์ํ ์ฐธ์กฐ๋ฅผ ๋ฐฉ์งํ๊ธฐ ์ํด ์ฌ์ฉ๋ฉ๋๋ค. ๊ฐํ ์ฐธ์กฐ์ ๋ฌ๋ฆฌ ์ฐธ์กฐ ๊ณ์๋ฅผ ์ฆ๊ฐ์ํค์ง ์๊ณ ์ธ์คํด์ค๋ฅผ ์ฐธ์กฐํฉ๋๋ค. ์ฐธ์กฐํ๊ณ ์๋ .. 2024. 5. 24. [Swift] Extension ์ค์ํํธ์์ Extension์ ์ด๋ป๊ฒ ์ฌ์ฉ๋๋์? Swift์์ Extension์ Class, Struct, Enum, Protocol ํ์ ์ ๋ฉ์๋๋ ํ๋กํผํฐ๋ฅผ ์ถ๊ฐ์ ์ผ๋ก ์ ์ํ๊ธฐ ์ํด ์ฌ์ฉ๋ฉ๋๋ค. Extension ๊ท์น์ ์ ์ฅ ํ๋กํผํฐ๋ ์ถ๊ฐํ ์ ์๊ณ , ์ฐ์ฐ ํ๋กํผํฐ๋ง ์ถ๊ฐ ๊ฐ๋ฅํฉ๋๋ค. ๋ํ, ์๋ฉธ์๋ ์ถ๊ฐํ ์ ์๊ณ , ์์ฑ์๋ convenience init ๋ง ์ ์ํ ์ ์์ต๋๋ค. ๐ ๊ธฐ๋ฅ ํ์ฅ ๊ด์ ์์์ Extension์ฐ๋ฆฌ๊ฐ ํํ ๊ธฐ๋ฅ์ ํ์ฅ์ ํ ๋์๋ ์์์ ์ฌ์ฉํด์ ํ๊ฒ ๋๋๋ฐ, ์ด๋ฌํ ์์ง์ ํ์ฅ์ ๊ฒฐํฉ๋๊ฐ ๋์์ ธ ์์ ํด๋์ค์ ๊ตฌํ์ด๋ ๋ณ๊ฒฝ์ด ํ์ ํด๋์ค์ ์ํฅ์ ๋ผ์น๋ฏ๋ก ์บก์ํ๋ฅผ ํด์น ๊ฐ๋ฅ์ฑ์ด ์์ต๋๋ค. ์๋ ์ฝ๋๋ ์์์ผ๋ก ๊ธฐ๋ฅ ํ์ฅ์ ํ์ ์ ์บก์ํ๋ฅผ ํด์น๋ ์ฝ๋ ์์์ ๋๋ค.. 2024. 5. 20. ์ด์ 1 2 3 4 5 ยทยทยท 13 ๋ค์