์ „์ฒด ๊ธ€

๐ŸŒฑiOS ๊ฐœ๋ฐœ์ž๋ฅผ ๊ฟˆ๊พธ๋Š” ํ•™์ƒ์ด ๋งŒ๋“œ๋Š” ๋ธ”๋กœ๊ทธ
ยท๐ŸŽ iOS & Swift
0. ๋“ค์–ด๊ฐ€๋ฉฐ ์ตœ๊ทผ์— ํ•™์Šต์„ ์ง„ํ–‰ํ•˜๋ฉด์„œ ๊ฐ€์ง€๋ ค๋Š” ํƒœ๋„ ์ค‘ ํ•˜๋‚˜๊ฐ€ ์˜๋ฌธ์„ ์ตœ๋Œ€ํ•œ ๊ฐ€์ ธ๋ณด๋ ค๊ณ  ํ•˜๋Š” ๊ฒƒ์ž…๋‹ˆ๋‹ค. ์ด์ „์—๋Š” ๊ทธ๋ƒฅ ๋ฌด์˜์‹์ ์œผ๋กœ ์ž‘์„ฑํ•˜๋Š” ์ฝ”๋“œ๊ฐ€ ๋งŽ์•˜๊ณ , ์™œ ์ฝ”๋“œ๋ฅผ ์ด๋ ‡๊ฒŒ ์ž‘์„ฑํ•ด์•ผ ํ•˜๋Š”์ง€ ์˜๋ฌธ์„ ๊ฐ€์ ธ๋ณธ ์ ์ด ์ƒ๊ฐ๋ณด๋‹ค ์—†์—ˆ๋˜ ๊ฒƒ ๊ฐ™์Šต๋‹ˆ๋‹ค. ์กฐ๊ธˆ์€ ๋” ๊ผผ๊ผผํ•˜๊ฒŒ ๊ทธ๋ฆฌ๊ณ  ์ฒœ์ฒœํžˆ ์ •ํ™•ํ•˜๊ฒŒ ํ•™์Šตํ•ด๋‚˜๊ฐ€๋ ค๊ณ  ํ•ฉ๋‹ˆ๋‹ค. ๋ฐ˜๋ณต ์ž‘์—…์„ ์ค„์ด๊ธฐ ์œ„ํ•ด์„œ IBOutlet Collection์„ ์ด์šฉํ•ด์„œ ์ข…์ข… View๋ฅผ ์—ฐ๊ฒฐํ•˜๊ณ ๋Š” ํ–ˆ์—ˆ๋Š”๋ฐ ์™œ IBOutlet์œผ๋กœ ์—ฐ๊ฒฐํ•œ ๋ทฐ์—๋Š” weak ์ˆ˜์‹์–ด๊ฐ€ ๋ถ™์–ด ์žˆ๊ณ , IBOutlet Collection์œผ๋กœ ์—ฐ๊ฒฐํ•œ ๋ทฐ์—๋Š” weak ์ˆ˜์‹์–ด๊ฐ€ ๋ถ™์–ด ์žˆ์ง€ ์•Š์€์ง€ ์ƒ๊ฐํ•ด ๋ณธ ์ ์ด ์—†์—ˆ๋˜ ๊ฒƒ ๊ฐ™์Šต๋‹ˆ๋‹ค. ์ด๋ฒˆ์— ์ƒˆ์‹น ๊ฐ•์˜๋ฅผ ๋“ค์œผ๋ฉด์„œ ์˜๋ฌธ์ด ๋“ค์–ด์„œ ์กฐ์‚ฌํ•ด๋ณด๋ ค๊ณ  ํ–ˆ์—ˆ๋Š”๋ฐ, ๋งˆ์นจ Mission ๊ณผ์ œ๋กœ ๋‚˜์™€ ์ฆ..
ยท๐ŸŽ iOS & Swift
Bundle Identifier ๋ฒˆ๋“ค ์•„์ด๋””(Bundle Identifier)๋Š” ์•ฑ์„ ๊ตฌ๋ถ„ํ•˜๋Š” ๊ณ ์œ ํ•œ ์‹๋ณ„์ž๋ฅผ ์˜๋ฏธํ•œ๋‹ค. ์ฃผ๋ฏผ๋“ฑ๋ก๋ฒˆํ˜ธ์™€ ๊ฐ™์€ ์„ฑ๊ฒฉ์„ ๋ค๋‹ค๊ณ  ๋ณผ ์ˆ˜ ์žˆ๋‹ค. ๊ณ ์œ ํ•ด์•ผํ•˜๋‹ˆ๊นŒ ์ค‘๋ณต๋˜์–ด์„œ๋Š” ์•ˆ ๋˜๊ณ  ์‹ค์ œ๋กœ ์ถœ์‹œ ์ „์— ์ค‘๋ณต ์—ฌ๋ถ€๋ฅผ ๊ฒ€์‚ฌํ•˜๊ฒŒ ๋œ๋‹ค. โœ… ์ค‘๋ณต๋œ Bundle Identifier๋ฅผ ์‚ฌ์šฉํ•œ๋‹ค๋ฉด ์—๋Ÿฌ๊ฐ€ ๋œจ๊ณ  ๋นŒ๋“œ๊ฐ€ ๋˜์ง€ ์•Š๋Š” ๊ฒฝ์šฐ๊ฐ€ ๋ฐœ์ƒํ•œ๋‹ค. ์ถœ์‹œ๊ฐ€ ๋ถˆ๊ฐ€๋Šฅํ•˜๋‹ค. ๊ฐ€๋” ๊ฐœ๋ฐœ์„ ํ•˜๋‹ค ๋ณด๋ฉด ์ค‘๋ณต๋œ Bundle Identifier๋ฅผ ์‚ฌ์šฉํ–ˆ๋‹ค๊ฐ€ ๋นŒ๋“œ๊ฐ€ ๋˜์ง€ ์•Š์€ ๊ฒฝ์šฐ๋ฅผ ๋งŒ๋‚˜๊ณ ๋Š” ํ•œ๋‹ค. ํ”์น˜๋Š” ์•Š์€ ์ผ์ด์ง€๋งŒ ๋ฌธ์ œ๊ฐ€ ์ƒ๊ธด๋‹ค๋ฉด ์ ์ ˆํ•˜๊ฒŒ Id๋ฅผ ๋ณ€๊ฒฝํ•˜๋ฉด ์ข‹์„ ๊ฒƒ ๊ฐ™๋‹ค. (์‹ค์ œ๋กœ SOPT ํ™œ๋™ ์‹œ ์„ธ๋ฏธ๋‚˜๋ฅผ ์ง„ํ–‰ํ•˜๋ฉด์„œ Bundle Identifier๋ฅผ com.sopt.Project์™€ ๊ฐ™์ด ์‚ฌ์šฉํ•œ ์ ์ด ์žˆ๋Š”๋ฐ, ์ด..
ยท๐ŸŒฑ SeSAC
๐Ÿชด Summary Git ์‚ฌ์šฉ ์‹œ์ž‘ Gesture์˜ ์ข…๋ฅ˜ AutoLayout ๐Ÿ—‚ Detail TIL์— ๋„ˆ๋ฌด ๋งŽ์€ ๋ฆฌ์†Œ์Šค๋ฅผ ๋“ค์ด์ง€ ๋ง™์‹œ๋‹ค. ์˜ค๋Š˜์€ ๋‚ด์šฉ์ด ๋งŽ์ง€๋Š” ์•Š์ง€๋งŒ, iOS๋ฅผ ์‹œ์ž‘ํ•˜๋ฉด์„œ ๊ฐ€์žฅ ์ค‘์š”ํ•œ ๊ฒƒ๋“ค์„ ๋‹ค๋ค˜๋‹ค. Git Git์€ ์†Œ์Šค ์ฝ”๋“œ์˜ ๋ฒ„์ „ ๊ด€๋ฆฌ์™€ ํ˜‘์—…์— ์ด์šฉ VCS(Version Control System) ๋ฒ„์ „์— ๋”ฐ๋ฅธ ๊ด€๋ฆฌ๊ฐ€ ์œ ์šฉ(์ด์ „์— ์ž‘์„ฑํ–ˆ๋˜ ์ฝ”๋“œ, ์‚ฌ์šฉํ–ˆ๋˜ ๋ฒ„์ „์„ ํ™•์ธ ๋˜๋Š” ๋กค๋ฐฑ ๊ฐ€๋Šฅ) Git & GitHub ๋กœ์ปฌ์—์„œ ์ž‘์—…ํ•˜๋˜ ์ฝ”๋“œ๋ฅผ ๊ฐ€์ง€๊ณ  ๋‹ค๋ฅธ ๊ธฐ๊ธฐ, ํ™˜๊ฒฝ์—์„œ ์ž‘์—…์„ ์ด์–ด๋‚˜๊ฐ€๊ณ  ์‹ถ์€ ๊ฒฝ์šฐ๊ฐ€ ์žˆ๋‹ค. Xcode์—์„œ GitHub ์—ฐ๊ฒฐํ•˜๊ณ  Git ๋ฒ„์ „ ๊ด€๋ฆฌํ•˜๊ธฐ ํ„ฐ๋ฏธ๋„๋ณด๋‹ค๋Š” ์ž‘๋™ ๋ฐฉ์‹์ด ํŽธํ•˜๊ณ  GUI ํˆด(GitKraken, Fork, GitHub Desktop ๋“ฑ)๋ณด๋‹ค๋Š” ๊ธฐ๋Šฅ์ด ์ ๋‹ค. Gest..
ยท๐ŸŒฑ SeSAC
๐Ÿชด Summary ๋ณด์กฐ ์ฐฝ breakpoint iOS 4๊ณ„์ธต Xcode์—์„œ Document ํ™•์ธํ•˜๊ธฐ UILabel - Line/Autoshrink UITextField - Min Font Size UIView Background Default Color ์ž๋ฃŒํ˜• ์˜ต์…”๋…ˆ ํด๋ž˜์Šค/๊ตฌ์กฐ์ฒด ์•ˆ์˜ ์‹๊ตฌ๋“ค ์—ฌ๋Ÿฌ ๊ฐœ์˜ UI ์š”์†Œ ๋™์‹œ ์ œ์–ด ํ•จ์ˆ˜ IBAction๋„ ์—ฌ๋Ÿฌ ๊ฐœ ์—ฐ๊ฒฐ์ด ๊ฐ€๋Šฅํ•˜๋‹ค iPhone Build ๐Ÿ—‚ Detail TIL์— ๋„ˆ๋ฌด ๋งŽ์€ ๋ฆฌ์†Œ์Šค๋ฅผ ๋“ค์ด์ง€ ๋ง™์‹œ๋‹ค. ๋ณด์กฐ ์ฐฝ Assistant: ์Šคํ† ๋ฆฌ๋ณด๋“œ์— ๋Œ€ํ•œ ์†Œ์Šค ์ฝ”๋“œ ์—๋””ํ„ฐ๋ฅผ ์‰ฝ๊ฒŒ ๋งค์นญํ•ด์คŒ Minimap: ์Šคํ† ๋ฆฌ๋ณด๋“œ ๋˜๋Š” ์†Œ์Šค ์ฝ”๋“œ ์—๋””ํ„ฐ ์ƒ์˜ ์œ„์น˜๋ฅผ ์‰ฝ๊ฒŒ ์•Œ ์ˆ˜ ์žˆ์Œ breakpoint breakpoint๋ฅผ ์ง€์ •ํ•œ ์ƒํƒœ์—์„œ ์‹คํ–‰์„ ํ•˜๋ฉด ์˜๋„์ ์œผ๋กœ ํ”„๋กœ๊ทธ๋žจ์„ ..
ยท๐ŸŽ iOS & Swift
๐Ÿชด์ผ๋ฐ˜์ ์ธ ๋ฐฉ๋ฒ• ๊ตฌ๊ธ€๋ง์„ ํ•˜๋‹ค๋ณด๋ฉด ์ผ๋ฐ˜์ ์œผ๋กœ ์†Œ๊ฐœ๋˜๋Š” ๋ฐฉ๋ฒ•์€ ๋‹ค์Œ๊ณผ ๊ฐ™๋‹ค. layer๋ฅผ ๋‘ฅ๊ธ€๊ฒŒ ๋งŒ๋“ค์–ด์ฃผ์ง€ ์•Š์œผ๋ฉด ๋„ค๋ชจ ๋ชจ์–‘์œผ๋กœ ์น ํ•ด์ง€๊ธฐ ๋•Œ๋ฌธ์— ๋‘ฅ๊ธ€๊ฒŒ ๊นŽ์•„์ค˜์•ผ ํ•œ๋‹ค. switch.backgroundColor = .blue switch.layer.cornerRadius = switch.bounds.size.height / 2 (๋˜๋Š” 16) ๐Ÿชดํ•˜์œ„ ๋ทฐ์— ์ ‘๊ทผํ•˜๋Š” ๋ฐฉ๋ฒ• ์™œ backgroundColor๋ฅผ ๋ณ€๊ฒฝ์‹œํ‚ค๋ฉด ๋„ค๋ชจ ๋ชจ์–‘์œผ๋กœ ์น ํ•ด์งˆ๊นŒ์— ๋Œ€ํ•ด์„œ ์ƒ๊ฐํ•ด๋ณด๋‹ค๊ฐ€ UISwitch์˜ ๊ตฌ์กฐ๋ฅผ ์‚ดํŽด๋ณด๊ณ  ์‹ถ์–ด์„œ ๊ณ„์ธต ๊ตฌ์กฐ๋ฅผ ๋œฏ์–ด๋ดค๋‹ค. ๋ณด๋‹ˆ๊นŒ ๊ธฐ๋ณธ์ ์œผ๋กœ ์ƒ‰์ด ๋“ค์–ด๊ฐ€ ์žˆ๋Š” ๋ทฐ๋ž‘ backgroundColor๊ฐ€ ์ ์šฉ๋˜๋Š” ๋ทฐ๋Š” ๊ณ„์ธต์ด ๋‹ค๋ฅธ ๊ฒƒ ๊ฐ™์•˜๋‹ค. ๋‘ ๋ฒˆ์งธ ์ด๋ฏธ์ง€๊ฐ€ UISwitch์˜ backgroundColor๋งŒ ๋ณ€๊ฒฝ์‹œ์ผฐ์„ ๋•Œ์˜..
ยท๐ŸŒฑ SeSAC
๐Ÿชด Summary ์•ฑ์˜ ์ƒ๋ช… ์ฃผ๊ธฐ (App Life Cycle) App Delegate์™€ Scene Delegate iOS13, iOS14 ํŠน์ง• available attribute keyword (์ฝ”๋“œ์˜ ๋ฒ„์ „ ๋Œ€์‘์„ ์–ด๋–ป๊ฒŒ ํ•ด์•ผ ํ• ๊นŒ?) Not Running์ธ์ง€ Background์ธ์ง€ ๊ทธ ์ƒํƒœ๊ฐ€ ๊ถ๊ธˆํ•˜๋‹ค. ๋‹คํฌ๋ชจ๋“œ์™€ ์ปฌ๋Ÿฌ ์ง€์ • ๊ฐ€๋กœ๋ชจ๋“œ Project, Target UIWindow sleep() ๋ฉ”์„œ๋“œ๋ฅผ ์ด์šฉํ•ด Launch Screen ๋™์ž‘ ์‹œ๊ฐ„ ์กฐ์ • IBOutlet์ด ์ •์ƒ์ ์œผ๋กœ ์—ฐ๊ฒฐ์ด ์ž˜ ๋˜์ง€ ์•Š์„๋•Œ UITextField, UIButton IBOutlet๊ณผ IBAction ํ‚ค๋ณด๋“œ ๋‚ด๋ฆฌ๊ธฐ์™€ Tap Gesture ๐Ÿ—‚ Detail TIL์— ๋„ˆ๋ฌด ๋งŽ์€ ๋ฆฌ์†Œ์Šค๋ฅผ ๋“ค์ด์ง€ ๋ง™์‹œ๋‹ค. ์•ฑ์˜ ์ƒ๋ช…์ฃผ๊ธฐ (Life Cycle..
ยท๐ŸŽ iOS & Swift
What's new in SF Symbols 4 Explore the latest updates to SF Symbols, Apple's extensive library of iconography designed to integrate seamlessly with San Francisco, the system font for all Apple platforms. Discover the latest additions to the SF Symbols library and new categories in the app. Learn about the new Automatic behavior, which chooses the rendering mode that best highlights what's unique..
ยท๐ŸŽ iOS & Swift
๋“ค์–ด๊ฐ€๋ฉฐ โ˜€๏ธ ๊ธฐ์ดˆ ๋ฌธ๋ฒ• ๊ณต๋ถ€์˜ ํ•„์š”์„ฑ์„ ๋Š๊ปด์„œ ์ดˆ์‹ฌ์œผ๋กœ ๋Œ์•„๊ฐ€ ์กฐ๊ธˆ์”ฉ ๊ณต๋ถ€ํ•˜๋ ค๊ณ  ํ•œ๋‹ค. ์ง€๊ธˆ ๊ณต๋ถ€ํ•˜๊ณ ์ž ํ•˜๋Š” ๊ฒƒ๋“ค์ด ๋‹จ์ˆœ ์ •๋ฆฌ๊ฐ€ ๋˜์ง€ ์•Š๋„๋ก ๊ณ„์† ๊ณ ๋ฏผํ•˜๊ณ  ์—ฐ๊ตฌํ•˜๋Š” ์ž์„ธ๋ฅผ ๊ฐ€์ง€๋„๋ก ํ•˜์ž. ๊ธฐ์ดˆ๋Š” ๊ฐ€์žฅ ์‰ฌ์›Œ์„œ๊ฐ€ ์•„๋‹ˆ๋ผ ๊ฐ€์žฅ ์ค‘์š”ํ•ด์„œ ๊ทธ ์˜๋ฏธ๊ฐ€ ์žˆ์Œ์„ ๊นจ๋‹ซ์ž. if๋ฌธ ๐Ÿ™‹๐Ÿปโ€โ™‚๏ธ ํŠน์ • ์กฐ๊ฑด์—์„œ๋งŒ ์ฝ”๋“œ๋ฅผ ์‹คํ–‰ํ•ด์•ผ ํ•˜๊ฑฐ๋‚˜ ๋˜๋Š” ์‹คํ–‰ํ•˜์ง€ ๋ง์•„์•ผ ํ•˜๊ฑฐ๋‚˜ ํ•˜๋Š” ์ƒํ™ฉ์—์„œ ์“ฐ์ธ๋‹ค. ๋ง ๊ทธ๋Œ€๋กœ ์กฐ๊ฑด์— ๋”ฐ๋ผ ๋‹ค๋ฅธ ์ฒ˜๋ฆฌ๋ฅผ ํ•ด์ฃผ๊ณ  ์‹ถ์„ ๋•Œ ์‚ฌ์šฉํ•œ๋‹ค. ํ•˜๋‚˜์˜ ํ”„๋กœ๊ทธ๋žจ์„ ๋งŒ๋“ค๋‹ค ๋ณด๋ฉด ์ •๋ง ํ•„์ˆ˜์ ์œผ๋กœ ์กฐ๊ฑด๋ฌธ์„ ์‚ฌ์šฉํ•ด์„œ ์กฐ๊ฑด์— ๋”ฐ๋ฅธ ์ฒ˜๋ฆฌ๋ฅผ ํ•ด์ฃผ๋Š” ์ƒํ™ฉ์ด ๋ฐœ์ƒํ•˜๊ธฐ ๋•Œ๋ฌธ์— ํ•„์ˆ˜์ ์œผ๋กœ ์•Œ๊ณ  ์žˆ์–ด์•ผ ํ•˜๋Š” ๋‚ด์šฉ์ด๋‹ค. ์ค‘์š”ํ•œ ๊ฑด if๋ฌธ์„ ์‚ฌ์šฉํ•  ์ˆ˜ ์žˆ๋Š” ์ƒํ™ฉ์—์„œ switch-case๋ฌธ์„ ์‚ฌ์šฉํ•  ์ˆ˜ ์žˆ๋‹ค๋Š” ๊ฒƒ์ธ๋ฐ ์–ด๋–ป๊ฒŒ ์ฝ”๋“œ๋ฅผ ์ž‘์„ฑํ•ด์•ผ ํ• ์ง€๋Š” ์ ..