๋ถ„๋ฅ˜ ์ „์ฒด๋ณด๊ธฐ

์˜ค๋Š˜์€ ๋ฉ”์ธํ™”๋ฉด๊ณผ TableView์— Pull to refresh ( ๋‹น๊ฒจ์„œ ์ƒˆ๋กœ๊ณ ์นจ ) ๋ฅผ ์ ์šฉํ•ด ๋ณด์•˜์Šต๋‹ˆ๋‹ค. UIRefreshControl UIRefreshControl๋Š” Table View์™€ Collection View๊ฐ€ ์ƒ์†๋ฐ›๊ณ  ์žˆ๋Š” UIScrollView์— ์—ฐ๊ฒฐํ•˜๋Š” ํ‘œ์ค€ Control์ž…๋‹ˆ๋‹ค. Content๋ฅผ ์ƒˆ๋กœ๊ณ ์นจํ•  ์ˆ˜ ์žˆ๋Š” Control๋ฅผ ์ œ๊ณตํ•˜๋Š” object์ž…๋‹ˆ๋‹ค. ์‚ฌ์šฉ์ž๊ฐ€ ์Šคํฌ๋กค์ด ๊ฐ€๋Šฅํ•œ Content ์˜์—ญ์„ ์•„๋ž˜๋กœ ๋“œ๋ž˜๊ทธํ•˜๋ฉด refresh control์ด ํ‘œ์‹œ๋˜๊ณ , progress indicator๊ฐ€ ์• ๋‹ˆ๋ฉ”์ด์…˜ํ™” ๋˜์–ด ์•ฑ์— ์•Œ๋ ค์ค๋‹ˆ๋‹ค. ์ด ์•Œ๋ฆผ์„ ์‚ฌ์šฉํ•ด content๋ฅผ ์—…๋ฐ์ดํŠธํ•˜๊ฑฐ๋‚˜ refresh control์„ ๋ฌด์‹œํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. Target-action ๋ฉ”์ปค๋‹ˆ์ฆ˜ UIRefreshC..
์˜ค๋Š˜์€ Scroll View์˜ ๋ ˆ์ด์•„์›ƒ์„ ์žก๋Š” ๊ฒƒ์— ๋Œ€ํ•ด์„œ ์ •๋ฆฌํ•ด๋ณด๋ ค๊ณ  ํ•ฉ๋‹ˆ๋‹ค! ScrollView ScrollView๋Š” ์Šคํฌ๋กค์ด ๊ฐ€๋Šฅํ•œ Content์˜์—ญ ๋‚ด์—์„œ ์ž์‹ ์˜ Content๋ฅผ ํ‘œ์‹œํ•ฉ๋‹ˆ๋‹ค. ์‚ฌ์šฉ์ž๊ฐ€ ํ”Œ๋žซํผ์— ์ ํ•ฉํ•œ Scroll gesture๋ฅผ ์ˆ˜ํ–‰ํ•  ๋•Œ, ScrollView๋Š” ๊ธฐ๋ณธ content์˜ ์–ด๋Š ๋ถ€๋ถ„์ด ๋ณด์ด๋Š”์ง€ ์กฐ์ •ํ•ฉ๋‹ˆ๋‹ค. ScrollView๋Š” ์ˆ˜ํ‰, ์ˆ˜์ง ํ˜น์€ ๋‘ ๊ฐœ ๋‹ค ์Šคํฌ๋กคํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ํ•˜์ง€๋งŒ, ์คŒ ๊ธฐ๋Šฅ์„ ์ œ๊ณตํ•˜์ง€๋Š” ์•Š์Šต๋‹ˆ๋‹ค. TableView์™€ CollectionView๋Š” ScrollView๋ฅผ ์ƒ์†๋ฐ›๊ณ  ์žˆ๊ธฐ ๋•Œ๋ฌธ์— ์ž๋™์œผ๋กœ ์Šคํฌ๋กค์ด ๊ฐ€๋Šฅํ•ฉ๋‹ˆ๋‹ค. ScrollView ์ ์šฉ 1) ViewController์— ScrollView๋ฅผ ์˜ฌ๋ ค์„œ AutoLayout ์„ค์ •ํ•˜๊ธฐ Library ์ฐฝ์—..
๐Ÿ„ ์ฝ”๋”ฉํ…Œ์ŠคํŠธ ๋ฌธ์ œ ํ’€์ด ํ”„๋กœ๊ทธ๋ž˜๋จธ์Šค ์ฝ”๋“œ ์ค‘์‹ฌ์˜ ๊ฐœ๋ฐœ์ž ์ฑ„์šฉ. ์Šคํƒ ๊ธฐ๋ฐ˜์˜ ํฌ์ง€์…˜ ๋งค์นญ. ํ”„๋กœ๊ทธ๋ž˜๋จธ์Šค์˜ ๊ฐœ๋ฐœ์ž ๋งž์ถคํ˜• ํ”„๋กœํ•„์„ ๋“ฑ๋กํ•˜๊ณ , ๋‚˜์™€ ๊ธฐ์ˆ  ๊ถํ•ฉ์ด ์ž˜ ๋งž๋Š” ๊ธฐ์—…๋“ค์„ ๋งค์นญ ๋ฐ›์œผ์„ธ์š”. programmers.co.kr โœ๐Ÿป ๋ฌธ์ œ ํ’€์ด github ๋งํฌ -Swift-CodingTest/ํ”„๋กœ๊ทธ๋ž˜๋จธ์Šค/2/12949. ํ–‰๋ ฌ์˜ ๊ณฑ์…ˆ at main · BaeJihae/-Swift-CodingTest Swift๋กœ ํ‘ผ ์ฝ”๋”ฉ ํ…Œ์ŠคํŠธ ๋ฌธ์ œ๋“ค์„ ์ •๋ฆฌํ•˜๊ณ  ๊ณต๋ถ€ํ•˜๋Š” ๊ณต๊ฐ„์ž…๋‹ˆ๋‹ค. Contribute to BaeJihae/-Swift-CodingTest development by creating an account on GitHub. github.com ๋ฌธ์ œ ์„ค๋ช… 2์ฐจ์› ํ–‰๋ ฌ arr1๊ณผ arr2๋ฅผ ์ž…๋ ฅ๋ฐ›์•„, arr1์— arr..
CoreData์— ๋ฐ์ดํ„ฐ ์ €์žฅํ•˜๋Š” ๊ฒƒ์— ์ด์–ด ์ƒˆ๋กœ์šด TableViewController๋ฅผ ์‚ฌ์šฉํ•ด CoreData์— ์ €์žฅ๋œ ๋ฐ์ดํ„ฐ๋ฅผ tableView์— ์ถœ๋ ฅํ•˜๊ณ , ํ•ด๋‹น tableView ์œ„์— ๋ฒ„ํŠผ์„ ๋งŒ๋“ค์–ด ๋ฒ„ํŠผ ํด๋ฆญ์‹œ CoreData์— ์ €์žฅ๋œ ๋ฐ์ดํ„ฐ๋ฅผ ์‚ญ์ œํ•ด๋ณด๋ ค๊ณ  ํ•ฉ๋‹ˆ๋‹ค! ๐Ÿ’ช๐Ÿป TableView UI ๋งŒ๋“ค๊ธฐ ์šฐ์„  TableView์˜ UI๋ถ€ํ„ฐ ๋งŒ๋“ค์–ด ๋ณด๋ ค๊ณ  ํ•ฉ๋‹ˆ๋‹ค! ๋ฉ”์ธํ™”๋ฉด์—์„œ navigationController๋ฅผ ์—ฐ๊ฒฐํ•˜์—ฌ navigationItem์•ˆ์˜ ๋ฒ„ํŠผ ํด๋ฆญ์‹œ modal๋กœ TableViewController๊ฐ€ ๋œจ๋„๋ก ๊ตฌํ˜„์„ ํ•˜์˜€์Šต๋‹ˆ๋‹ค. WishList๋ฅผ ๋ณด์—ฌ์ฃผ๋Š” View๋„ 29CM์˜ ์–ดํ”Œ์˜ ์žฅ๋ฐ”๊ตฌ๋‹ˆ๋ฅผ ๋ณด๊ณ  ๋น„์Šทํ•˜๊ฒŒ UI๋ฅผ ๊ทธ๋ ค์ฃผ์—ˆ์–ด์š”. ์—ฌ๋Ÿฌ ํ•ญ๋ชฉ์„ ์„ ํƒํ•˜๋Š” ์ฒดํฌ ๋ฒ„ํŠผ์ด ๋”ฐ๋กœ ํ•„์š”๊ฐ€ ์—†์–ด์„œ ์‚ญ์ œ ๋ฒ„ํŠผ์€..
์•ˆ๋…•ํ•˜์„ธ์š”! ๐ŸŒฑ ์˜ค๋Š˜์€ ์–ด์ œ ๋งŒ๋“  ์œ„์‹œ๋ฆฌ์ŠคํŠธ์˜ ๋ฒ„ํŠผ์„ ๋ˆŒ๋ €์„ ๋•Œ, ํ•ด๋‹น ์œ„์‹œ๋ฆฌ์ŠคํŠธ๋ฅผ ์ฝ”์–ด๋ฐ์ดํ„ฐ๋กœ ์ €์žฅํ•˜๋Š” ์ž‘์—…์„ ํ•˜์˜€์Šต๋‹ˆ๋‹ค! ํ•จ๊ป˜ ๊ฐ€๋ณด์‹œ์ฃ ! CoreData ๋ฐ์ดํ„ฐ ๊ตฌ์กฐ ์šฐ์„  coreData์˜ ๋ฐ์ดํ„ฐ ๊ตฌ์กฐ๋ถ€ํ„ฐ ๋งŒ๋“ค์–ด์ฃผ์–ด์•ผ๊ฒ ์ฃ ?! URLSession์—์„œ ๊ฐ€์ ธ์™”๋˜ ๋ฐ์ดํ„ฐ ์ •๋ณด๋“ค ์ค‘ images๋ฅผ ์ œ์™ธํ•˜๊ณ  ๊ทธ๋Œ€๋กœ ์‚ฌ์šฉํ•ด์ฃผ์—ˆ์–ด์š”! struct Product: Codable { let id: Int let title, description: String let price: Int let discountPercentage: Double let brand, category: String let thumbnail: String let images: [String] } Editor -> Create NSManagedOb..
HTTP ํ”„๋กœํ† ์ฝœ์ด๋ž€? HTTP ํ”„๋กœํ† ์ฝœ์ด๋ž€ "HyperText Transfer Protocol"์˜ ์ค„์ž„๋ง๋กœ ์›น์—์„œ ๋ฐ์ดํ„ฐ๋ฅผ ๊ตํ™˜ํ•˜๊ธฐ ์œ„ํ•œ ๊ทœ์•ฝ ๋˜๋Š” ํ”„๋กœํ† ์ฝœ์ž…๋‹ˆ๋‹ค. ํด๋ผ์ด์–ธํŠธ์™€ ์„œ๋ฒ„ ๊ฐ„์˜ ํ•˜์ดํผ ๋ฌธ์„œ๋ฅผ ์ฃผ๊ณ ๋ฐ›๋Š” ๋ฐ ์‚ฌ์šฉ์ด ๋˜๋Š”๋ฐ์š”! ์ด๋•Œ, ํด๋ผ์ด์–ธํŠธ๋Š” ์›น์‚ฌ์ดํŠธ๋ฅผ, ์„œ๋ฒ„๋Š” ์„œ๋ฒ„ ์ปดํ“จํ„ฐ๋ผ๊ณ  ์ƒ๊ฐํ•˜์‹œ๋ฉด ๋ผ์š”! ํด๋ผ์ด์–ธํŠธ๊ฐ€ ์„œ๋ฒ„์—๊ฒŒ ๋ฐ์ดํ„ฐ๋ฅผ ์š”์ฒญํ•˜๋ฉด, ์„œ๋ฒ„๊ฐ€ ํด๋ผ์ด์–ธํŠธ์—๊ฒŒ ์‘๋‹ต์„ ํ•˜๋Š” ์š”์ฒญ/์‘๋‹ต ํ˜•ํƒœ๋กœ ๋ฐ์ดํ„ฐ ์ „๋‹ฌ์ด ์ด๋ฃจ์–ด์ ธ์š”. ๋˜ํ•œ HTTP๋Š” ์ด๋ฏธ์ง€, ์˜์ƒ, ์Œ์„ฑ, ํŒŒ์ผ JSON ๋“ฑ ๋ชจ๋“  ํ˜•ํƒœ์˜ ๋ฐ์ดํ„ฐ๋ฅผ ํ†ต์‹ ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. HTTP๋Š” ๊ธฐ๋ณธ์ ์œผ๋กœ ๋น„์—ฐ๊ฒฐ์„ฑ์„ ๊ฐ€์ง‘๋‹ˆ๋‹ค. ๋น„์—ฐ๊ฒฐ์„ฑ์ด๋ผ๋Š” ๊ฒƒ์€ ์ „์— ๋ณด๋ƒˆ๋˜ ๋ฐ์ดํ„ฐ์™€ ํ›„์— ๋ณด๋ƒˆ๋˜ ๋ฐ์ดํ„ฐ ๊ฐ„์˜ ์—ฐ๊ด€์„ฑ์ด ์ „ํ˜€ ์—†๋‹ค๋Š” ๊ฒƒ์ด์—์š”! ๊ฐ ์š”์ฒญ๋งˆ๋‹ค ๋ฐ์ดํ„ฐ๊ฐ€ ๋…๋ฆฝ์ ์œผ๋กœ ์ฒ˜๋ฆฌ๋˜๊ธฐ ๋•Œ..
๐Ÿ„ ์ฝ”๋”ฉํ…Œ์ŠคํŠธ ๋ฌธ์ œ ํ’€์ด ํ”„๋กœ๊ทธ๋ž˜๋จธ์Šค ์ฝ”๋“œ ์ค‘์‹ฌ์˜ ๊ฐœ๋ฐœ์ž ์ฑ„์šฉ. ์Šคํƒ ๊ธฐ๋ฐ˜์˜ ํฌ์ง€์…˜ ๋งค์นญ. ํ”„๋กœ๊ทธ๋ž˜๋จธ์Šค์˜ ๊ฐœ๋ฐœ์ž ๋งž์ถคํ˜• ํ”„๋กœํ•„์„ ๋“ฑ๋กํ•˜๊ณ , ๋‚˜์™€ ๊ธฐ์ˆ  ๊ถํ•ฉ์ด ์ž˜ ๋งž๋Š” ๊ธฐ์—…๋“ค์„ ๋งค์นญ ๋ฐ›์œผ์„ธ์š”. programmers.co.kr โœ๐Ÿป ๋ฌธ์ œ ํ’€์ด github ๋งํฌ -Swift-CodingTest/ํ”„๋กœ๊ทธ๋ž˜๋จธ์Šค/2/87390. n๏ผพ2 ๋ฐฐ์—ด ์ž๋ฅด๊ธฐ at main · BaeJihae/-Swift-CodingTest Swift๋กœ ํ‘ผ ์ฝ”๋”ฉ ํ…Œ์ŠคํŠธ ๋ฌธ์ œ๋“ค์„ ์ •๋ฆฌํ•˜๊ณ  ๊ณต๋ถ€ํ•˜๋Š” ๊ณต๊ฐ„์ž…๋‹ˆ๋‹ค. Contribute to BaeJihae/-Swift-CodingTest development by creating an account on GitHub. github.com ๋ฌธ์ œ ์„ค๋ช… ์ •์ˆ˜ n, left, right๊ฐ€ ์ฃผ์–ด์ง‘๋‹ˆ๋‹ค. ๋‹ค์Œ ๊ณผ..
์˜ค๋Š˜์€ ์œ„์‹œ ๋ฆฌ์ŠคํŠธ์˜ UI์ž‘์—…๊ณผ ํ™”๋ฉด์— Data๋ฅผ ๋„์šฐ๋Š” ์ž‘์—…์„ ํ•˜์˜€์Šต๋‹ˆ๋‹ค! ๊ทธ๋Ÿผ ์‹œ์ž‘ํ•ด๋ณผ๊นŒ์šง?! โœจ WishListApp UI WishListApp์˜ ๋ฉ”์ธํ™”๋ฉด์€ ๊ทธ์ € ๊น”๋”ํ•˜๊ณ  ์‹ฌํ”Œํ–ˆ์œผ๋ฉด ์ข‹๊ฒ ๋‹ค๋ผ๊ณ  ์ƒ๊ฐ์„ ํ–ˆ์–ด์š”! ๊ทธ๋ž˜์„œ ํ‰์†Œ์— ์ œ๊ฐ€ ์ฆ๊ฒจ์“ฐ๋Š” ์•ฑ์ธ " 29CM "์˜ ์ƒํ’ˆ ํ™”๋ฉด๊ณผ ๋น„์Šทํ•˜๊ฒŒ ๋งŒ๋“ค์–ด๋ณด์ž๊ณ  ์ƒ๊ฐํ•˜๊ฒŒ ๋˜์—ˆ์Šต๋‹ˆ๋‹ค! ์•„๋ž˜ Add to Wish ๋ฒ„ํŠผ๊ณผ Next to Item ์ด ์žˆ๋Š” View๋Š” ๊ณ ์ •์ธ ์ƒํƒœ๋กœ Description์ด ๊ธธ์–ด์ง€๊ฒŒ ๋˜๋ฉด View๊ฐ€ ์Šคํฌ๋กค์ด ๋˜๊ฒŒ๋” ๊ตฌํ˜„์„ ํ•ด๋ณด๋ ค๊ณ  ํ•ฉ๋‹ˆ๋‹ค! ๊ธ€์”จ์ฒด๋Š” ๋‹ค๋ฅด์ง€๋งŒ ๊ทธ๋ž˜๋„ ์ •๋ง ๊น”๋”ํ•œ UI ๊ฐ™์•„์š”!ใ…Žใ…Ž WishListApp Data ์ ์šฉํ•˜๊ธฐ URLSession์„ ํ†ตํ•ด ๋ณ€ํ™˜ํ•œ ๋ฐ์ดํ„ฐ๋ฅผ ์‚ฌ์šฉํ•˜๊ธฐ ์œ„ํ•ด ProductDataManager์˜ ์ธ์Šคํ„ด์Šค๋ฅผ ๋งŒ๋“ค์–ด์ค๋‹ˆ๋‹ค..
EarthSea
'๋ถ„๋ฅ˜ ์ „์ฒด๋ณด๊ธฐ' ์นดํ…Œ๊ณ ๋ฆฌ์˜ ๊ธ€ ๋ชฉ๋ก (4 Page)