์ „์ฒด ๊ธ€ 35

๋ฉด์ ‘์Šคํ„ฐ๋”” Day1(Frame, Bounds, ์‹œ๋ฎฌ๋ ˆ์ดํ„ฐ)

Bounds ์™€ Frame ์˜ ์ฐจ์ด์ ์„ ์„ค๋ช…ํ•˜์‹œ์˜ค Frame The frame rectangle, which describes the view’s location and size in its superview’s coordinate system. ์ƒ์œ„๋ทฐ์˜ ์ขŒํ‘œ๊ณ„๋ฅผ ๊ธฐ์ค€์œผ๋กœ ๋ทฐ์˜ ์œ„์น˜์™€ ํฌ๊ธฐ๋ฅผ ํ‘œํ˜„ ๋งŒ์•ฝ Frame์˜ ์ขŒํ‘œ๊ฐ’์ด (50,60)์ด๋ผ๋ฉด, ์ƒ์œ„๋ทฐ๋ฅผ ๊ธฐ์ค€์œผ๋กœ x 50, y 60๋งŒํผ ๋–จ์–ด์ง„ ๊ณณ์— ์œ„์น˜ํ•˜๊ณ  ์žˆ๋‹ค๋Š” ๋œป์ด๋‹ค. ๋ทฐ๋ฅผ ํšŒ์ „ํ•˜๋ฉด ํ•ด๋‹น ๋ทฐ๋ฅผ ๋ชจ๋‘ ๊ฐ์Œ€ ์ˆ˜ ์žˆ์„ ๋งŒํผ ๊ฐ’์ด ์ปค์ง„๋‹ค. ์‚ฌ์šฉ๊ฒฝ์šฐ UIView์œ„์น˜๋‚˜ ํฌ๊ธฐ๋ฅผ ์„ค์ •ํ•˜๋Š” ๊ฒฝ์šฐ. Bounds The bounds rectangle, which describes the view’s location and size in its own coordinate ..

๐Ÿ“ฑ iOS 2022.10.25

์šด์˜์ฒด์ œ Day2 (๋ฐ์ดํ„ฐ)

์ปดํ“จํ„ฐ๊ฐ€ ์ดํ•ดํ•˜๋Š” ์ •๋ณด ์ปดํ“จํ„ฐ๋Š” 0๊ณผ 1๋กœ ๋ชจ๋“  ์ •๋ณด๋ฅผ ํ‘œํ˜„ํ•˜๊ณ , 0๊ณผ 1๋กœ๋œ ์ •๋ณด๋งŒ์„ ์ดํ•ดํ•œ๋‹ค. ์ •๋ณด ๋‹จ์œ„ ๋น„ํŠธ: 0๊ณผ 1์„ ๋‚˜ํƒ€๋‚ด๋Š” ๊ฐ€์žฅ ์ž‘์€ ์ •๋ณด ๋‹จ์œ„ ์›Œ๋“œ: CPU๊ฐ€ ํ•œ๋ฒˆ์— ์ฒ˜๋ฆฌํ•  ์ˆ˜ ์žˆ๋Š” ๋ฐ์ดํ„ฐ์˜ ํฌ๊ธฐ ์ด์ง„๋ฒ• 0๊ณผ 1๋งŒ์œผ๋กœ ์ˆซ์ž๋ฅผ ํ‘œํ˜„ํ•˜๋Š” ๋ฐฉ๋ฒ• 2์˜ ๋ณด์ˆ˜: ์ด์ง„์ˆ˜์˜ ์Œ์ˆ˜๋ฅผ ํ‘œํ˜„ํ•˜๋Š” ๋ฐฉ๋ฒ• ์ค‘ ๊ฐ€์žฅ ๋„๋ฆฌ ์‚ฌ์šฉ๋˜๋Š” ๋ฐฉ๋ฒ• ๋ฐ์ดํ„ฐ๋ฅผ ํ‘œํ˜„ํ• ๋•Œ ์ด์ง„๋ฒ• ์ด์™ธ์— ์‹ญ์œก์ง„๋ฒ•๋„ ์ž์ฃผ ์‚ฌ์šฉํ•œ๋‹ค. ๊ทธ์ด์œ ๋Š” ์ด์ง„๋ฒ•๊ณผ ์‹ญ์œก์ง„๋ฒ•์˜ ์ƒํ˜ธ ๋ณ€ํ™˜์ด ์šฉ์ดํ•˜๊ธฐ ๋•Œ๋ฌธ์ด๋‹ค. 0๊ณผ 1๋กœ ๋ฌธ์ž๋ฅผ ํ‘œํ˜„ํ•˜๋Š” ๋ฐฉ๋ฒ• ๋ฌธ์ž ์ง‘ํ•ฉ๊ณผ ์ธ์ฝ”๋”ฉ ๋ฌธ์ž์ง‘ํ•ฉ: ์ปดํ“จํ„ฐ๊ฐ€ ์ธ์‹ํ•˜๊ณ  ํ‘œํ˜„ํ•  ์ˆ˜ ์žˆ๋Š” ๋ฌธ์ž์˜ ๋ชจ์Œ ๋ฌธ์ž์ธ์ฝ”๋”ฉ: ๋ฌธ์ž๋ฅผ ์ปดํ“จํ„ฐ๊ฐ€ ์ดํ•ดํ•  ์ˆ˜ ์žˆ๋„๋ก ๋ณ€ํ™˜ํ•˜๋Š” ๊ณผ์ • ๋ฌธ์ž๋””์ฝ”๋”ฉ: ์ปดํ“จํ„ฐ๊ฐ€ ์ดํ•ดํ•˜๋Š” ๋ฌธ์ž ์ฝ”๋“œ๋ฅผ ์‚ฌ๋žŒ์ด ์ดํ•ดํ•  ์ˆ˜ ์žˆ๋Š” ๋ฌธ์ž๋กœ ๋ณ€ํ™˜ํ™”๋Š” ๊ณผ์ • ๋ฌธ์ž์ง‘ํ•ฉ ..

