๋ณธ๋ฌธ ๋ฐ”๋กœ๊ฐ€๊ธฐ

์ „์ฒด ๊ธ€40

[Xcode] Failed to prepare device for development ์—๋Ÿฌ ์‹ค๊ธฐ๊ธฐ๋กœ iOS ์•ฑ ๋นŒ๋“œํ•˜๋ ค๊ณ  ํ–ˆ๋Š”๋ฐ ๋‹ค์Œ๊ณผ ๊ฐ™์€ ์—๋Ÿฌ๋ฅผ ๋งŒ๋‚ฌ๋‹ค. failed to prepare device for development ์‹ค๊ธฐ๊ธฐ์˜ iOS ๋ฒ„์ „(16.4.1(a))์ด ํ˜„์žฌ Xcode๋ฒ„์ „(14.2) ์—์„œ ์ง€์›ํ•˜์ง€ ์•Š๋Š” ๋ฒ„์ „์ด์—ˆ๊ณ  Xcode๋ฅผ ์—…๊ทธ๋ ˆ์ด๋“œ ํ•˜๋ คํ–ˆ๋”๋‹ˆ ํ˜„์žฌ OS๋ฒ„์ „(Monterey,12.6.1)์—์„œ ์ง€์›ํ•˜์ง€ ์•Š์•„์„œ ์—…๊ทธ๋ ˆ์ด๋“œ ํ•ด์•ผ ์„ค์น˜๊ฐ€ ๊ฐ€๋Šฅํ•˜๋‹จ๋‹ค… ๊ทธ๋ž˜์„œ OS์—…๊ทธ๋ ˆ์ด๋“œํ•˜๊ณ  Xcode ์—…๊ทธ๋ ˆ์ด๋“œํ•ด์„œ ํ•ด๊ฒฐํ–ˆ๋‹ค.. ํœด๋Œ€ํฐ ์—…๋ฐ์ดํŠธ ํ•œ๋ฒˆ ํ•˜๋ฉด iOS ๊ฐœ๋ฐœ์ž๋Š” ์ค„์ค„์ด ์†Œ์„ธ์ง€์ฒ˜๋Ÿผ ์—‘์Šค์ฝ”๋“œ๊นŒ์ง€ ์—…๋ฐ์ดํŠธํ•ด์•ผํ•˜๋Š” ๊ฒฝ์šฐ๊ฐ€ ๋งŽ๋‹ค. ์—…๋ฐ์ดํŠธํ•˜๊ณ ๋‚˜๋ฉด ์ด์ „์—๋Š” ์ž˜ ๋˜๋˜ ํ”„๋กœ์ ํŠธ๊ฐ€ ์˜ค๋ฅ˜๊ฐ€ ์ƒ๊ฒจ์„œ ํ•œ๋ฒˆ ์”ฉ ๊ตฌ๊ธ€๋งํ•˜๋ฉด์„œ ๊ณ ์ƒํ•ด์ค˜์•ผํ•˜๊ณ … ๊ธ‰ํ•œ ๋ฐ ๋ฒ„์ „ ์ตœ์‹ ํ™” ๋ฌธ์ œ ๋•Œ๋ฌธ์— ์˜ค๋ฅ˜ ์ƒ๊ธฐ๊ณ  ๊ทธ๋Ÿฌ๋ฉด ์ž„์‹œ๋กœ๋ผ๋„ ์—…๋ฐ์ดํŠธ.. 2023. 3. 16.
[Swift] ํŠœํ”Œ ๋ฐฐ์—ด, ์ด์ฐจ์› ๋ฐฐ์—ด, ๊ฐ์ฒด ๋ฐฐ์—ด ์ •๋ ฌํ•˜๊ธฐ ์•Œ๊ณ ๋ฆฌ์ฆ˜์„ ํ’€๋‹ค๋ณด๋ฉด ์ด์ฐจ์› ๋ฐฐ์—ด์ด๋‚˜ ํŠœํ”Œ,๊ฐ์ฒด๋ฅผ ์›ํ•˜๋Š” ์กฐ๊ฑด๋Œ€๋กœ ์ •๋ ฌํ•˜๊ณ  ์‹ถ์„ ๋•Œ๊ฐ€ ์žˆ์Šต๋‹ˆ๋‹ค. ๊ทธ๋Ÿด ๋•Œ ์–ด๋–ป๊ฒŒ ํ•ด์•ผํ•˜๋Š”์ง€ ์•Œ์•„๋ณด๋„๋ก ํ•˜๊ฒ ์Šต๋‹ˆ๋‹ค. ์ •์„์ ์œผ๋กœ ์กฐ๊ฑด๋ฌธ ์ด์šฉํ•ด์„œ ์ •๋ ฌํ•˜๋Š” ๊ฒƒ๊ณผ ๋ฐ‘์— ์ชฝ์—์„œ๋Š” ํŠœํ”Œ์„ ์ด์šฉํ•ด์„œ ๊ฐ„๋‹จํ•˜๊ฒŒ ํ•œ ์ค„๋กœ ์ •๋ ฌ ํ•˜๋Š” ๋ฐฉ๋ฒ•์ด ์žˆ์Šต๋‹ˆ๋‹ค. ๊ฐ์ฒด ์ •๋ ฌ struct Movie { let title: String let year: Int let director: String } let movieList = [ Movie(title: "Star Wars", year: 1898, director: "Leorge Mucas"), Movie(title: "A Star", year: 1922, director: "Michal Platpus"), Movie(title: "Be yourself", .. 2023. 3. 14.
[GitHub] ๋งˆํฌ๋‹ค์šด ์ด๋ฏธ์ง€ ์‚ฌ์ด์ฆˆ ์กฐ์ ˆ & ๊ฐ€์šด๋ฐ ์ •๋ ฌ ์ด๋ฏธ์ง€ ์‚ฌ์ด์ฆˆ ์กฐ์ ˆ Example ๊ฐ€์šด๋ฐ ์ •๋ ฌ Example 2023. 3. 13.
[iOS] iOS Concurrency - 2. ๋””์ŠคํŒจ์น˜ ํ์˜ ์ข…๋ฅ˜์™€ ํŠน์„ฑ ํ์˜ ์ข…๋ฅ˜ (๋Œ€๊ธฐ์—ด์˜ ์ข…๋ฅ˜๊ฐ€ ์—ฌ๋Ÿฌ๊ฐœ๋ผ๋Š” ๋œป, ๋‹ค๋ฅธ ํŠน์„ฑ์„ ๊ฐ€์ง€๊ณ  ์žˆ์Œ, ์ž‘์—…์— ๋”ฐ๋ผ ์›ํ•˜๋Š” ํ๋กœ ๋ณด๋‚ด๊ธฐ) ๋””์ŠคํŒจ์น˜ํ(Dispatch Queue) (๊ธ€๋กœ๋ฒŒ) ๋ฉ”์ธ ๋””์ŠคํŒจ์น˜ํ ๊ธ€๋กœ๋ฒŒ ๋””์ŠคํŒจ์น˜ํ ํ”„๋ผ์ด๋น—(์ปค์Šคํ…€) ๋””์ŠคํŒจ์น˜ํ ์˜คํผ๋ ˆ์ด์…˜ํ(Operation Queue) ์›ํ•˜๋Š” ํ๋กœ ์ž‘์—…์„ ๋ณด๋‚ด๋ฉด ๊ฐ ํ๊ฐ€ ์•Œ์•„์„œ ๊ฐ์ž ๋‹ค๋ฅธ ์“ฐ๋ ˆ๋“œ๋ฅผ ์ƒ์„ฑํ•˜๊ณ  ์ผ์„ ์ฒ˜๋ฆฌํ•œ๋‹ค! 1. ๋ฉ”์ธ ๋””์ŠคํŒจ์น˜ ํ ์œ ์ผํ•œ ํ•œ๊ฐœ ์ง๋ ฌ(Serial) ๋™์ž‘ ๋ฉ”์ธ์“ฐ๋ ˆ๋“œ ( 1๋ฒˆ ์“ฐ๋ ˆ๋“œ๋Š” ๋ฉ”์ธ ์“ฐ๋ ˆ๋“œ์ด์ž ๋ฉ”์ธํ์ด๋‹ค.) DispatchQueue.main.async ๋ฉ”์ธ ์“ฐ๋ ˆ๋“œ๋กœ ๋ณด๋‚ธ๋‹ค๋Š” ๋œป ๊ทธ๋ƒฅ print(”print something”)์ฝ”๋“œ๋งŒ ์žˆ์„ ๋•Œ ์‚ฌ์‹ค ์˜๋ฏธ์ ์œผ๋กœ๋Š” DispatchQueue.main.sync ์•ˆ์— ๋“ค์–ด์žˆ๋Š” ๊ฒƒ๊ณผ ๊ฐ™์€ ์˜๋ฏธ์ด๋‹ค. ( ํ•˜์ง€๋งŒ .. 2023. 3. 5.
[iOS] ์ œ์Šค์ณ๋กœ ๋“œ๋ก  ์กฐ์ข…ํ•˜๋Š” AI์•ฑ ๋งŒ๋“ค๊ธฐ (1) - ํ”„๋กœ์ ํŠธ ๊ตฌ์กฐ์™€ MediaPipe์™€์˜ ๊ณ ๋‚œ ๋ฏธ๊ตญ ํผ๋“€๋Œ€ํ•™๊ต ์ธํ„ด์‹ญ ํ”„๋กœ๊ทธ๋žจ์— ์ฐธ์—ฌํ•˜๊ฒŒ ๋˜๋ฉด์„œ 4๊ฐœ์›”๋™์•ˆ ํŒ€ํ”„๋กœ์ ํŠธ๋ฅผ ์ง„ํ–‰ํ•˜๊ฒŒ ๋˜์—ˆ์Šต๋‹ˆ๋‹ค. ์ธ๊ณต์ง€๋Šฅ ๊ฐœ๋ฐœ์ž์™€ ํ•จ๊ป˜ ํ˜‘์—…ํ•˜์—ฌ ํ”„๋กœ์ ํŠธ๋ฅผ ์ง„ํ–‰ํ•˜๊ฒŒ ๋˜์—ˆ๋Š”๋ฐ ์ฃผ์ œ๋Š” Vision AI๋ฅผ ์ด์šฉํ•˜์—ฌ ์†์˜ ์ œ์Šค์ฒ˜๋ฅผ ์ธ์‹ ํ•œ ๋’ค ๋“œ๋ก ์„ ์กฐ์ข…ํ•˜๋Š” iOS ์•ฑ ์ž…๋‹ˆ๋‹ค. ํ•˜๋‹จ์˜ ๊ตฌ์กฐ๋„์—์„œ ์•Œ ์ˆ˜ ์žˆ๋“ฏ์ด, ์ธ๊ณต์ง€๋Šฅ ๊ฐœ๋ฐœ์ž๊ฐ€ MediaPipe๋ฅผ ํ™œ์šฉํ•˜์—ฌ ๊ฐœ๋ฐœํ•œ ๋ชจ๋ธ์„ iOS์•ฑ์— ๋„ฃ์–ด ์‹ค์‹œ๊ฐ„ ์† ์˜์ƒ์˜ ์ œ์Šค์ฒ˜๋ฅผ ์ธ์‹ํ•˜๊ณ  ์†Œ์ผ“ ํ†ต์‹ ์„ ํ†ตํ•ด ๋“œ๋ก ์—๊ฒŒ ์กฐ์ข…์‹ ํ˜ธ๋ฅผ ๋ณด๋‚ด๋Š” ๊ฒƒ์ด ์ „์ฒด ๊ตฌ์กฐ์ž…๋‹ˆ๋‹ค. iOS ์•ฑ ๊ตฌ์กฐ๋„ AVFoundation์„ ํ†ตํ•ด ์† ์˜์ƒ์˜ ํ”„๋ ˆ์ž„๋“ค์„ AI ๋ชจ๋ธ์— ๋„ฃ๊ณ  ์ธ์‹ ๋œ ์ œ์Šค์ฒ˜์˜ ์‹ ํ˜ธ๋ฅผ ์†Œ์ผ“ ํ†ต์‹ ์„ ํ†ตํ•ด ๋“œ๋ก ์— ๋ณด๋ƒ…๋‹ˆ๋‹ค. ๋˜ํ•œ ๋“œ๋ก ์—์„œ ์ดฌ์˜ ๋˜๊ณ  ์žˆ๋Š” ์˜์ƒ๋“ค์€ ์†Œ์ผ“ ํ†ต์‹ ์„ ํ†ตํ•ด iOS์•ฑ์—์„œ ์‹ค์‹œ๊ฐ„์œผ๋กœ ํ™•์ธ ๊ฐ€๋Šฅํ•ฉ๋‹ˆ๋‹ค.. 2023. 2. 22.
[Swift] ๋ฒ”์œ„์—ฐ์‚ฐ์ž ~= ~= ์—ฐ์‚ฐ์ž ~= ์—ฐ์‚ฐ์ž๋Š” ๋Œ€์ƒ์ด ํŠน์ • ๋ฒ”์œ„์— ์†ํ•˜๋Š”์ง€ ๋ฒ”์œ„๋ฅผ ์ฒดํฌํ•˜๋Š” ์—ฐ์‚ฐ์ž ์ˆซ์ž 5๊ฐ€ 0~ 10 ์‚ฌ์ด์ผ ๋•Œ 10์„ ๊ณฑํ•ด์ฃผ๋ ค๋ฉด ์ด๋ ‡๊ฒŒ ํ•  ์ˆ˜ ์žˆ๋‹ค. var n = 5 if 0.. 2023. 2. 18.
[iOS] pod init ์˜ค๋ฅ˜ ์‹œ ํ•ด๊ฒฐ๋ฐฉ๋ฒ• xcode ํ”„๋กœ์ ํŠธ์— pod init์„ ํ•ด์ฃผ๋ ค ํ–ˆ๋Š”๋ฐ ์•„๋ž˜์™€ ๊ฐ™์€ ์˜ค๋ฅ˜๊ฐ€ ๋‚ฌ์Šต๋‹ˆ๋‹ค. /Library/Ruby/Gems/~ :can’t modify frozen String (FrozenError) /Library/Ruby/Gems/~:[Xcodeproj] Unknown object version(56). (RuntimeError) ๊ตฌ๊ธ€๋ง ํ•˜์—ฌ > sudo gem update xcodeproj ๋ฅผ ํ•ด์ค€ ๋’ค์— ๋‹ค์‹œ pod init์„ ์‹œ๋„ํ•ด๋ณด๋‹ˆ ํ•ด๊ฒฐ ๋˜์—ˆ์Šต๋‹ˆ๋‹ค. ๐Ÿ’ก sudo gem update xcodeproj์˜ gem์ด ๋ฌด์—‡์ผ๊นŒ? mac os ์—๋Š” ruby๊ฐ€ ๊ธฐ๋ณธ์œผ๋กœ ์„ค์น˜๋˜์–ด์žˆ๊ณ  gem์€ ruby์˜ ํŒจํ‚ค์ง€ ๊ด€๋ฆฌ์ž์ด๋‹ค. ๐Ÿ’ก sudo gem update xcodeproj์˜ xcodeproj๋Š” ๋ฌด์—‡์ผ๊นŒ? ruby.. 2023. 2. 17.
[iOS] ์ปค์Šคํ…€ ํฐํŠธ ์ถ”๊ฐ€ ๋ฐฉ๋ฒ• OS ๊ฐœ๋ฐœ์‹œ์— ๊ธฐ๋ณธ ๋‚ด์žฅ ํฐํŠธ ๋ง๊ณ  ์ปค์Šคํ…€ ํฐํŠธ๋ฅผ ์ถ”๊ฐ€ํ•ด์„œ ์‚ฌ์šฉํ•˜๊ณ  ์‹ถ์„ ์ˆ˜๊ฐ€ ์žˆ๋Š”๋ฐ์š”. ์˜ค๋Š˜์€ iOS UIKit ํ”„๋กœ์ ํŠธ์— ์ปค์Šคํ…€ ํฐํŠธ๋ฅผ ๋„ฃ์–ด ์‚ฌ์šฉํ•˜๋Š” ๋ฒ•์„ ์•Œ์•„ ๋ณด๊ฒ ์Šต๋‹ˆ๋‹ค! 1. Font ํด๋” ๋งŒ๋“  ํ›„ ๊ทธ ์•ˆ์— ํฐํŠธํŒŒ์ผ ๋„ฃ๊ธฐ ๋จผ์ € ํ”„๋กœ์ ํŠธ์— ๋‹ค์šด๋ฐ›์€ ํฐํŠธ .otf๋‚˜ .ttf ํŒŒ์ผ์„ Xcode ํ”„๋กœ์ ํŠธ์— ๋Œ์–ด๋‹ค ๋„ฃ์–ด์ฃผ๋ฉด ๋˜๋Š”๋ฐ์š”. ํฐํŠธ๋ฅผ ํ•œ ํด๋”์— ๋„ฃ์–ด ๊ด€๋ฆฌํ•˜๊ธฐ ์œ„ํ•ด ์ €๋Š” Xcode ์™ผ์ชฝ ๋„ค๋น„๊ฒŒ์ด์…˜ ์˜์—ญ์—์„œ ํ”„๋กœ์ ํŠธ ํด๋” ๋ฐ‘์— Font ํด๋”๋ฅผ ์ƒ์„ฑ ํ•ด์ค€ ํ›„ ๊ทธ ์•ˆ์— ํฐํŠธ ํŒŒ์ผ์„ ๋Œ์–ด๋‹ค ๋„ฃ์–ด์คฌ์Šต๋‹ˆ๋‹ค. 2. Add to targets ์ฒดํฌํ•ด์ฃผ๊ธฐ ํŒŒ์ผ์„ ํ”„๋กœ์ ํŠธ์— ๋Œ์–ด๋‹ค ์ถ”๊ฐ€ํ•˜๋ฉด ์œ„์™€ ๊ฐ™์€ ์ฐฝ์ด ๋œจ๋Š”๋ฐ Add to target์„ ์ฒดํฌํ•ด ์ค๋‹ˆ๋‹ค. ์—ฌ๊ธฐ์„œ ์ฒดํฌํ•ด์ฃผ์ง€์•Š์œผ๋ฉด ๋‚˜์ค‘์— ํฐํŠธ ํŒŒ์ผ๋งˆ๋‹ค ๋“ค์–ด๊ฐ€์„œ Targe.. 2023. 2. 16.
[iOS] addsubview()์™€ ํ•œ๋ฒˆ์— ์—ฌ๋Ÿฌ subview ์ถ”๊ฐ€ํ•˜๊ธฐ ๋ทฐ ๊ณ„์ธต ๊ตฌ์กฐ ์† ํ•˜์œ„๋ทฐ ์ถ”๊ฐ€ํ•˜๊ธฐ - addSubview() ์Šคํ† ๋ฆฌ๋ณด๋“œ์—์„œ๋Š” ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ์—์„œ ๋ทฐ๋ฅผ ์บ”๋ฒ„์Šค๋กœ ๋Œ์–ด์™€์„œ ์ƒ์„ฑํ•ฉ๋‹ˆ๋‹ค. ๋ทฐ๋ฅผ ํ”„๋กœ๊ทธ๋ž˜๋ฐ์ ์œผ๋กœ๋„ ์ƒ์„ฑํ•  ์ˆ˜๋„ ์žˆ์Šต๋‹ˆ๋‹ค. ๋ทฐ๋ฅผ ์ƒ์„ฑํ•  ๋•Œ ์ผ๋ฐ˜์ ์œผ๋กœ ํ•ด๋‹น ๋ทฐ์˜ ์ดˆ๊ธฐ ํฌ๊ธฐ์™€ ์œ„์น˜๋ฅผ ํ–ฅํ›„ ์ง€์ • ๋  superview๋ฅผ ๊ธฐ์ค€์œผ๋กœ ์ง€์ •ํ•ฉ๋‹ˆ๋‹ค. ์•„๋ž˜ ์˜ˆ์ œ์ฒ˜๋Ÿผ ๋ทฐ๋ฅผ ์ƒ์„ฑํ•˜๊ฒŒ ๋˜๋ฉด ํ•ด๋‹น ๋ทฐ์˜ ์™ผ์ชฝ ์ƒ๋‹จ ๋ชจ์„œ๋ฆฌ๊ฐ€ ์ถ”ํ›„ ์„ค์ •๋  superview์˜์ขŒํ‘œ ์‹œ์Šคํ…œ์—์„œ (10, 10) ์ง€์ ์— ๋ฐฐ์น˜๋ฉ๋‹ˆ๋‹ค. let rect = CGRect(x: 10, y: 10, width: 100, height: 100) let myView = UIView(frame: rect) ์œ„ ์ฝ”๋“œ ์ฒ˜๋Ÿผ ์ƒ์„ฑํ•œ ๋ทฐ๋ฅผ superview์˜ subview๋กœ ์ถ”๊ฐ€ํ•˜๋ ค๋ฉด addSubview(_:)๋ฉ”์„œ๋“œ๋ฅผ ํ˜ธ์ถœํ•ด์•ผ ํ•ฉ.. 2023. 2. 14.
[iOS] Xcode์˜ Target ์ด๋ž€? iOS ๊ฐœ๋ฐœ์„ ํ•˜๋‹ค๋ณด๋ฉด ์ž์ฃผ ๋‚˜์˜ค๋Š” target์ด๋ผ๋Š” ์šฉ์–ด์— ๋Œ€ํ•ด ์ข€ ๋” ์ž์„ธํžˆ ๊ณต๋ถ€ํ•˜๊ณ  ๊ฐ€์•ผ๊ฒ ๋‹ค๋Š” ์ƒ๊ฐ์ด ๋“ค์—ˆ์Šต๋‹ˆ๋‹ค. ๋ณดํ†ต ์•„๋ž˜ ์‚ฌ์ง„์ฒ˜๋Ÿผ ์ƒˆ๋กœ์šด ํŒŒ์ผ์„ ์ถ”๊ฐ€ํ•˜๊ฑฐ๋‚˜ ํ•  ๋•Œ ๊ผญ target์„ ์„ ํƒํ•˜๋Š” ๋ถ€๋ถ„์ด ๋‚˜์˜ค๋Š”๋ฐ ๋ณดํ†ต ๊ธฐ๋ณธ์ ์œผ๋กœ ์„ ํƒ์ด ๋˜์–ด์žˆ์Šต๋‹ˆ๋‹ค. ๊ทธ๋ ‡๋‹ค๋ฉด ์˜ค๋Š˜์€ ์ด target์€ ๋ฌด์—‡์ธ์ง€ ํ•œ ๋ฒˆ ์•Œ์•„๋ณด๋„๋ก ํ•˜๊ฒ ์Šต๋‹ˆ๋‹ค. (+ Group๋ž€์€ ์ด ํŒŒ์ผ์„ ๋„ฃ์„ Group(ํด๋”)๋ฅผ ์„ ํƒํ•˜๋Š” ๊ฒƒ์ด๊ณ  ์›ํ•˜๋Š” ํด๋”ํด๋ฆญ ํ›„ ์šฐํด๋ฆญ ํ•œ๋’ค New File ๋ˆŒ๋ €์„ ๊ฒฝ์šฐ์—๋Š” ์ž๋™์œผ๋กœ ํ•ด๋‹น ๊ทธ๋ฃน ์„ ํƒ๋˜์–ด์žˆ์Œ) target์€ ๋ฌด์—‡์ผ๊นŒ? target๊ณผ ๊ด€๋ จํ•˜์—ฌ apple ๊ณต์‹ ๋ฌธ์„œ์—์„œ ์ž˜ ์„ค๋ช…ํ•ด์ฃผ๊ณ  ์žˆ๋Š”๋ฐ ํ•ด๋‹น ๋ฌธ์„œ๋ฅผ ์ฐธ๊ณ ํ•˜์—ฌ ์ดํ•ดํ•œ ๋‚ด์šฉ์„ ์„ค๋ช…ํ•ด ๋ณด๊ฒ ์Šต๋‹ˆ๋‹ค. target์€ ์•ฑ, ํ”„๋ ˆ์ž„์›Œํฌ, ์•ฑ ํ™•์žฅ ํ”„๋กœ๊ทธ๋žจ ๋˜๋Š” ์œ ๋‹› ํ…Œ์ŠคํŠธ.. 2023. 2. 13.