๋ณธ๋ฌธ ๋ฐ”๋กœ๊ฐ€๊ธฐ

๐Ÿ“ ๊ธฐ๋ก/TIL

[TIL] 20231121

ํƒ€์ž…, ์ธ์Šคํ„ด์Šค, ๋ฉ”์„œ๋“œ, ํ”„๋กœํผํ‹ฐ

- ํƒ€์ž…: ๊ฐœ์ฒด๋ฅผ ๋Œ€ํ‘œํ•˜๋Š” ํ‘œํ˜„. ๊ฐœ์ฒด์˜ ๊ณต๋™๋œ ํŠน์„ฑ์„ ์ผ๋ฐ˜ํ™”(๋” ๋‚˜์•„๊ฐ€ ์ถ”์ƒํ™”)ํ•˜์—ฌ ํ‘œํ˜„ํ•œ ๊ฒƒ

           Swift์—์„œ ํƒ€์ž…์„ ๋‚˜ํƒ€๋‚ด๋Š” ๋ฐฉ์‹: ๊ตฌ์กฐ์ฒด, ํด๋ž˜์Šค, ์—ด๊ฑฐํ˜•, ํ”„๋กœํ† ์ฝœ

- ์ธ์Šคํ„ด์Šค: ํƒ€์ž…์œผ๋กœ๋ถ€ํ„ฐ ์‹ค์ฒดํ™”๋˜์–ด ๋ฉ”๋ชจ๋ฆฌ์— ํ• ๋‹น๋œ ์‹ค์ฒด (ํด๋ž˜์Šค, ๊ตฌ์กฐ์ฒด, ์—ด๊ฑฐํ˜•์—์„œ ์ƒ์„ฑ๋œ ๊ฐ์ฒด)

- ๋ฉ”์„œ๋“œ: ์ธ์Šคํ„ด์Šค ๋˜๋Š” ํƒ€์ž…์ด ๊ณตํ†ต์ ์œผ๋กœ ํ•  ์ˆ˜ ์žˆ๋Š” ํ–‰์œ„ 

- ํ”„๋กœํผํ‹ฐ: ํด๋ž˜์Šค, ๊ตฌ์กฐ์ฒด, ์—ด๊ฑฐํ˜• ๋“ฑ์— ๊ด€๋ จ๋œ ๊ฐ’

ํด๋กœ์ € vs. ํ•จ์ˆ˜ vs. ๋ฉ”์„œ๋“œ

์ด๋ฆ„ ์„ค๋ช…
ํด๋กœ์ €(Closure) ์ฝ”๋“œ์˜ ๋ธ”๋ก
ํ•จ์ˆ˜(Function) ์ด๋ฆ„์„ ๊ฐ–๋Š” ํด๋กœ์ €๋กœ ํŠน์ • ํƒ€์ž…์— ์—ฐ๊ด€๋˜์ง€ ์•Š๊ณ  ๋ชจ๋“ˆ ์ „์ฒด์—์„œ ์ „์—ญ์ ์œผ๋กœ ์‚ฌ์šฉํ•  ์ˆ˜ ์žˆ๋Š” ์ฝ”๋“œ์˜ ๋ธ”๋ก
๋ฉ”์„œ๋“œ(Method) ํ•จ์ˆ˜ ์ค‘ ๊ตฌ์กฐ์ฒด, ํด๋ž˜์Šค, ์—ด๊ฑฐํ˜• ๋“ฑ ํŠน์ • ํƒ€์ž…์— ์—ฐ๊ด€๋˜์–ด ์‚ฌ์šฉํ•˜๋Š” ํ•จ์ˆ˜

ํด๋กœ์ €, ํ•จ์ˆ˜, ๋ฉ”์„œ๋“œ์˜ ๊ด€๊ณ„

์ผ๋ฐ˜ํ™” vs. ์ถ”์ƒํ™” 

์ผ๋ฐ˜ํ™”

์„œ๋กœ ๋‹ค๋ฅธ ๊ฐœ์ฒด๋“ค๋กœ๋ถ€ํ„ฐ ๊ณตํ†ต๋œ ๊ฐœ๋…์„ ์ถ”์ถœํ•˜๋Š” ๊ฒƒ