์šด์˜์ฒด์ œ Day1 (์ปดํ“จํ„ฐ ๊ตฌ์กฐ ์‹œ์ž‘ํ•˜๊ธฐ)

์ปดํ“จํ„ฐ ๊ตฌ์กฐ๋ฅผ ์•Œ์•„์•ผ ํ•˜๋Š” ์ด์œ ? ๋น„์ „๊ณต์ž๋กœ์„œ ์—ฌํƒœ๊นŒ์ง€ ์•ฑ๊ฐœ๋ฐœ์„ ์ง„ํ–‰ํ•˜๋ฉด์„œ ์ปดํ“จํ„ฐ ๊ตฌ์กฐ๋ฅผ ๋ชฐ๋ผ๋„ ํ”„๋กœ์ ํŠธ๋ฅผ ํ•˜๋Š”๋ฐ ํฐ ๋ฌด๋ฆฌ๊ฐ€ ์—†์—ˆ๋‹ค. ๊ทธ๋Ÿฌ๋‚˜ ์‹ค๋ ฅ ์žˆ๋Š” ๊ฐœ๋ฐœ์ž๋ผ๋ฉด ์ปดํ“จํ„ฐ ๊ตฌ์กฐ๋ฅผ ์•Œ์•„์•ผ ํ•œ๋‹ค๊ณ  ํ•œ๋‹ค. ๊ทธ๋ ‡๋‹ค๋ฉด ์™œ ์ข‹์€ ๊ฐœ๋ฐœ์ž๋Š” ์ปดํ“จํ„ฐ ๊ตฌ์กฐ๋ฅผ ์•Œ์•„์•ผ ํ• ๊นŒ? ๋ฌธ์ œ ํ•ด๊ฒฐ ์ฝ”๋“œ์˜ ๋ฌธ์ œ๊ฐ€ ์—†์Œ์—๋„ ๋ถˆ๊ตฌํ•˜๊ณ  ์ฝ”๋“œ๊ฐ€ ์ œ๋Œ€๋กœ ์ž‘๋™ํ•˜์ง€ ์•Š๋Š” ๊ฒฝ์šฐ๊ฐ€ ์žˆ๋‹ค. ๋˜ํ•œ ์–ด๋–ค ์ปดํ“จํ„ฐ์—์„œ๋Š” ๋ฌธ์ œ์—†์ด ์ž‘๋™ํ•˜๋˜ ์ฝ”๋“œ๊ฐ€ ๋‹ค๋ฅธ ์ปดํ“จํ„ฐ์—์„œ๋Š” ์ž‘๋™ํ•˜์ง€ ์•Š๋Š” ๊ฒฝ์šฐ๋„ ์กด์žฌํ•œ๋‹ค. ์ด ๊ฒฝ์šฐ ์ฝ”๋“œ์ƒ์˜ ๋ฌธ๋ฒ•์ ์ธ ๋ฌธ์ œ๋กœ๋งŒ ์น˜๋ถ€ํ•˜๊ธฐ์—๋Š” ํ•œ๊ณ„๊ฐ€ ์žˆ๋‹ค. ๊ฒฐ๊ตญ ์ปดํ“จํ„ฐ์˜ ๊ตฌ์กฐ์ƒ์˜ ๋ฌธ์ œ์ผ ๊ฐ€๋Šฅ์„ฑ๋„ ์žˆ๋‹ค๋Š” ๊ฒƒ์ด๋‹ค. ๋งŒ์•ฝ ์ปดํ“จํ„ฐ ๊ตฌ์กฐ์—๋Œ€ํ•ด ์ „ํ˜€ ์•Œ์ง€ ๋ชปํ•œ๋‹ค๋ฉด ์ด๋•Œ ๋ฌธ์ œํ•ด๊ฒฐ์„ ํ•˜์ง€๋ชปํ•  ๊ฒƒ์ด๋‹ค. ํ•˜์ง€๋งŒ ์ปดํ“จํ„ฐ ๊ตฌ์กฐ๋ฅผ ์•Œ๊ณ  ์žˆ๋‹ค๋ฉด ์ด๋Ÿฌํ•œ ๋ฌธ์ œ๋ฅผ ํ•ด๊ฒฐํ•  ์ˆ˜ ์žˆ๋Š” ์‹ค๋งˆ๋ฆฌ๋ฅผ ์ฐพ๋Š”๋ฐ..

