์ „์ฒด ๊ธ€ 118

7์ฃผ์ฐจ_iOS ์•ฑ ๊ฐœ๋ฐœ ์ˆ™๋ จ_2์ผ์ฐจ_TIL

์–ด์ œ ํ”„๋กœ์ ํŠธ ๋ฐœํ‘œํšŒ๊ฐ€ ๋๋‚˜๊ณ , ๊ธฐ์กด ํŒ€์›๋“ค๊ณผ ๋งˆ์ง€๋ง‰ ํšŒ๊ณ ๋ฅผ ํ–ˆ๋‹ค. ์˜ค๋Š˜์€ ์ƒˆ๋กœ์šด ์ฃผ์ฐจ ๋ฐœ์ œ๋ฅผ ์ง„ํ–‰ํ–ˆ๊ณ , ์ƒˆ๋กœ์šด ํŒ€์›๋“ค๊ณผ 7์ฃผ์ฐจ 'iOS ์•ฑ ๊ฐœ๋ฐœ ์ˆ™๋ จ'์„ ํ•จ๊ป˜ํ–ˆ๋‹ค. ์ด์ „๊ณผ ๋งˆ์ฐฌ๊ฐ€์ง€๋กœ 2์ฃผ๊ฐ„ ๊ฐ•์˜์‹œ์ฒญ & ๊ฐœ์ธ๊ณผ์ œ & ๊ฐœ์ธ๊ณต๋ถ€๋ฅผ ํ•˜๋Š” ์‹œ๊ฐ„์„ ๊ฐ–๊ณ , ๋งˆ์ง€๋ง‰ 1์ฃผ์ผ๋™์•ˆ '์ฃผํŠน๊ธฐ ์ˆ™๋ จ ํŒ€ ํ”„๋กœ์ ํŠธ'๋ฅผ ์ง„ํ–‰ํ•œ๋‹ค. ์˜ค๋Š˜ ๋“ค์—ˆ๋˜ ๊ฐ•์˜ ๋‚ด์šฉ์€ ์•„๋ž˜์™€ ๊ฐ™๋‹ค. - ๋ฉ”๋ชจ๋ฆฌ ARC - ๋„คํŠธ์›Œํฌ ํ†ต์‹  - ๋‚ด๋ถ€ ์ €์žฅ์†Œ - ํ™”๋ฉด ์ „ํ™˜ํ•˜๊ธฐ - ์œ„์‹œ๋ฆฌ์ŠคํŠธ ์•ฑ ๋งŒ๋“ค๊ธฐ ๊ฐ•์˜ ์‹œ์ฒญ์€ ๋ชจ๋‘ ๋๋‚ธ ์ƒํƒœ๊ณ , ์œ„์‹œ๋ฆฌ์ŠคํŠธ ์•ฑ ๋งŒ๋“ค๊ธฐ๋ฅผ ์‹œ์ž‘ํ–ˆ๋‹ค. CoreData๋ฅผ ์ฒ˜์Œ ์ ‘ํ•ด์„œ ์•„์ง ์‚ฌ์šฉํ•˜๋Š”๋ฐ ์–ด๋ ค์› ๋‹ค. ํ•œ๋ฒˆ์”ฉ ์ณ๋ณด๋‹ˆ, ์—ญ์‹œ ๋งŽ์ด ์‚ฌ์šฉํ•ด๋ณด๋ฉด์„œ ์ž์—ฐ์Šค๋Ÿฝ๊ฒŒ ๋ฐ›์•„๋“ค์—ฌ์•ผํ•  ๊ฒƒ ๊ฐ™์€ ๋А๋‚Œ..ใ…Žใ…Ž ์˜ค๋Š˜ ๊ณ„ํš์€ ์›๋ž˜ ์ €๋…์— ์Šคํƒ ๋‹ค๋“œ๋ฐ˜ ์‚ฌ์ „๊ณผ์ œ๋ฅผ ํ•  ์ƒ๊ฐ์ด์—ˆ๋Š”๋ฐ, ..

7์ฃผ์ฐจ_ํ‚ค์˜ค์Šคํฌ ๋งŒ๋“ค๊ธฐ_1์ผ์ฐจ_์ฒซ ํŒ€ ํ”„๋กœ์ ํŠธ ๋งˆ๋ฌด๋ฆฌ_TIL