์—ฐ๊ด€์„ฑ ์žˆ๋Š” ๋‘ ๊ฐœ ์ด์ƒ์˜ ๊ฐœ์ฒด ์ง‘ํ•ฉ์„ ๋ฌถ์–ด ์ข€ ๋” ์ƒ์œ„์˜ ๊ฐœ์ฒด ์ง‘ํ•ฉ์„ ๋งŒ๋“œ๋Š” ๊ฒƒ

ex) Generic (๋ฐ์ดํ„ฐ ํƒ€์ž…์„ ์ผ๋ฐ˜ํ™”)

     ๋™์ž‘ํ•˜๋Š” ๋…ผ๋ฆฌ๋Š” ๊ฐ™์œผ๋‚˜ ํŠน์ • ํƒ€์ž…๋งŒ ์‚ฌ์šฉ์ด ๊ฐ€๋Šฅํ•œ ๊ฒฝ์šฐ, ์ผ๋ฐ˜ํ™”๋ฅผ ํ†ตํ•ด ์–ด๋–ค ํƒ€์ž…์—๋„ ์œ ์—ฐํ•˜๊ฒŒ ๋Œ€์‘ํ•  ์ˆ˜ ์žˆ์Œ

     ์ฐธ๊ณ ) ์•ผ๊ณฐ๋‹˜๊ณผ ์˜๊ฒฌ์„ ๋‚˜๋ˆ ๋ณธ ๊ฒฐ๊ณผ ์ œ๋„ค๋ฆญ์€ ๋‹คํ˜•์„ฑ ๊ตฌํ˜„์˜ ์˜ˆ์‹œ์— ๋” ๊ฐ€๊นŒ์šด ๊ฒƒ ๊ฐ™๋‹ค! 

์ถ”์ƒํ™”

๋ถˆํ•„์š”ํ•œ ์„ธ๋ถ€ ์‚ฌํ•ญ๋“ค์€ ์ œ๊ฑฐํ•˜๊ณ  ๊ณตํ†ต์ ์ด๋ฉฐ ์ค‘์š”ํ•œ ํŠน์ง•๋งŒ์„ ์ถ”์ถœํ•˜์—ฌ ๊ฐ„๋‹จํ•˜๊ฒŒ ํ‘œํ˜„ํ•˜๋Š” ๊ฒƒ

์™ธ๋ถ€์ธ(๋ณดํ†ต ํ•จ์ˆ˜ ํ˜ธ์ถœ์ž, ํ˜น์€ ๋‹ค๋ฅธ ํด๋ž˜์Šค)์—๊ฒŒ ํ•„์š” ์—†๋Š” ๋””ํ…Œ์ผ๋“ค์„ ์ˆจ๊ธฐ๋Š” ๊ฒƒ์ด๋ผ๊ณ  ํ•  ์ˆ˜ ์žˆ์Œ

ex) ์ง€ํ•˜์ฒ  ๋…ธ์„ ๋„ (์‹ค์ œ ์ง€๋ฆฌ์—์„œ ๋ถˆํ•„์š”ํ•œ ๊ฒƒ์„ ์ œ๊ฑฐํ•˜๊ณ  ์ถ”์ƒํ™”ํ•˜์—ฌ ํ‘œํ˜„)

 

์ถ”์ƒํ™”์˜ ๋ชฉ์ : ํด๋ž˜์Šค ๊ตฌํ˜„ ์„ธ๋ถ€ ์‚ฌํ•ญ๊ณผ ๋™์ž‘์„ ๋ถ„๋ฆฌํ•˜๋Š” ๊ฒƒ

๊ฐ์ฒด ์ง€ํ–ฅ ํ”„๋กœ๊ทธ๋ž˜๋ฐ์—์„œ ์˜๋ฏธํ•˜๋Š” ์ถ”์ƒํ™”๋Š” ๊ฐ์ฒด์˜ ๊ณตํ†ต์ ์ธ ์†์„ฑ๊ณผ ๊ธฐ๋Šฅ์„ ์ถ”์ถœํ•˜์—ฌ ์ •์˜ํ•˜๋Š” ๊ฒƒ

ํ•˜์œ„ ํด๋ž˜์Šค(sub-class)๋“ค์˜ ๊ณตํ†ต์ ์ธ ๊ธฐ๋Šฅ์„ ์ถ”์ถœํ•˜์—ฌ ์ƒ์œ„ ํด๋ž˜์Šค(super class)์— ์ •์˜