์ปฌ๋ ‰์…˜ ๋ทฐ

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

๐Ÿ“ฑ iOS 2022.07.26

Initialization

์ดˆ๊ธฐํ™”๋Š” ํด๋ž˜์Šค, ๊ตฌ์กฐ์ฒด, ์—ด๊ฑฐํ˜• ์ธ์Šคํ„ด์Šค๋ฅผ ์‚ฌ์šฉํ•˜๊ธฐ ์œ„ํ•ด ์ค€๋น„ ์ž‘์—…์„ ํ•˜๋Š” ๋‹จ๊ณ„ ์ด๋‹ค. ์ด ๋‹จ๊ณ„์—์„œ ๊ฐ ์ €์žฅ ํ”„๋กœํผํ‹ฐ์˜ ์ดˆ๊ธฐ ๊ฐ’์„ ์„ค์ •ํ•œ๋‹ค. ์ดˆ๊ธฐํ™” ๊ณผ์ •์€ initializer๋ฅผ ์ •์˜ ํ•˜๋Š” ๊ฒƒ์œผ๋กœ ๊ตฌํ˜„ํ•  ์ˆ˜ ์žˆ๋‹ค. Swift์˜ initializer๋Š” ๊ฐ’์„ ๋ฐ˜ํ™˜ํ•˜์ง€ ์•Š๋Š”๋‹ค. ์ดˆ๊ธฐํ™”์™€ ๋ฐ˜๋Œ€๋กœ ์—ฌ๋Ÿฌ ๊ฐ’๊ณผ ์ž์›์˜ ํ•ด์ง€๋ฅผ ์œ„ํ•ด deinitializer๋„ ์‚ฌ์šฉํ•  ์ˆ˜ ์žˆ๋‹ค. ์ €์žฅ ํ”„๋กœํผํ‹ฐ๋ฅผ ์œ„ํ•œ ์ดˆ๊ธฐ๊ฐ’ ์„ค์ • (Setting Initial Values for Stored Properties) ์ธ์Šคํ„ด์Šค์˜ ์ €์žฅ ํ”„๋กœํผํ‹ฐ๋Š” ์‚ฌ์šฉํ•˜๊ธฐ ์ „์— ๋ฐ˜๋“œ์‹œ ํŠน์ • ๊ฐ’์œผ๋กœ ์ดˆ๊ธฐํ™” ๋ผ์•ผ ํ•œ๋‹ค. ์ด ๊ฐ’์œผ๋กœ ๊ธฐ๋ณธ ๊ฐ’์„ ์„ค์ •ํ•  ์ˆ˜ ์žˆ๊ณ , ํŠน์ • ๊ฐ’์„ ์„ค์ •ํ•  ์ˆ˜๋„ ์žˆ๋‹ค ์ด๋‹ˆ์…œ๋ผ์ด์ € (Initializers) ์ด๋‹ˆ์…œ๋ผ์ด์ €๋Š” ํŠน์ • ํƒ€์ž…์˜ ์ธ์Šคํ„ด์Šค๋ฅผ ์ƒ..