๋งค์ผ ๋น ์ง์—†์ด ๋ธ”๋กœ๊ทธ ์ž‘์„ฑํ•˜๋ ค๊ณ  ํ–ˆ๋˜ ๋‚ด๊ฐ€ ์ง€๋‚œ ์ผ์ฃผ์ผ๊ฐ„ ๋ชป ์˜ฌ๋ฆฐ ์ด์œ ๋Š”.. ํŒ€ ํ”„๋กœ์ ํŠธ ํ•˜๋А๋ผ!!!๐Ÿฅน ์‚ฌ์‹ค ํ”„๋กœ์ ํŠธ ์ค€๋น„ํ•˜๋ฉด์„œ TIL ์ž‘์„ฑํ•  ์ˆ˜ ์žˆ์—ˆ์ง€๋งŒ, ๋งˆ์Œ์˜ ์—ฌ์œ ๊ฐ€ ์—†์—ˆ๋‹ค..ใ…œ 09:00-21:00 [12์‹œ๊ฐ„] ๋‚ด๋ฐฐ์บ  ์ฐธ์—ฌํ•˜๊ณ , 22:00-23:30 ์šด๋™ ๋‹ค๋…€์˜ค๊ณ , ์ƒํ™œ ํŒจํ„ด์ด ๋Š˜ ๊ณ ์ •๋˜์–ด์žˆ์—ˆ๋Š”๋ฐ.. ์šด๋™์€ ํฌ๊ธฐํ•˜๊ณ , ํŒ€ํ”Œ์—๋งŒ ์ง‘์ค‘ํ–ˆ๋‹ค! ์•„๋ฌด๋ž˜๋„ ์ •ํ•ด์ง„ ์‹œ๊ฐ„ ์•ˆ์— ํ•ด์•ผํ•˜๋Š” ์ผ์ด ๋”ฑ ์ •ํ•ด์ ธ์žˆ์–ด์„œ ํŒ€์—๊ฒŒ ๋ฏผํ๋ฅผ ๋ผ์น˜๊ณ  ์‹ถ์ง€ ์•Š์•„์„œ ๋ฐค๋„ ์ƒˆ๊ณ .. ์ž ๋„ ์ค„์—ฌ๊ฐ€๋ฉฐ ์ค€๋น„ํ–ˆ๋˜ ๊ฒƒ ๊ฐ™๋‹ค. ํŒ€์›๋ถ„๋“ค ๋ชจ๋‘ ์ž˜ํ•ด์ฃผ์‹  ๋•๋ถ„์— ๋ชฉ์š”์ผ์— ์–ด๋А์ •๋„ ๋งˆ๋ฌด๋ฆฌ๊ฐ€ ๋๊ณ , ๊ธˆ์š”์ผ์—๋Š” ์—ฌ์œ ๋กญ๊ฒŒ ๋ฐœํ‘œ์ค€๋น„๊ณผ ๊ฐœ์ธ๊ณต๋ถ€๋ฅผ ํ•˜๋Š” ์‹œ๊ฐ„์„ ๊ฐ€์กŒ๋‹ค. ์ด๋ฒˆ ํŒ€ ํ”„๋กœ์ ํŠธ ์ฃผ์ œ๋Š” 'ํ‚ค์˜ค์Šคํฌ ๋งŒ๋“ค๊ธฐ'์˜€๋‹ค. ์šฐ๋ฆฌ ํŒ€์€ ํ–„๋ฒ„๊ฑฐ๋ฅผ ์ฃผ์ œ๋กœ ํ‚ค์˜ค์Šคํฌ ์•ฑ์„ ๋งŒ๋“ค์–ด๋ดค..

[Swift] Show Library ํ™œ์šฉ (Navigation Bar, Label, Button, Text Field)

