learnings/Swift

์•ฑ์ด ๋„คํŠธ์›Œํฌ ๊ธฐ๋Šฅ์„ ๊ฐ€์ง€๊ณ  ์žˆ๋‹ค๋ฉด, ์ด๊ฒƒ์„ ํ…Œ์ŠคํŠธํ•˜๋Š”๊ฒƒ์€ ์ค‘์š”ํ•ฉ๋‹ˆ๋‹ค.๋„คํŠธ์›Œํ‚นํ•˜๋Š” ๊ฐ์ฒด๋Š” ๊ฐ๊ธฐ ๋‹ค๋ฅธ ๋„คํŠธ์›Œํฌ ์‘๋‹ต์— ์˜๋„ํ•œ๋Œ€๋กœ ๊ธฐ๋Šฅํ•˜๊ณ  ๊ฒฐ๊ณผ๋ฅผ ๋ฐ˜ํ™˜ํ•ด์•ผ ํ•ฉ๋‹ˆ๋‹ค.์˜๋„ํ•œ๋Œ€๋กœ ๋™์ž‘ํ•˜์ง€ ์•Š์„ ์ˆ˜ ์žˆ๋‹ค๋Š” ๊ฒƒ์„ ์•Œ๋ฉด์„œ๋„ ๋ฐฐํฌํ•  ์ƒ๊ฐ์ด์‹ ๊ฐ€์š”?ํ…Œ์ŠคํŠธ๋Š” ๋งŒ๋Šฅ์ด ์•„๋‹™๋‹ˆ๋‹ค๋งŒ, ์ ์–ด๋„ ์ž„์˜์˜ ํ…Œ์ŠคํŠธ ์ž…๋ ฅ์— ๋Œ€ํ•ด์„œ ์˜๋„ํ•œ๋Œ€๋กœ ๋™์ž‘ ํ•˜๋Š”์ง€ ์ •๋„๋Š” ์•Œ ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.(๋„คํŠธ์›Œํฌ์—๋งŒ ๊ตญํ•œ๋˜๋Š” ์ด์•ผ๊ธฐ๋Š” ์•„๋‹ˆ์ง€๋งŒ์š”!)URLSession์„ ์‚ฌ์šฉํ•˜๋Š” ๋„คํŠธ์›Œํฌ ๊ฐ์ฒด๋Š” ์–ด๋–ป๊ฒŒ ํ…Œ์ŠคํŠธํ•  ์ˆ˜ ์žˆ์„๊นŒ?iOS์•ฑ์—์„œ ๋„คํŠธ์›Œํ‚น ๊ธฐ๋Šฅ์„ ์ œ๊ณตํ•˜๊ธฐ ์œ„ํ•ด์„œ๋Š” ์—ฌ๋Ÿฌ ํ”„๋ ˆ์ž„์›Œํฌ๋ฅผ ์‚ฌ์šฉํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.๊ทธ์ค‘ URLSession์„ ์‚ฌ์šฉํ–ˆ์„ ๊ฒฝ์šฐ๋ฅผ ๊ฐ€์ •ํ•˜๊ฒ ์Šต๋‹ˆ๋‹ค.๊ธฐ์กด์—๋Š” URLSession์„ ํ…Œ์ŠคํŠธํ•˜๋ ค๋ฉด, DataTask๋“ฑ์˜ ํ•จ์ˆ˜๋ฅผ Warpingํ•˜๋Š” ํ”„๋กœํ† ์ฝœ์„ ์„ ์–ธํ–ˆ์Šต๋‹ˆ๋‹ค...
๋ทฐ ์ขŒํ‘œ๊ณ„UIView์˜ ๊ณต์‹ ๋ฌธ์„œ์—๋Š” ์ขŒํ‘œ๊ณ„์— ๋Œ€ํ•ด ์ง์ ‘์ ์ธ ์–ธ๊ธ‰์€ ์—†์Šต๋‹ˆ๋‹ค. ๊ทธ๋Ÿฌ๋‚˜ ์งค๋ง‰ํ•˜๊ฒŒ View Programming Guide for iOS ๋ผ๋Š” ๋งํฌ๋กœ ์–ธ๊ธ‰ํ•˜๊ณ  ์žˆ๊ณ , View and Window Architecture - View Geometry and Coordinate Systems์—์„œ ๋ทฐ ์ขŒํ‘œ๊ณ„์— ๋Œ€ํ•œ ๋‚ด์šฉ์„ ํ™•์ธํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.๋ฒˆ์—ญํ•˜๋ฉด ๋ทฐ์˜ ๊ธฐํ•˜ํ•™์  ๊ตฌ์กฐ์™€ ์ขŒํ‘œ๊ณ„ ์ •๋„๊ฐ€ ๋˜๊ฒ ๋„ค์š”.๋ทฐ๋Š” ๊ธฐ๋ณธ์ ์œผ๋กœ ์ขŒ์ƒ๋‹จ์ด (0,0)๋ถ€ํ„ฐ ์‹œ์ž‘ํ•˜๊ณ  ์ด๋ฅผ origin point๋ผ๊ณ  ํ•ฉ๋‹ˆ๋‹ค. ์ˆ˜ํ‰ ๋ฐฉํ–ฅ์ด x์ถ•์ด๋ฉฐ ์ˆ˜์ง ๋ฐฉํ–ฅ์ด y์ถ• ์ด๊ณ , ์ขŒํ‘œ๊ณ„์˜ ๊ฐ’์€ ๋ถ€๋™์†Œ์ˆ˜์ ์œผ๋กœ ํ‘œํ˜„ํ•ฉ๋‹ˆ๋‹ค.๋ชจ๋“  ๋ทฐ์™€ ํ™”๋ฉด์€ ์ž์‹ ๋งŒ์˜ ์ขŒํ‘œ๊ณ„๋ฅผ ๊ฐ–๊ณ  ์žˆ๊ธฐ ๋•Œ๋ฌธ์—, ๊ฐœ๋ฐœ์ž๋Š” ์–ด๋–ค ์‹์œผ๋กœ๋“  ์ขŒํ‘œ๊ณ„๋ฅผ ์กฐ์ž‘ํ•  ๋•Œ ๋ฐœ์ƒํ•˜๋Š” ์˜ํ–ฅ์— ๋Œ€ํ•ด ์ธ์ง€ํ•˜๊ณ  ์žˆ์–ด์•ผ..
0. ๋ฐœ๋‹จํ™˜ํ˜• ๋งํฌ๋“œ ๋ฆฌ์ŠคํŠธ๋ฅผ ๋ฉ”๋ชจ๋ฆฌ์—์„œ ํ•ด์ œํ–ˆ๋Š”๋ฐ, ํ•ด๋‹น ๋ฆฌ์ŠคํŠธ ๋‚ด์˜ ๋…ธ๋“œ๋“ค์ด ๋ฉ”๋ชจ๋ฆฌ์—์„œ ํ•ด์ œ๋˜์ง€ ์•Š๋Š” ์ด์Šˆ๊ฐ€ ๋ฐœ์ƒํ•˜์˜€๋‹ค.var myCLL: CircularLinkedList? = CircularLinkedList()for i in 0..1. ์ƒํ™ฉ ๋ฐ ์›์ธ ํŒŒ์•…๋ฉ”๋ชจ๋ฆฌ ํ•ด์ œ ์ „, ๋ฆฌ์ŠคํŠธ์— ๋…ธ๋“œ๋ฅผ ์ถ”๊ฐ€ํ•  ๋•Œ ์˜ค๋กœ์ง€ ๋ฉ”์†Œ๋“œ insertAtLast๋งŒ์„ ์‚ฌ์šฉํ•˜์˜€๋‹ค.๋”ฐ๋ผ์„œ ํ•ด๋‹น ๋ฉ”์†Œ๋“œ๋ฅผ ํ˜ธ์ถœํ•˜์—ฌ ๋…ธ๋“œ์˜ ๊ด€๊ณ„๋ฅผ ์„ค์ •ํ•  ๋•Œ, ๋ฆฌ์ŠคํŠธ์˜ ํŠน์„ฑ์ƒ head์™€ tail ํ”„๋กœํผํ‹ฐ ๋ฐ ์ž…๋ ฅ๋˜๋Š” ๋…ธ๋“œ์— ๋Œ€ํ•œ ์ฐธ์กฐ๊ฐ€ ๋นˆ๋ฒˆํ•˜๋ฏ€๋กœ ํ•ด๋‹น ์ธ์Šคํ„ด์Šค๋“ค์— ๋Œ€ํ•œ ๋งˆ๊ตฌ์žก์ด์‹ ์ ‘๊ทผ์œผ๋กœ RC๊ฐ€ ๋งˆ๊ตฌ์žก์ด๋กœ ์Œ“์ด๋Š” ๊ฒƒ์ด ์›์ธ์ด๋ผ ์ง์ž‘ํ•˜์˜€๋‹ค.๋ฆฌ์ŠคํŠธ์˜ ๊ตฌํ˜„๋ถ€ ๋ฐ ๋ฆฌ์ŠคํŠธ์— ๋…ธ๋“œ๋ฅผ ์ถ”๊ฐ€ํ•  ๋•Œ ์‚ฌ์šฉํ–ˆ๋˜ insertAtLast ํ•จ์ˆ˜์˜ ๊ตฌํ˜„์€ ๋‹ค์Œ๊ณผ ๊ฐ™๋‹ค.clas..
๋ฉ”๋ชจ๋ฆฌ ๋ˆ„์ˆ˜๋ฅผ ์•Œ๊ณ  ๊ณ„์‹ ๊ฐ€์š”? ๋ญ‰๋šฑ๊ทธ๋ ค ๋งํ•˜๋ฉด, ๋ง ๊ทธ๋Œ€๋กœ ๋ฉ”๋ชจ๋ฆฌ๊ฐ€ ์ƒˆ๊ณ  ์žˆ๋‹ค๋Š” ๋ง์ž…๋‹ˆ๋‹ค,, ๋งŒ! ์ •ํ™•ํžˆ ๋งํ•˜๋ฉด, ํ”„๋กœ๊ทธ๋žจ์ด ํ•„์š”ํ•˜์ง€ ์•Š์€ ๋ฉ”๋ชจ๋ฆฌ๋ฅผ ์ ์œ ํ•˜๊ณ  ์žˆ๋Š” ํ˜„์ƒ์„ ๋งํ•ฉ๋‹ˆ๋‹ค. ์ฆ‰ ํ• ๋‹น๋œ ๋ฉ”๋ชจ๋ฆฌ์— ๋Œ€ํ•˜์—ฌ ๋”์ด์ƒ ์“ฐ์ง€ ์•Š์œผ๋ฏ€๋กœ ๋ฉ”๋ชจ๋ฆฌ ํ•ด์ œ๋ฅผ ํ•ด์•ผ ํ•˜๋Š”๋ฐ, ์ด๊ฒƒ์ด ์ œ๋Œ€๋กœ ์ด๋ฃจ์–ด์ง€์ง€ ์•Š๊ณ  ์žˆ๋Š” ๊ฒƒ์ด์ฃ . ๋ฉ”๋ชจ๋ฆฌ๋ฅผ ์ง์ ‘ ๊ฑด๋“œ๋Š” ์ผ์ด ์—†์–ด๋ณด์ด๋Š” Swift์—์„œ๋„ ๋ฉ”๋ชจ๋ฆฌ ๋ˆ„์ˆ˜๊ฐ€ ๋ฐœ์ƒํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค! ์–ด์งธ์„œ์ผ๊นŒ์š”? 0. ์‚ฌ๊ฑด ๋ฐœ์ƒ ์ž, ์—ฌ๊ธฐ ์˜ค๋ธŒ์ ํŠธ ํด๋ž˜์Šค๊ฐ€ ์žˆ์Šต๋‹ˆ๋‹ค. ๋‹ค๋ฅธ ์˜ค๋ธŒ์ ํŠธ๋ฅผ ์• ์ธ์œผ๋กœ ํ•˜๋Š”! ๋˜ํ•œ, ๋ฉ”๋ชจ๋ฆฌ ํ• ๋‹น๊ณผ ํ•ด์ œ์‹œ์— ์˜ค๋ธŒ์ ํŠธ์˜ ์ฃผ์†Œ๋ฅผ ํ˜ธ์ถœํ•˜๋Š” ํด๋ž˜์Šค๋ฅผ ์ƒ์†๋ฐ›๊ณ  ์žˆ์Šต๋‹ˆ๋‹ค. class Object:AddressPrinter{ var lover: Object? } class AddressPrinter{ in..
๊ณผ์ œ๋กœ ๋งŒ๋“ค์—ˆ๋˜ UPlayList๋ฅผ swift๋กœ ๋งˆ์ด๊ทธ๋ ˆ์ด์…˜ํ•˜๋ฉฐ UI์— ๋Œ€ํ•œ ์š•์‹ฌ์ด ์ƒ๊ฒผ๋‹ค.UIPageControl์—๋Š” ์ด๋ฏธ SnapScroll๊ณผ ๊ด€๋ จํ•œ ์ •๋ณด๋“ค์ด ๋งŽ์€๋ฐ, TableViewControll์€ ์„œ์นญํ•ด๋„ ์ฐพ์•„๋ณด๊ธฐ ํž˜๋“ค์–ด์„œ,,๋‚˜์—๊ฒŒ๋„ ์ด๊ฑธ ์ฐพ๋Š”์‚ฌ๋žŒ์—๊ฒŒ๋„ ๋„์›€์ด ๋ ๊ฒƒ ๊ฐ™์•„ ๊ธฐ๋ก์„ ๋‚จ๊ธฐ๋ ค๊ณ  ํ•œ๋‹ค.0. SnapScroll ๋Œ€ํ‘œ์ ์œผ๋กœ ์œ ํŠœ๋ธŒ ์ˆ์ธ ๋‚˜ ํ‹ฑํ†ก์—์„œ ์ž์ฃผ ์ ‘ํ•  ์ˆ˜ ์žˆ๋Š”๋ฐ, ์œ„์˜ ๊ทธ๋ฆผ๊ณผ ๊ฐ™์ด ์Šคํฌ๋กค์„ ๋‚ด๋ฆฌ๊ฑฐ๋‚˜ ํŽ˜์ด์ง€๋ฅผ ์ด๋™ํ•˜๋ฉด์ž์„์ฒ˜๋Ÿผ ๋ชจ์„œ๋ฆฌ์— ๋‹ฌ๋ผ๋ถ™๋Š” ์• ๋‹ˆ๋ฉ”์ด์…˜์ด๋‹ค.CSS๊ณต์‹๊ฐ€์ด๋“œ์—์„œ ์ด๊ฒŒ ๋ฌด์—‡์ธ์ง€ ์‰ฝ๊ฒŒ ์•Œ ์ˆ˜ ์žˆ๋‹ค.1. UITableView ์ด ์•„์ด๋Š” UIScrollView๋ฅผ ์ƒ์†๋ฐ›์•„ ์—ฌ๋Ÿฌ ํ–‰์˜ ๋ฐ์ดํ„ฐ๋ฅผ ๋ณด์—ฌ์ฃผ๋Š” ์—ญํ• ์„ ํ•˜๋Š”๋ฐ, UIScrollView๋ผ๋Š” ๋…€์„์ด ๋””๋ฐ”์ด์Šค์˜ ๋””์Šคํ”Œ๋ ˆ์ด๋ฅผ ํ•˜๋‚˜์˜ W..
๋ฌด์ง€์„ฑ ํ† ์ดํ”„๋กœ์ ํŠธ ์‹œ๋ฆฌ์ฆˆ ์ž‘์—… ์ˆœ์„œ...? ๋ทฐ์ปจํŠธ๋กค๋Ÿฌ๋ž‘ ์นœํ•ด์ง€๊ธฐ UIImagePickerController๋ฅผ ์ด์šฉํ•œ ์‚ฌ์ง„์ฒจ๋ถ€ CoreData๋ผ๋Š” Framework๋ฅผ ์‚ฌ์šฉํ•œ CRUD๊ตฌํ˜„ TableView, TableViewCell, ์ปค์Šคํ…€ ์…€์ด๋ž‘ ์–ด๋–ป๊ฒŒ๋“  ์นœํ•ด์ง€๊ธฐ ๊ทธ์ค‘ ์˜ค๋Š˜์€ 3๋ฒˆ๋ถ€ํ„ฐ!! ๊ณ ๊ณ ๊ณ ใ…—๊ณ ๊ณ ๊ณกใ„ฑ 3. CoreData๋ผ๋Š” FrameWork๋ฅผ ์ด์šฉํ•œ CRUD๊ตฌํ˜„ ์•ฑ ๋กœ์ปฌ DB๋กœ ์“ธ ์ˆ˜ ์žˆ๋Š”๊ฒƒ๋“ค์ด ๋ช‡๊ฐœ์žˆ๋‹ค. UserDefault, CoreData, SQLite, Realm,,์ •๋„? UserDefault๋Š” ๋Œ€๋Ÿ‰์˜ ๋ฐ์ดํ„ฐ๋ฅผ ์ €์žฅํ•˜๋Š”๋ฐ์— ์ ํ•ฉํ•˜์ง€ ์•Š์€๊ฒƒ ๊ฐ™๋‹ค. ๋กœ๊ทธ์ธ ๋ฐ์ดํ„ฐ ์ €์žฅ์ด๋‚˜,,์•ฑ ์ตœ์ดˆ์‹คํ–‰ ์—ฌ๋ถ€๋‚˜ ๊ทธ๋Ÿฐ๊ฒƒ๋“ค์„ ์ €์žฅํ•˜๋Š”๋ฐ์— ์“ฐ๋Š”๋“ฏ. ๋‚˜์ค‘์— ์•จ๋ฒ”๊ธฐ๋Šฅ์„ ๊ตฌํ˜„ํ• ๋•Œ tableView๋ฅผ ์ด์šฉํ•  ์˜ˆ์ •์ด๋ฏ€๋กœ, Co..
Une.
'learnings/Swift' ์นดํ…Œ๊ณ ๋ฆฌ์˜ ๊ธ€ ๋ชฉ๋ก