๐Ÿฆ… Swift 2022.07.13

Inheritance

ํด๋ž˜์Šค๋Š” ๋ฉ”์†Œ๋“œ, ํ”„๋กœํผํ‹ฐ์™€ ๋‹ค๋ฅธ ํŠน์ง•(characteristics)์„ ๋‹ค๋ฅธ ํด๋ž˜์Šค๋กœ ๋ถ€ํ„ฐ ์ƒ์†ํ•  ์ˆ˜ ์žˆ๋‹ค. ์ด๊ฒƒ์ด Swift์—์„œ ํด๋ž˜์Šค๊ฐ€ ๋‹ค๋ฅธ ํƒ€์ž…๊ณผ ๊ตฌ๋ถ„๋˜๋Š” ๊ทผ๋ณธ์ ์ธ ์š”์†Œ์ด๋‹ค. ํด๋ž˜์Šค์—์„œ๋Š” ์ €์žฅ๋œ ํ”„๋กœํผํ‹ฐ์™€ ๊ณ„์‚ฐ๋œ ํ”„๋กœํผํ‹ฐ์™€ ์ƒ๊ด€์—†์ด ์ƒ์†๋ฐ›์€ ํ”„๋กœํผํ‹ฐ์— ํ”„๋กœํผํ‹ฐ ์˜ต์ €๋ฒ„๋ฅผ ์„ค์ •ํ•ด์„œ ๊ฐ’ ์„ค์ •์— ๋ฐ˜์‘ํ•  ์ˆ˜ ์žˆ๋‹ค. ๊ธฐ๋ฐ˜ ํด๋ž˜์Šค ์ •์˜ (Defining a Base Class) ๋‹ค๋ฅธ ์–ด๋–ค ํด๋ž˜์Šค๋กœ๋ถ€ํ„ฐ๋„ ์ƒ์†๋ฐ›์ง€ ์•Š์€ ํด๋ž˜์Šค๋ฅผ ๊ธฐ๋ฐ˜ ํด๋ž˜์Šค๋ผ ํ•œ๋‹ค class Vehicle { var currentSpeed = 0.0 var description: String { return "traveling at \(currentSpeed) miles per hour" } func makeNoise() { // do nothin..

๐Ÿฆ… Swift 2022.07.05

Subscripts

ํด๋ž˜์Šค, ๊ตฌ์กฐ์ฒด ๊ทธ๋ฆฌ๊ณ  ์—ด๊ฑฐํ˜•์—์„œ ์Šคํฌ๋ฆฝํŠธ๋ฅผ ์ •์˜ํ•ด ์‚ฌ์šฉํ•  ์ˆ˜ ์žˆ๋‹ค. ์„œ๋ธŒ์Šคํฌ๋ฆฝํŠธ๋ž€ ์ฝœ๋ ‰์…˜, ๋ฆฌ์ŠคํŠธ, ์‹œํ€€์Šค ๋“ฑ ์ง‘ํ•ฉ์˜ ํŠน์ • ๋ฉค๋ฒ„ ์š”์†Œ์— ๊ฐ„๋‹จํ•˜๊ฒŒ ์ ‘๊ทผํ•  ์ˆ˜ ์žˆ๋Š” ๋ฌธ๋ฒ•์ด๋‹ค. ์„œ๋ธŒ์Šคํฌ๋ฆฝํŠธ๋ฅผ ์ด์šฉํ•˜๋ฉด ์ถ”๊ฐ€์ ์ธ ๋ฉ”์†Œ๋“œ ์—†์ด ํŠน์ • ๊ฐ’์„ ํ• ๋‹น(assign)ํ•˜๊ฑฐ๋‚˜ ๊ฐ€์ ธ์˜ฌ ์ˆ˜(retrieve) ์žˆ๋‹ค. ์˜ˆ๋ฅผ๋“ค๋ฉด, ๋ฐฐ์—ด(Array) ์ธ์Šคํ„ด์Šค์˜ ํŠน์ • ์—˜๋ฆฌ๋จผํŠธ๋Š” someArray[index]๋ฌธ๋ฒ•์œผ๋กœ, ์‚ฌ์ „(Dictionary) ์ธ์Šคํ„ด์Šค์˜ ํŠน์ • ์—˜๋ฆฌ๋จผํŠธ๋Š” someDictionary[key]๋กœ ์ ‘๊ทผํ•  ์ˆ˜ ์žˆ๋‹ค. ํ•˜๋‚˜์˜ ํƒ€์ž…์— ์—ฌ๋Ÿฌ ์„œ๋ธŒ์Šคํฌ๋ฆฝํŠธ๋ฅผ ์ •์˜ํ•  ์ˆ˜ ์žˆ๊ณ  ์˜ค๋ฒ„๋กœ๋“œ(Overload)๋„ ๊ฐ€๋Šฅํ•˜๋‹ค. ๋ฟ๋งŒ์•„๋‹ˆ๋ผ ๋‹จ์ผ ์ธ์ž ๊ฐ’์„ ๋„˜์–ด, ํ•„์š” ๋”ฐ๋ผ ๋ณต์ˆ˜ ์ธ์ž ๊ฐ’์„ ์‚ฌ์šฉํ•  ์ˆ˜ ์žˆ๋‹ค. ์„œ๋ธŒ์Šคํฌ๋ฆฝํŠธ ๋ฌธ๋ฒ• (Subscript Syntax)..

๐Ÿฆ… Swift 2022.07.04

Methods

ํŠน์ • ํƒ€์ž…์˜ ํด๋ž˜์Šค, ๊ตฌ์กฐ์ฒด, ์—ด๊ฑฐํ˜•๊ณผ ๊ด€๋ จ๋œ ํ•จ์ˆ˜๋ฅผ ๋ฉ”์†Œ๋“œ๋ผ ํ•œ๋‹ค. ํŠน์ • ํƒ€์ž…์˜ ์ธ์Šคํ„ด์Šค์—์„œ ์‹คํ–‰ํ•  ์ˆ˜ ์žˆ๋Š” ๋ฉ”์†Œ๋“œ๋ฅผ ์ธ์Šคํ„ด์Šค ๋ฉ”์†Œ๋“œ, ํŠน์ • ํƒ€์ž…๊ณผ ๊ด€๋ จ๋œ ๋ฉ”์†Œ๋“œ๋ฅผ ํƒ€์ž… ๋ฉ”์†Œ๋“œ๋ผ ํ•œ๋‹ค.Swift์—์„œ๋Š” ํด๋ž˜์Šค ํƒ€์ž… ๋ฟ๋งŒ์•„๋‹ˆ๋ผ ๊ตฌ์กฐ์ฒด, ์—ด๊ฑฐํ˜•์—์„œ๋„ ๋ฉ”์†Œ๋“œ๋ฅผ ์„ ์–ธํ•ด ์‚ฌ์šฉํ•  ์ˆ˜ ์žˆ๋‹ค. ์ธ์Šคํ„ด์Šค ๋ฉ”์„œ๋“œ(Instance Methods) ์ธ์Šคํ„ด์Šค ๋ฉ”์†Œ๋“œ๋Š” ํŠน์ • ํด๋ž˜์Šค, ๊ตฌ์กฐ์ฒด, ์—ด๊ฑฐํ˜•์˜ ์ธ์Šคํ„ด์Šค์— ์†ํ•œ ๋ฉ”์†Œ๋“œ์ด๋‹ค. ์ด ๋ฉ”์†Œ๋“œ๋ฅผ ํ†ตํ•ด ์ธ์Šคํ„ด์Šค ๋‚ด์˜ ๊ฐ’์„ ์ œ์–ดํ•˜๊ฑฐ๋‚˜ ๋ณ€๊ฒฝํ•  ์ˆ˜ ์žˆ๋‹ค. ์ธ์Šคํ„ด์Šค ๋ฉ”์†Œ๋“œ๋Š” ์ด๋ฆ„ ๊ทธ๋Œ€๋กœ ๊ทธ ์ธ์Šคํ„ด์Šค๊ฐ€ ์†ํ•œ ํŠน์ • ํƒ€์ž…์˜ ์ธ์Šคํ„ด์Šค์—์„œ๋งŒ ์‹คํ–‰ ๊ฐ€๋Šฅํ•˜๋‹ค. class Counter { var count = 0 func increment() { count += 1 } func increment(by a..

๐Ÿฆ… Swift 2022.07.04

Properties

ํด๋ž˜์Šค๋‚˜ ๊ตฌ์กฐ์ฒด, ์—ด๊ฑฐ์ฒด์˜ ๊ฐ์ฒด ์ธ์Šคํ„ด์Šค๊ฐ€ ๊ทธ ๋‚ด๋ถ€์— ๊ฐ€์ง€๊ณ  ์žˆ๋Š” ๊ฐ์ฒด์˜ ์ƒํƒœ์— ๊ด€ํ•œ ์ •๋ณด๋ฅผ ๋งํ•œ๋‹ค. ์ €์žฅ ํ”„๋กœํผํ‹ฐ: ์ธ์Šคํ„ด์Šค์˜ ์ผ๋ถ€๋กœ ์ƒ์ˆ˜์™€ ๋ณ€์ˆ˜ ๊ฐ’์„ ์ €์žฅ ๊ณ„์‚ฐ ํ”„๋กœํผํ‹ฐ: ๊ฐ’์„ ์ €์žฅํ•˜๋Š” ๋Œ€์‹ ์— ๊ณ„์‚ฐ์„ ํ•จ( ํด๋ž˜์Šค, ๊ตฌ์กฐ์ฒด, ์—ด๊ฑฐํ˜•์—์„œ ์ œ๊ณต) ํƒ€์ž… ํ”„๋กœํผํ‹ฐ: ํ”„๋กœํผํ‹ฐ๋Š” ํƒ€์ž… ๊ทธ ์ž์ฒด์™€ ์—ฐ๊ฒฐ๋˜์–ด ์žˆ์„ ์ˆ˜ ์žˆ๋Š”๋ฐ, ์ด๋ฅผ ํƒ€์ž…ํ”„๋กœํผํ‹ฐ๋ผ๊ณ  ํ•จ ์ €์žฅ ํ”„๋กœํผํ‹ฐ (Stored Properties) ์ €์žฅ ํ”„๋กœํผํ‹ฐ๋Š” ํŠน์ • ํด๋ž˜์Šค ๋˜๋Š” ๊ตฌ์กฐ์ฒด์˜ ์ธ์Šคํ„ด์Šค ์ผ๋ถ€๋กœ์„œ ์ €์žฅ๋œ ์ƒ์ˆ˜ ๋˜๋Š” ๋ณ€์ˆ˜์ด๋‹ค. ๋˜ํ•œ ์ €์žฅ ํ”„๋กœํผํ‹ฐ๋ฅผ ์„ ์–ธํ• ๋•Œ “๊ธฐ๋ณธ๊ฐ’ (Default Property Value)”๋ฅผ ์„ค์ •ํ•  ์ˆ˜ ์žˆ๋‹ค. ๊ทธ๋ฆฌ๊ณ  ์ด๋Ÿฌํ•œ ์ €์žฅ ํ”„๋กœํผํ‹ฐ๋Š” initializer(์ƒ์„ฑ์ž)๋กœ ์ดˆ๊ธฐํ™” ์‹œํ‚ฌ ์ˆ˜ ๋„ ์žˆ๋‹ค. ์ƒ์„ฑ์ž์— ์˜ํ•ด ์ดˆ๊ธฐํ™” ๋  ๋•Œ๋Š” ํ•ด๋‹น ํ”„..

๐Ÿฆ… Swift 2022.07.04

Structures and Classes

ํด๋ž˜์Šค์˜ ์ธ์Šคํ„ด์Šค๋Š” ์ „ํ†ต์ ์œผ๋กœ ๊ฐ์ฒด๋กœ ์•Œ๋ ค์ ธ ์žˆ์œผ๋‚˜, ์Šค์œ„ํ”„ํŠธ์˜ ๊ตฌ์กฐ์ฒด์™€ ํด๋ž˜์Šค๋Š” ๋‹ค๋ฅธ ์–ธ์–ด๋ณด๋‹ค ํ›จ์”ฌ ๊ธฐ๋Šฅ์ ์ด๋‹ค. ๊ทธ๋ฆฌ๊ณ  ์ด ์žฅ์˜ ๋Œ€๋ถ€๋ถ„์€์˜ ํด๋ž˜์Šค์™€ ๊ตฌ์กฐ์ฒด์— ๋Œ€ํ•œ ๊ธฐ๋Šฅ์ ์ธ ์„ค๋ช…์ด๊ธฐ ๋•Œ๋ฌธ์—,์ผ๋ฐ˜์ ์ธ ์šฉ์–ด์ธ ์ธ์Šคํ„ด์Šค๊ฐ€ ์‚ฌ์šฉ๋œ๋‹ค. ๊ตฌ์กฐ์ฒด์™€ ํด๋ž˜์Šค์˜ ๋น„๊ต (Comparing Structures and Classes) ๊ณตํ†ต์  ๊ฐ’์„ ์ €์žฅํ•˜๋Š” ํ”„๋กœํผํ‹ฐ ์ •์˜ ๊ธฐ๋Šฅ ์ œ๊ณต์„ ์œ„ํ•œ ๋ฉ”์„œ๋“œ ์ •์˜ ์„œ๋ธŒ ์Šคํฌ๋ฆฝํŠธ ๊ตฌ๋ฌธ์„ ์‚ฌ์šฉํ•˜์—ฌ ๊ฐ’์— ์ ‘๊ทผ์„ ์ œ๊ณตํ•˜๋Š” ์„œ๋ธŒ ์Šคํฌ๋ฆฝํŠธ ์ •์˜ ์ดˆ๊ธฐํ™” ์ƒํƒœ๋ฅผ ์„ค์ •ํ•˜๊ธฐ ์œ„ํ•œ ์ดˆ๊ธฐํ™” ์ •์˜ ๊ธฐ๋ณธ ๊ตฌํ˜„์„ ๋„˜์–ด ๊ธฐ๋Šฅ์  ํ™•์žฅ์„ ์œ„ํ•œ ํ™•์žฅ ํŠน์ • ์ข…๋ฅ˜์˜ ํ‘œ์ค€ ๊ธฐ๋Šฅ์„ ์ œ๊ณตํ•˜๋Š” ํ”„๋กœํ† ์ฝœ ์ค€์ˆ˜ ํด๋ž˜์Šค๋งŒ ๊ฐ€๋Šฅํ•œ ๊ธฐ๋Šฅ ์ƒ์† (Inheritance) : ํด๋ž˜์Šค์˜ ์—ฌ๋Ÿฌ ์†์„ฑ์„ ๋‹ค๋ฅธ ํด๋ž˜์Šค์— ๋ฌผ๋ ค ์คŒ ํƒ€์ž… ์บ์ŠคํŒ… (Type cas..

๐Ÿฆ… Swift 2022.06.22