Xcode project ํŒŒ์ผ ๋งŒ๋“ค์–ด์„œ ์•„๋ž˜ ์š”๊ตฌ์‚ฌํ•ญ ๋งŒ๋“ค์–ด๋ณด๊ธฐ!! โ‘  Navigation Bar ์—ฐ๊ฒฐํ•˜๊ธฐ โ‘ก 1๋ฒˆ view์— 2๋ฒˆ view๋กœ ๋„˜์–ด๊ฐ€๋Š” button ๋งŒ๋“ค๊ธฐ 1. ๋ฒ„ํŠผ ์ƒ์„ฑ ํ›„, ์ƒˆ๋กœ์šด ViewController๋ฅผ ๋งŒ๋“ค๊ธฐ 2. ๋‘ ๊ฐœ์˜ ViewController ๊ตฌ๋ถ„ํ•˜๊ธฐ ์‰ฝ๊ฒŒ background ์ƒ‰์ƒ ๋„ฃ๊ธฐ 3. SecondViewController ์ƒˆ๋กœ์šด ํŒŒ์ผ ์ƒ์„ฑํ•˜๊ธฐ 4. StoryBoard์— SecondViewController Class ์—ฐ๊ฒฐํ•˜๊ณ , StoryBoard ID ๋„ฃ์–ด์ฃผ๊ธฐ ์ด๋ ‡๊ฒŒ ํ•˜๋ฉด, ๋ฒ„ํŠผ ํด๋ฆญ์‹œ SecondVC๋กœ ๋„˜์–ด๊ฐ! โ‘ข 2๋ฒˆ view์— 1๋ฒˆ view๋กœ ๋„˜์–ด๊ฐ€๋Š” button ๋งŒ๋“ค๊ธฐ ์ด๋ ‡๊ฒŒ ํ•˜๋ฉด ์•„๋ž˜ ์˜์ƒ์ฒ˜๋Ÿผ ํ™”๋ฉด ์ „ํ™˜๋จ! โ‘ฃ 1๋ฒˆ view์— textField, 2๋ฒˆ v..

5์ฃผ์ฐจ_iOS ์•ฑ ๊ฐœ๋ฐœ ์ž…๋ฌธ_5์ผ์ฐจ_ํ•ด์„ค๊ฐ•์˜ & Auto Layout ์—ฐ์Šต

์˜ค๋Š˜์€ todoList ๋งŒ๋“ค๊ธฐ ๊ฐœ์ธ๊ณผ์ œ ์ œ์ถœํ•˜๋Š” ๋‚ ์ด๋‹ค. ์ œ์ถœ ํ›„, ํ”ผ๋“œ๋ฐฑ๊นŒ์ง€ ๋ชจ๋‘ ๋ฐ›์€ ์ƒํƒœ๊ณ , ํ”ผ๋“œ๋ฐฑ ์ˆ˜์ •์€ ๋‚ด์ผ ํ•  ์˜ˆ์ •์ด๋‹ค.๐Ÿ˜€ ์˜คํ›„์—๋Š” ํ•ด์„ค ๊ฐ•์˜๋ฅผ ๋“ค์€ ํ›„, ์˜คํ† ๋ ˆ์ด์•„์›ƒ ์—ฐ์Šต์„ ํ–ˆ๋‹ค. ๊ด€๋ จ ๋‚ด์šฉ์€ ๋ฐ‘์— ๊ฐ„๋žตํ•˜๊ฒŒ ์ •๋ฆฌํ•˜๋ ค๊ณ  ํ•œ๋‹ค. ํ•ด์„ค๊ฐ•์˜๊ฐ€ ์˜ฌ๋ผ์™”๋Š”๋ฐ, ์—ญ์‹œ ๋˜ ๋‹ค๋ฅธ ํ’€์ด๋กœ ํ•ด์ฃผ์…”์„œ ํ•œ ๋ฒˆ ๋” ๋ณด๊ณ  ๊ณต๋ถ€ํ•ด๋ณด๋ ค๊ณ  ํ•œ๋‹ค. โ‘  ์™„๋ฃŒ ๊ฐ€๋กœ์„ (strikeThrough) ๋ฉ”์„œ๋“œ๋ฅผ ๋งŒ๋“ค์–ด์„œ ๊ทธ๋ƒฅ viewContoller ํด๋ž˜์Šค ์•ˆ์— ๋„ฃ์–ด์„œ ์‚ฌ์šฉํ–ˆ์—ˆ๋Š”๋ฐ, ์–ด๋””์„œ๋“  ์“ธ ์ˆ˜ ์žˆ๋„๋ก String์˜ extension์œผ๋กœ ๋นผ๊ธฐ โ‘ก ์ถ”๊ฐ€ํ•˜๊ธฐ, ์ˆ˜์ •ํ•˜๊ธฐ IBAction์—์„œ newTodo๋ฅผ ๋งŒ๋“ค์ง€ ์•Š๊ณ , self.todoList[row].title = newTitle๋กœ ํ•ด์„œ ์ฝ”๋“œ ๊ฐ„๊ฒฐํ•˜๊ฒŒ ๋งŒ๋“ค๊ธฐ โ‘ข cellForRowAt ์•ˆ..

