โœ๏ธ TIL

๋ฒ„ํŠผ ํด๋ฆญ์‹œ TabBar ์ด๋™ ์–ด์ œ๋ถ€ํ„ฐ ๊ดด๋กญํžˆ๋˜ ViewController ์ด๋™..! ์ œ๊ฐ€ ํ•ด๋ƒˆ์Šต๋‹ˆ๋‹ค!! ์œ„์— ๋ณด์ด์‹œ๋Š” ๊ทธ๋ฆผ์—์„œ ์ €๋Š” ์ € > ( ํ™”์‚ดํ‘œ ๋ฒ„ํŠผ ) ์„ ๋ˆŒ๋ €์„ ๋•Œ ์•„๋ž˜์˜ ๋นจ๊ฐ„ ํ™”์‚ดํ‘œ ์ฒ˜๋Ÿผ ์ด๋™ํ•ด์„œ ์›๋ž˜์˜ TodoList๋ฅผ ๋ณด์—ฌ์ฃผ๊ณ  ์‹ถ์—ˆ๋˜ ๊ฑฐ์˜€์–ด์š”. ์™œ ๊ทธ๋ ‡๊ฒŒ ์ด๋™ํ•ด์•ผํ•ด?! ์˜๋„๊ฐ€ ๋ญ์•ผ?! ์ œ๊ฐ€ ์˜๋„ํ•œ ์บ˜๋ฆฐ๋”๋Š” just ๊ทธ ๋‚  ๋‚ด๊ฐ€ ์–ด๋–ค ๊ฑธ ํ–ˆ์—ˆ์ง€?!๋ฅผ ๋ณด์—ฌ์ฃผ๋Š” ๊ณต๊ฐ„์ธ ๊ฑฐ์—์š”! ์ผ์ผํžˆ TodoList์—์„œ ํ™”์‚ดํ‘œ๋กœ ๋„˜์–ด๊ฐ€๋Š”๊ฒŒ ํž˜๋“œ๋‹ˆ๊น! ์บ˜๋ฆฐ๋”์—์„œ ํ•ด๋‹น ๋‚ ์งœ๋ฅผ ํด๋ฆญํ•˜๋ฉด ๋ฒ„ํŠผ๊ณผ ํ…Œ์ด๋ธ” ๋ทฐ๊ฐ€ ์ˆ˜์ •์ด ๋˜์ง€ ์•Š๊ณ , ๊ทธ๋ƒฅ ์–ด๋–ค Todo ๊ฐ€ ์žˆ์—ˆ๊ณ , ๋‚˜๋Š” ๊ทธ๊ฑธ ์ด๋งŒํผ ํ–ˆ์–ด!๋ฅผ ๋ณด์—ฌ์ฃผ๋Š” ๊ฒƒ์ด์ฃ ! ๊ทผ๋ฐ ์ˆ˜์ •ํ•˜๊ณ  ์‹ถ์„ ์ˆ˜ ์žˆ๊ณ  ๊ทธ๋‚  ๋ฐ์ดํ„ฐ๋กœ ๋„˜์–ด๊ฐ€๊ณ  ์‹ถ์„ ์ˆ˜ ์žˆ์œผ๋‹ˆ ํ™”์‚ดํ‘œ๋ฅผ ๋งŒ๋“ค์–ด ์ˆ˜์ •๋„ ๋˜๊ณ ! ์ถ”๊ฐ€๋„ ๋˜๊ณ ! ์ฒด..
์•ˆ๋…•ํ•˜์„ธ์š”! ์ธ์ƒ์ด ์ฐธ ๋งˆ์Œ์ฒ˜๋Ÿผ ์‰ฝ์ง€ ์•Š๋„ค์š”..!๐Ÿ˜ฑ ๊ทธ๋ž˜๋„ ๋งŽ์€ ๊ฒƒ๋“ค์„ ํ•œ ๊ฒƒ ๊ฐ™์•„์š”! ์šฐ์„  ์ œ๊ฐ€ ๋‹ฅ์ณค๋˜ ์˜ค๋ฅ˜๋“ค๋ถ€ํ„ฐ ์ •๋ฆฌํ•ด ๋ด…์‹œ๋‹ค. TableView์˜ ํ•จ์ˆ˜๊ฐ€ ํ˜ธ์ถœ๋˜์ง€ ์•Š๋Š” ์˜ค๋ฅ˜ ์ €์˜ ์ƒํ™ฉ์„ ์„ค๋ช…ํ•˜์ž๋ฉด, CalenderVC์—์„œ ๋‚ ์งœ๋ฅผ ์„ ํƒํ•˜๋ฉด TodoListVC์œผ๋กœ ํ•ด๋‹น ๋‚ ์งœ๋ฅผ ๋„˜๊ฒจ์ฃผ๋ฉด์„œ ํ™”๋ฉด์ด ์ „ํ™˜๋ฉ๋‹ˆ๋‹ค. ์ด๋•Œ ๋„˜๊ฒจ์ค€ ๋‚ ์งœ๋ฅผ ๊ฐ€์ง€๊ณ , ์ฝ”์–ด๋ฐ์ดํ„ฐ์—์„œ ๋‚ ์งœ์— ํ•ด๋‹นํ•˜๋Š” ๋ฐ์ดํ„ฐ๋ฅผ ๋ถˆ๋Ÿฌ์˜จ ๋‹ค์Œ TodoListVC์—์„œ TodoTableViewCell๋กœ ๋ฐ์ดํ„ฐ๋ฅผ ๋„˜๊ฒจ์ฃผ์–ด์•ผ ํ•ด์š”. ๊ทผ๋ฐ!!!! ์—ฌ๊ธฐ์„œ!!!! TableView์— ์•„๋ฌด๊ฒƒ๋„ ๋œจ์ง€ ์•Š๋Š” ์˜ค๋ฅ˜๊ฐ€ ๋ฐœ์ƒํ–ˆ์Šต๋‹ˆ๋‹ค! TableViewCell๋ฅผ ๋ถˆ๋Ÿฌ์˜ค๋Š” ํ•จ์ˆ˜์ธ func tableView(_ tableView: UITableView, numberOfRowsInSecti..
์•ˆ๋…•ํ•˜์„ธ์š”๐Ÿ˜„ ์˜ค๋Š˜ ์ •๋ง ์ง‘์ค‘๋„ ์•ˆ๋˜๊ณ , ์ œ๋Œ€๋กœ ๊ตฌํ˜„ํ•ด๋‚ธ ๊ฒƒ๋„ ์—†๋Š” ํ•˜๋ฃจ์ž…๋‹ˆ๋‹ค. ๋ญ! ์ด๋Ÿฐ ๋‚ ๋„ ์žˆ๋Š” ๊ฑฐ๊ฒ ์ฃ ?! UICalendarView ์ž์‹์ด ๋ญ๋ผ๊ณ  ๋‚ด ๊ธฐ๋ฅผ ์ฃฝ์—ฌ! ์˜ค๋Š˜ ๋ฐฐ์šด ๊ณต๋ถ€๋ฅผ ์ •๋ฆฌํ•ด๋ด…์‹œ๋‹ค~! 1์ผ 1๋กœ๊ทธ 100์ผ ์™„์„ฑ์˜ ์ฒซ ๋‹จ์ถ”๋ฅผ ๊ฟฐ๋ฉ”์—ˆ๋Š”๋ฐ์š”! ์˜ค๋Š˜์˜ ๋‚ด์šฉ์€ ํ•˜๋“œ์›จ์–ด์˜ ์—ญ์‚ฌ..? ์ปดํ“จํ„ฐ์˜ ์—ญ์‚ฌ..? ์ด์—ˆ๋˜ ๊ฒƒ ๊ฐ™์•„์š”! ( ์‚ฌ์‹ค ์˜ค๋Š˜ ์ข€ ๋Œ€์ถฉ.. ์ฝ.. ํฌํ .. ) ์˜ค๋Š˜์€ UICalenderView์—์„œ ํ•ด๋‹น ๋‚ ์งœ๋ฅผ ํด๋ฆญํ•˜์˜€์„ ๋•Œ, ์ƒˆ๋กœ์šด ViewController๊ฐ€ ๋“ฑ์žฅํ•˜๋ฉด์„œ ๋‹ฌ๋ ฅ์˜ ๋‚ ์งœ ํ˜•์‹์„ ๋„˜๊ฒจ์ฃผ๋Š” ์ฝ”๋“œ๋ฅผ ์ž‘์„ฑํ–ˆ์–ด์š”! UICalendarSelectionSingleDateDelegate UICalenderView์—์„œ๋Š” ๋‹จ์ผํ•œ ๋‚ ์งœ๋ฅผ ์„ ํƒํ•˜๊ธฐ ์œ„ํ•ด์„œ๋Š” UICalenderSelectionSing..
์‚ฌ๋ž‘ํ•ฉ๋‹ˆ๋‹ค.. ๋‚ด๋ฐฐ์บ .. ๐Ÿ’— ์ €..์ด๋ฒˆ์ฃผ ์šฐ์ˆ˜ TIL๋กœ ์„ ์ •๋์–ด์š”!!! ๋„ˆ๋ฌด ๋ฟŒ๋“ฏํ•˜๊ณ , ๊ธฐ์˜๋„ค์šค..! ๊ทธ๋ƒฅ ๋ช…์˜ˆ +1 ์ด์ง€๋งŒ ใ…‹ใ…‹ใ…‹ใ…‹ใ…‹ใ…‹ใ…‹ ๋” ์—ด์‹ฌํžˆ TIL ์ž‘์„ฑํ•˜๊ณ  ์‹ถ๊ฒŒ ๋งŒ๋“œ๋Š”.. ๊ทธ๋Ÿฐ ์ƒ์ด๋ž„๊นŒ..? ใ…Ž ์•”ํŠผ! ๊ทธ๋ ‡๊ธฐ์— ์˜ค๋Š˜๋„ TIL์„ ์—ด์‹ฌํžˆ ์ž‘์„ฑํ•ด๋ด์•ผ์ง€ ์•Š๊ฒ ์Šต๋‹ˆ๊นŒ?! ๋งจ๋‚  ์‹œ๊ฐ„์— ์ซ’๊ฒจ์ ๋Š” TIL ์‹œ์ž‘ํ•ฉ๋‹ˆ๋‹ค. ์–ด์ œ ๊ต๋ณด๋ฌธ๊ณ ์™€ ์•Œ๋ผ๋”˜ ์„œ์ ์„ ๋‹ค๋…€์™”์–ด์š”!โœจ ์ œ๊ฐ€ CS์ง€์‹์ด ๋ถ€์กฑํ•œ ๊ฑฐ ๊ฐ™์•„์„œ! ๋ฌธํ•ด๋ ฅ๋„ ๊ธฐ๋ฅผ๊ฒธ ์ฑ…์„ ๋‘ ๊ถŒ ์‚ฌ์™”์Šต๋‹ˆ๋‹ค!! "1์ผ 1๋กœ๊ทธ 100์ผ ์™„์„ฑ IT์ง€์‹"๊ณผ "๋ฉด์ ‘์„ ์œ„ํ•œ CS ์ „๊ณต์ง€์‹ ๋…ธํŠธ" ์—์š”~! ์•„์นจ๊ณผ ์ €๋…์— ๊พธ์ค€ํžˆ ์ฝ์–ด์„œ ์ง€์‹์„ ์ข€ ๋” ์ถ”๊ฐ€ํ•ด TIL๋กœ ์จ๋ณผ๊นŒ ํ•ฉ๋‹ˆ๋‹ค! ๋ฌผ๋ก  ๋‚ด์ผ๋ถ€ํ„ฐ์š”! ์ ˆ๋Œ€ ๋ฏธ๋ฃจ๋Š”๊ฒŒ ์•„๋‹ˆ๋ผ ์˜ค๋Š˜ ์•„์นจ์— ์šด๋™ ์‹œ๊ฐ„์ด ์˜ค๋ฐ”๋˜์–ด์„œ ์ฑ…์ฝ์„๋ ค๊ณ ํ•œ ๊ณ„ํš์ด ๋ฌด๋„ˆ์กŒ์–ด์š”ใ…‹ใ…‹ใ…‹ -[..
์•ˆ๋…•ํ•˜์„ธ์š”! ์˜ค๋Š˜ ํ•˜๋ฃจ๋Š” ์–ด๋• ๋ƒ๋ฉด์š”.. ๋Š˜์–ด๋‚˜๋Š” ๊ธฐ๋Šฅ ์š•์‹ฌ๊ณผ ๊ทธ์™€ ํ•จ๊ป˜ ๋Š˜์–ด๋‚˜๋Š” ์˜ค๋ฅ˜๋“ค์„ ์ฒ˜๋ฆฌํ•˜๊ณ  ์ˆ˜์Šตํ•˜๊ธฐ์— ๊ธ‰๊ธ‰ํ–ˆ์Šต๋‹ˆ๋‹ค. [ ์ƒˆ๋กญ๊ฒŒ ๊ตฌํ˜„ํ•œ ๊ธฐ๋Šฅ๋“ค ] โ˜‘๏ธ TodoList์˜ ๋‚ ์งœ ๊ตฌํ˜„ Date() ๊ฐ’์„ ๋„ฃ์–ด์„œ ์˜ค๋Š˜์˜ ๋‚ ์งœ ๊ตฌํ˜„์„ ์™„๋ฃŒํ•˜์˜€์Šต๋‹ˆ๋‹ค! Date ๊ฐ’์„ ๋„ฃ๊ธฐ ์œ„ํ•ด์„œ๋Š” Date๋ฅผ ๋‚ด๊ฐ€ ์›ํ•˜๋Š” String์œผ๋กœ ๋ณ€๊ฒฝํ•ด์•ผํ•˜๊ณ , String์œผ๋กœ ์ •์˜๋œ ๋‚ ์งœ๋ฅผ ๋‹ค์‹œ Date๋กœ๋„ ๋งŒ๋“ค ์ˆ˜ ์žˆ์–ด์•ผ ํ•˜๋”๋ผ๊ตฌ์š”! ๊ทธ๋ž˜์„œ ์š” ๋‘๊ฐ€์ง€ ํ•จ์ˆ˜๋ฅผ ๋„ฃ์–ด์ฃผ์—ˆ์Šต๋‹ˆ๋‹ค. // MARK: - toDate ํ•จ์ˆ˜ extension String { // String -> Date ๋กœ ๋ณ€๊ฒฝํ•˜๋Š” ํ•จ์ˆ˜ func toDate() -> Date? { let dateFormatter = DateFormatter() dateFormatter.dateF..
์˜ค๋Š˜! ์–ด์ œ์˜ ์˜ค๋ฅ˜๋“ค์„ ๋‹ค ํ•ด๊ฒฐํ–ˆ์Šต๋‹ˆ๋‹ค! ์ด๊ฒŒ ๋‚˜์•ผ! ๋ฟŒ๋“ฏ ๋ฟŒ๋“ฏ! ์•„์ฃผ ๋ฟŒ๋“ฏํ•ฉ๋‹ˆ๋‹คใ…Ž ์šฐ์„  ๋ฟŒ๋“ฏํ•จ์„ ๋’ค๋กœ ์ –ํ˜€๋‘๊ณ , ์˜ค๋Š˜์€ ์–ด๋–ค ๊ฒƒ์„ ์ƒˆ๋กญ๊ฒŒ ๋ฐฐ์› ๋Š”์ง€ ์ •๋ฆฌํ•ด ๋ด…์‹œ๋‹ค! UUID UUID๋Š” Universally Unique IDentifier์˜ ์•ฝ์ž์ธ๋ฐ์š”. 36๊ฐœ์˜ ๋ฌธ์ž์—ด๋กœ ์ด๋ฃจ์–ด์ ธ ๊ณ ์œ ์˜ ์‹๋ณ„์ž๋ฅผ ์ง€์ •ํ•˜๋Š” ๊ตฌ์กฐ์ฒด์ž…๋‹ˆ๋‹ค. UUID๋Š” ์‚ฌ๋žŒ์—๊ฒŒ ์žˆ์–ด์„œ๋Š” ์ฃผ๋ฏผ๋“ฑ๋ก๋ฒˆํ˜ธ๋ผ๊ณ  ์ƒ๊ฐํ•˜๋ฉด ์‰ฌ์šธ ๊ฒƒ ๊ฐ™์•„์š”! ์ฃผ๋ฏผ๋“ฑ๋ก๋ฒˆํ˜ธ๋Š” ์‚ฌ๋žŒ๋งˆ๋‹ค ๋‹ค ๋‹ค๋ฅด๊ณ , ์ ˆ๋Œ€ ์ค‘๋ณต์ด ๋  ์ˆ˜ ์—†์ž–์•„์š”?! ๊ทธ๋Ÿฐ ๊ฒƒ์ฒ˜๋Ÿผ ์–ด๋–ค ๊ณ ์œ ์˜ ID๋ฅผ ์ง€์ •ํ•˜๊ณ  ์‹ถ์„ ๋•Œ ์ด UUID ๊ตฌ์กฐ์ฒด๋ฅผ ์‚ฌ์šฉํ•ด ์ฃผ์‹œ๋ฉด ๋ฉ๋‹ˆ๋‹ค. 36๊ฐœ์˜ ์•ŒํŒŒ๋ฒณ ๋˜๋Š” ์ˆซ์ž๋กœ ์ด๋ฃจ์–ด์ ธ ์žˆ์–ด ๊ฐ€์ง“์ˆ˜๊ฐ€ ์—„์ฒญ ๋งŽ์€๋ฐ์š” ๊ทธ ์ˆ˜๋Š” ๋ฌด๋ ค 10์˜ 36์ œ๊ณฑ๊ฐœ๋ผ๊ณ  ํ•˜๋„ค์š”! ์ €๋Š” TodoData์˜ id์— ์ด UUID๋ฅผ ์ ์šฉ..
์•ˆ๋ƒฅํ•˜์„ธ์š”! ์˜ค๋Š˜๋„ ์–ด๊น€์—†์ด TIL์„ ์“ฐ๋Ÿฌ ์˜จ ์ €์˜ˆ์š”๐Ÿ˜ ํ›„.. ์˜ค๋Š˜์€ "์ฝ”์–ด๋ฐ์ดํ„ฐ" ์นœ๊ตฌ๋ž‘ ํ•œ ํŒ ๋ถ™์—ˆ๋Š”๋ฐ์š”?! ๊ทธ๋ƒฅ ์ ธ๋ฒ„๋ ธ์Šต๋‹ˆ๋‹ค...ใ…‹ ๊ทธ๋ž˜๋„ ๊ณ„์† ์‹ธ์›Œ๋ด์•ผ์ฃ ..! ์ค‘์š”ํ•œ๊ฑด ๊บพ์˜€๋Š”๋ฐ๋„ ๊ทธ๋ƒฅ ํ•˜๋Š” ๋งˆ์Œ์ด๋‹ˆ๊น์š”. ์ฝ”์–ด๋ฐ์ดํ„ฐ ์ฝ”์–ด๋ฐ์ดํ„ฐ๋ž€ ๋ฐ์ดํ„ฐ ๋ฒ ์ด์Šค๋ฅผ ์‚ฌ์šฉํ•˜์ง€ ์•Š๊ณ , ์•ฑ์˜ ๋ฐ์ดํ„ฐ๋ฅผ ์ €์žฅํ•  ์ˆ˜ ์žˆ๋„๋ก ํ•ด์ฃผ๋Š” Apple์—์„œ ์ œ๊ณต๋˜๋Š” Framework ์—์š”! ์˜๊ตฌ์ ์ธ ๋ฐ์ดํ„ฐ๋ฅผ ์˜์–ด๋กœ permanent data ๋ผ๊ณ  ํ•˜๋Š”๋ฐ์š”. ๋””๋ฐ”์ด์Šค์˜ permanent data๋ฅผ ์ €์žฅํ•˜๊ณ  ๊ด€๋ฆฌํ•  ์ˆ˜ ์žˆ๋„๋ก ๋„์™€์ฃผ๋Š” ์นœ๊ตฌ์ž…๋‹ˆ๋‹ค. ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค๋ฅผ ๋ชฐ๋ผ๋„ ๋””๋ฐ”์ด์Šค์˜ ๋ฐ์ดํ„ฐ๋ฅผ ์ €์žฅํ•  ์ˆ˜ ์žˆ๋„๋ก ๋„์™€์ฃผ๋‹ˆ ์–ผ๋งˆ๋‚˜ ๊ธฐํŠนํ•œ ์นœ๊ตฌ์˜ˆ์š”! ์ธํ„ฐ๋„ท์—์„œ ์ฐพ์•„๋ณด๋‹ˆ ์–ด๋ ค์šด ์šฉ์–ด๋กœ ๊ฐ์ฒด ๊ทธ๋ž˜ํ”„ ๊ด€๋ฆฌ ํ”„๋ ˆ์ž„์›Œํฌ๋ผ๊ณ  ํ•˜๋˜๋ฐ, ์‰ฝ๊ฒŒ ๋งํ•ด์„œ Swift๋Š” ๊ฐ์ฒด ์ง€ํ–ฅ..
์ด์ œ ์Šค์Šค๋กœ ๊ฐœ์ธ ํ”„๋กœ์ ํŠธ๋„ ์ง„ํ–‰ํ•ด ๋ณด๋ฉด์„œ ์Šฌ์Šฌ ์•ฑ์˜ ์ฒซ ์‹œ์ž‘์€ ์–ด๋–ป๊ฒŒ ๊ตฌํ˜„ํ•ด์•ผ ํ• ์ง€ ๋ญ๋ถ€ํ„ฐ ์‹œ์ž‘ํ•ด์„œ ์–ด๋–ป๊ฒŒ ๊ตฌ์„ฑํ•ด๊ฐ€์•ผ ํ• ์ง€ ํ‹€์ด ์žกํžŒ ๋Š๋‚Œ์ด์—์š”. ๋ง‰๋ง‰ํ–ˆ๋˜ ํ˜ˆ์ด ํ•˜๋‚˜ ๋šซ๋ ค์„œ ๋ง‰ ๋‹ฌ๋ ค๊ฐ€๊ณ  ์žˆ๋Š” ๋Š๋‚Œ์ž…๋‹ˆ๋‹ค. ์—ญ์‹œ๋‚˜ ์ ์‹œ๋‚˜ ๊ฐ•์˜๋กœ ๊ทธ๋ƒฅ ๋“ฃ๋Š” ๊ฒƒ๊ณผ ์‹ค์ œ๋กœ ๋‚ด๊ฐ€ ๊ตฌํ˜„ํ•˜๊ณ  ์‹ถ์€ ๊ฒƒ์„ ๊ตฌํ˜„ํ•˜๋Š” ๊ฒƒ์€ ์ •๋ง ๋‹ฌ๋ž์–ด์š”! ๊ทธ๋ž˜์„œ ๋” ์žฌ๋ฏธ๋‚œ ๊ฒƒ ๊ฐ™๊ธฐ๋„ ํ•ฉ๋‹ˆ๋‹ค! ใ…Žใ…Ž ์˜ค๋Š˜์€ ์–ผ๋Ÿฟ์ฐฝ๊ณผ ๋„ค๋น„๊ฒŒ์ด์…˜๋ทฐ๋ฅผ ์ด์šฉํ•ด Editting ๋ชจ๋“œ๋ฅผ ์‚ฌ์šฉํ•ด์„œ todolist ์ถ”๊ฐ€ ๋ฒ„ํŠผ๊ณผ ์‚ญ์ œ ๋ฒ„ํŠผ์„ ๊ตฌํ˜„ํ•˜์˜€์–ด์š”! ์ž์„ธํ•œ ์ด์•ผ๊ธฐ๋Š” ์•„๋ž˜์˜ ๋ธ”๋กœ๊ทธ ๋งํฌ๋ฅผ ์ฐธ๊ณ ํ•ด ์ฃผ์„ธ์š”! https://jihae-qu.tistory.com/entry/Project-todoList-%EA%B5%AC%ED%98%84%ED%95%98%EA%B8%B0-2 [ Project ] ..
EarthSea
'โœ๏ธ TIL' ์นดํ…Œ๊ณ ๋ฆฌ์˜ ๊ธ€ ๋ชฉ๋ก (2 Page)