Swift์—์„œ ํ”„๋กœํ† ์ฝœ์ด๋‚˜ ์ถ”์ƒํด๋ž˜์Šค๋กœ ์ถ”์ƒํ™” ๊ตฌํ˜„ ๊ฐ€๋Šฅ

 

โžก๏ธ ๋‘˜๋‹ค ๊ณตํ†ต๋œ ๋ถ€๋ถ„์„ ๋ฌถ์–ด ๋ถˆํ•„์š”ํ•œ ์ฝ”๋“œ๋ฅผ ์ค„์ผ ์ˆ˜ ์žˆ์Œ 

์€๋‹‰ํ™” vs. ์บก์Šํ™”

์€๋‹‰ํ™”

์™ธ๋ถ€๋กœ ๋“œ๋Ÿฌ๋‚˜์ง€ ์•Š์•„์•ผ ํ•  ์ •๋ณด๋ฅผ ์ˆจ๊น€

์ ‘๊ทผ ์ œ์–ด๋ฅผ ํ†ตํ•ด ์€๋‹‰ํ™” ๊ฐ€๋Šฅ

์บก์Šํ™”

์ค‘์š” ์‚ฌํ•ญ์„ ๊ฐ์ถ”๊ณ  ์™ธ๋ถ€์—์„œ ๊ฐœ์ฒด๋ฅผ ์‚ฌ์šฉํ•  ์ˆ˜ ์žˆ๋Š” ์ˆ˜๋‹จ์„ ์ œ๊ณตํ•จ

์บก์Šํ™”์˜ ๋ชฉ์ ์€ ๋ณ€๊ฒฝํ•˜๊ธฐ ์‰ฌ์šด ๊ฐ์ฒด๋ฅผ ๋งŒ๋“œ๋Š” ๊ฒƒ

์บก์Šํ™”๋ฅผ ํ†ตํ•œ ๊ฐ์ฒด ๋‚ด๋ถ€๋กœ์˜ ์ ‘๊ทผ ์ œํ•œ → ๊ฐ์ฒด ๊ฐ„์˜ ๊ฒฐํ•ฉ๋„ ๋‚ฎ์ถค → ์„ค๊ณ„๋ฅผ ์ข€ ๋” ์‰ฝ๊ฒŒ ๋ณ€๊ฒฝํ•  ์ˆ˜ O

๊ตฌํ˜„์ด ์•„๋‹Œ ์ธํ„ฐํŽ˜์ด์Šค์—๋งŒ ์˜์กดํ•˜๋„๋ก! ์ผ๋ฐ˜์ ์œผ๋กœ ์—ฐ๊ด€ ์žˆ๋Š” ๋ณ€์ˆ˜์™€ ํ•จ์ˆ˜๋ฅผ ํด๋ž˜์Šค๋กœ ๋ฌถ๋Š” ์ž‘์—…

 

โžก๏ธ ์—ฌ๋Ÿฌ ๊ฐœ์ฒด์˜ ํŠน์„ฑ์„ ์ผ๋ฐ˜ํ™”/์ถ”์ƒํ™”ํ•œ ํƒ€์ž…์„ ์บก์Šํ™”/์€๋‹‰ํ™”

โžก๏ธ ๋ฐ–์œผ๋กœ ๋“œ๋Ÿฌ๋‚ผ ๊ฒƒ๊ณผ ๋‚ด๋ถ€์—์„œ๋งŒ ์•Œ ํ–‰์œ„/์†์„ฑ์„ ๊ตฌ๋ถ„์ง€์–ด ๊ฒ‰์—์„œ ๋‹จ์ˆœํ•˜๊ฒŒ ๋ช…๋ นํ•˜๊ณ  ๊ฒฐ๊ณผ๋ฅผ ๋ฐ›์„ ์ˆ˜ ์žˆ๊ฒŒ ์„ค๊ณ„

'๐Ÿ“ ๊ธฐ๋ก > TIL' ์นดํ…Œ๊ณ ๋ฆฌ์˜ ๋‹ค๋ฅธ ๊ธ€

[TIL] 20231129  (1) 2023.11.29
[TIL] 20231128  (3) 2023.11.29
[TIL] 20231124  (1) 2023.11.25
[TIL] 20231123  (1) 2023.11.23
[TIL] 20231122  (0) 2023.11.22