5์ฃผ์ฐจ_iOS ์•ฑ ๊ฐœ๋ฐœ ์ž…๋ฌธ_4์ผ์ฐจ_TIL

์˜ค๋Š˜์€ swift ๋ฌธ๋ฒ• ๊ณต๋ถ€์™€ todoList ๋งŒ๋“ค๊ธฐ์—์„œ ํ•„์ˆ˜ ๊ตฌํ˜„ ์ด์™ธ์— ์ถ”๊ฐ€๋กœ ๊ตฌํ˜„ํ•ด ๋ณด๊ณ  ์‹ถ์€ ๋‚ด์šฉ ์‹œ๋„ํ•ด ๋ณด๋Š” ์‹œ๊ฐ„์„ ๊ฐ€์กŒ๋‹ค. todoList ๋ฐ์ดํ„ฐ ์ €์žฅํ•˜๋Š” ๊ธฐ๋Šฅ์„ ์ถ”๊ฐ€ํ•˜๊ณ  ์‹ถ์–ด์„œ UserDefault์— ๋Œ€ํ•ด์„œ ์ฐพ์•„๋ดค๋Š”๋ฐ, struct ํƒ€์ž…์„ ์ €์žฅํ•˜๋Š” ๋ฐฉ๋ฒ•์ด ๋ณต์žกํ•ด์„œ ์‹œ๋„๋งŒ ํ•ด๋ณด๊ณ , ์™„์„ฑ์€ ๋ชปํ–ˆ๋‹ค..๐Ÿ˜ญ ๋Œ€์‹ ์— Int ํƒ€์ž…์ด๋‚˜ ๋ฌธ์ž์—ด ๋ฐฐ์—ด ํƒ€์ž…์„ ์ €์žฅํ•˜๋Š” ์—ฐ์Šต์„ ํ•ด๋ดค๋‹ค. UserDefault๋ฅผ ์‚ฌ์šฉํ•ด์„œ ๋ฐ์ดํ„ฐ๋ฅผ ์ €์žฅํ•˜๋Š” ๋ฐฉ๋ฒ•์— ๋Œ€ํ•ด์„œ๋Š” ๋‚˜์ค‘์— ๊ณต๋ถ€๋ฅผ ์ข€ ๋” ํ•ด๋ณด๊ณ  ์ •๋ฆฌํ•˜๋ ค ํ•œ๋‹ค. ์˜ค๋Š˜์€ ๊ณต๋ถ€ํ–ˆ๋˜ Swift ๋ฌธ๋ฒ• ๊ด€๋ จํ•ด์„œ ๊ฐ„๋žตํ•˜๊ฒŒ ์ •๋ฆฌํ•ด ๋ณผ ์ƒ๊ฐ์ด๋‹ค. components & split components ์ฃผ์–ด์ง„ ๊ตฌ๋ถ„ ๊ธฐํ˜ธ(separator)๋กœ ๋‚˜๋ˆ„์–ด์ง„ ์ˆ˜์‹ ์ž์˜ ํ•˜์œ„ ๋ฌธ์ž์—ด์„ ํฌํ•จํ•œ ๋ฐฐ์—ด์„ ๋ฐ˜ํ™˜ํ•˜๋Š” ..

5์ฃผ์ฐจ_iOS ์•ฑ ๊ฐœ๋ฐœ ์ž…๋ฌธ_3์ผ์ฐจ_Auto Layout ์—ฐ์Šต

์˜ค๋Š˜์€ ์˜คํ›„ 4์‹œ Standard 1์ฃผ์ฐจ ์ฒซ zoom ๊ฐ•์˜๋ฅผ ์‹œ์ž‘ํ•œ ๋‚ ์ด๋‹ค. ๋ฏธ๋ฆฌ ์‚ฌ์ „ ์˜ˆ์Šต ๊ณผ์ œ๋กœ ๋‚ด์ฃผ์‹  ์˜คํ† ๋ ˆ์ด์•„์›ƒ ์—ฐ์Šต์„ ์–ด์ œ๋ž‘ ์˜ค๋Š˜ ์ˆ˜์—… ์ „๊นŒ์ง€ ํ–ˆ๋Š”๋ฐ, ์™„์„ฑ์€ ํ–ˆ์ง€๋งŒ ์ต์ˆ™ํ•˜์ง€ ์•Š์•„ ์‹ค์ˆ˜๊ฐ€ ์žˆ์—ˆ๋Š”์ง€ ๋‹ค๋ฅธ ๊ธฐ๊ธฐ๋กœ ๋Œ๋ ธ์„ ๋•Œ ํ˜•ํƒœ๊ฐ€ ๋ง๊ฐ€์ง€๋Š” ๋ฌธ์ œ๊ฐ€ ๋ฐœ์ƒํ–ˆ์—ˆ๋‹ค. ๐Ÿฅน ๊ทธ๋ž˜์„œ ์ˆ˜์—… ๋•Œ ์Šคํ‹ฐ์ปค์— ๋ฉ”๋ชจํ•˜๋ฉด์„œ ๋“ค์—ˆ๊ณ , zoom ๊ฐ•์˜ ๋๋‚˜์ž๋งˆ์ž, ๋ฉ”๋ชจํ•œ ๋Œ€๋กœ ๋‹ค์‹œ ํ•œ๋ฒˆ ์‹œ๋„ํ•ด ๋ดค๋‹ค. (๋“ฃ๊ธฐ๋งŒ ํ•˜๋ฉด ๋‡Œ๋ฅผ ๋ฆฌ์…‹ ์‹œํ‚ค๋Š” ๋ฐ”๋ณด๋ผ..ใ…Žใ…Ž.. ๊ผญ ํ•ด๋ด์•ผ ํ•จ..) ๋‹ค์‹œ ํ•œ๋ฒˆ ๋งŒ๋“ค์–ด๋ณด๋ฉด์„œ ๋ง‰ํžˆ๋Š” ๋ถ€๋ถ„์€ ํŠœํ„ฐ๋‹˜ ์ฐพ์•„๊ฐ€์„œ ์—ฌ์ญค๋ณด๊ณ , ์ž˜๋ชป ๋ฉ”๋ชจํ•œ ๋ถ€๋ถ„์€ ๊ณ ์ณ๊ฐ€๋ฉด์„œ ์™„์„ฑํ•ด ๋ดค๋‹ค! ์ฝ”๋“œ๋กœ UI๋ฅผ ์ž˜ ์งœ๋ ค๋ฉด.. Storyboard์—์„œ ๋งŒ๋“ค ๋•Œ, '๋‚˜ ์ด ์ •๋„๋ฉด ์˜คํ† ๋ ˆ์ด์•„์›ƒ ๋งˆ์Šคํ„ฐํ–ˆ๋‹ค!' ๋ผ๊ณ  ์ƒ๊ฐ์ด ๋“ค ์ˆ˜ ์žˆ์„ ๋งŒํผ ํ•ด์•ผ ํ•œ๋‹ค๊ณ  ํ•˜์…”์„œ ..

[Swift] ํ”„๋กœ๊ทธ๋ž˜๋จธ์Šค_์ฝœ๋ผ์ธ  ์ถ”์ธก

์ฃผ์–ด์ง„ ์ˆซ์ž๊ฐ€ 1์ธ ๊ฒฝ์šฐ 0 ๋ฐ˜ํ™˜, ์œ„ ๊ณผ์ •์„ 500๋ฒˆ ๋ฐ˜๋ณตํ•  ๋•Œ๊นŒ์ง€ 1์ด ๋˜์ง€ ์•Š๋Š”๋‹ค๋ฉด, -1 ๋ฐ˜ํ™˜ ์กฐ๊ฑด๋„ ํฌํ•จํ•˜์—ฌ ๋ฌธ์ œ๋ฅผ ํ’€์–ด์•ผ ํ–ˆ๊ธฐ ๋•Œ๋ฌธ์— count ๋ณ€์ˆ˜๋ฅผ ๋งŒ๋“ค์–ด์„œ if ์กฐ๊ฑด๋ฌธ์œผ๋กœ ๋ฌธ์ œ๋ฅผ ํ’€์—ˆ๋‹ค.โ˜บ๏ธ