[Swift ๋ฌธ๋ฒ•] 2 - 1. ๊ธฐ๋ณธ ์ž๋ฃŒํ˜•
ยท
iOS_Developer/swift
๐Ÿ 1. ๊ธฐ๋ณธ ์ž๋ฃŒํ˜• (Primitive Types)โ—ป๏ธ 1) ์ •์ˆ˜ํ˜• (Integers)์ •์ˆ˜ํ˜•์€ ์†Œ์ˆ˜์ ์ด ์—†๋Š” ์ •์ˆ˜ ๊ฐ’์„ ์ €์žฅํ•˜๋Š” ์ž๋ฃŒํ˜•์ž…๋‹ˆ๋‹ค. Swift๋Š” ๋‘ ๊ฐ€์ง€ ์ฃผ์š” ์ •์ˆ˜ํ˜•์„ ์ œ๊ณตํ•ฉ๋‹ˆ๋‹คโ‘  Int : +, - ๋ถ€ํ˜ธ๋ฅผ ํฌํ•จํ•œ ์ •์ˆ˜var age: Int = 30โ‘ก UInt : - ๋ถ€ํ˜ธ๋ฅผ ํฌํ•จํ•˜์ง€ ์•Š๋Š” 0์„ ํฌํ•จํ•œ ์–‘์˜ ์ •์ˆ˜var count: UInt = 50*๐ŸŒˆ Int์™€ UInt ์ค‘ ์„ ํƒํ•ด ์‚ฌ์šฉ*ํ”Œ๋žซํผ์— ๋”ฐ๋ฅธ Int์˜ ์ตœ๋Œ“๊ฐ’(64๋น„ํŠธ ํ™˜๊ฒฝ์ด๋ผ๋ฉด Int64์˜ ์ตœ๋Œ“๊ฐ’) ์ด์ƒ UInt ์ตœ๋Œ“๊ฐ’ ๋ฏธ๋งŒ์„ ์‚ฌ์šฉํ•˜๊ฒŒ ๋˜๋Š” ๊ฒฝ์šฐ ์ด์™ธ ์—๋Š”, UInt๋ณด๋‹ค๋Š” Int ํƒ€์ž…์„ ์‚ฌ์šฉํ•˜๋Š” ๊ฒƒ์ด ๊ถŒ์žฅ๋œ๋‹ค.์˜ˆ๋ฅผ ๋“ค์–ด 64๋น„ํŠธ์˜ ํ™˜๊ฒฝ์ด๋ผ๋ฉด Int64์˜ ์ตœ๋Œ“๊ฐ’๊ณผ UInt64์˜ ์ตœ๋Œ“๊ฐ’ ์‚ฌ์ด์˜ ๊ฐ’์„ ์‚ฌ์šฉํ•˜๋Š” ๊ฒฝ์šฐ ์ด์™ธ์— ์ •์ˆ˜ ํƒ€์ž…์˜ ๊ฐ’์„..
[Swift ๋ฌธ๋ฒ•] 2. ์ž๋ฃŒํ˜•
ยท
iOS_Developer/swift
๐ŸŽ ์ž๋ฃŒํ˜•Swift์—์„œ ์ž๋ฃŒํ˜•์˜ ์—ญํ• ๐ŸŒˆ ์ž๋ฃŒํ˜• (Data Type)๋ณ€์ˆ˜๋‚˜ ์ƒ์ˆ˜๊ฐ€ ์ €์žฅํ•  ์ˆ˜ ์žˆ๋Š” ๊ฐ’์˜ ์ข…๋ฅ˜์™€ ํ•ด๋‹น ๊ฐ’์— ๋Œ€ํ•ด ์ˆ˜ํ–‰ํ•  ์ˆ˜ ์žˆ๋Š” ์—ฐ์‚ฐ์„ ์ •์˜ํ•˜๋Š” ์ถ”์ƒ์  ๊ฐœ๋…์ž…๋‹ˆ๋‹ค.๐ŸŒˆ ํƒ€์ž… ์•ˆ์ „์„ฑ (Type Safety)Swift๋Š” ๋ณ€์ˆ˜๋‚˜ ์ƒ์ˆ˜๊ฐ€ ์„ ์–ธ๋œ ํƒ€์ž…๊ณผ ์ผ์น˜ํ•˜์ง€ ์•Š๋Š” ๊ฐ’์„ ํ• ๋‹นํ•˜๊ฑฐ๋‚˜ ์—ฐ์‚ฐํ•˜๋ ค๊ณ  ํ•  ๋•Œ ์ปดํŒŒ์ผ ํƒ€์ž„์— ์˜ค๋ฅ˜๋ฅผ ๋ฐœ์ƒ์‹œ์ผœ ํƒ€์ž… ๊ด€๋ จ ์˜ค๋ฅ˜๋ฅผ ๋ฐฉ์ง€ํ•ฉ๋‹ˆ๋‹ค.๐ŸŒˆ ํƒ€์ž… ์ถ”๋ก  (Type Inference)์ปดํŒŒ์ผ๋Ÿฌ๊ฐ€ ๋ณ€์ˆ˜๋‚˜ ์ƒ์ˆ˜์˜ ์ดˆ๊ธฐ ๊ฐ’์„ ๊ธฐ๋ฐ˜์œผ๋กœ ์ž๋™์œผ๋กœ ํƒ€์ž…์„ ๊ฒฐ์ •ํ•˜์—ฌ ์ฝ”๋“œ์˜ ๊ฐ„๊ฒฐ์„ฑ๊ณผ ๊ฐ€๋…์„ฑ์„ ๋†’์ž…๋‹ˆ๋‹ค.๐ŸŒˆ ํƒ€์ž… ์ฃผ์„ (Type Annotation)๋ณ€์ˆ˜๋‚˜ ์ƒ์ˆ˜๋ฅผ ์„ ์–ธํ•  ๋•Œ ๋ช…์‹œ์ ์œผ๋กœ ํƒ€์ž…์„ ์ง€์ •ํ•˜์—ฌ ์ฝ”๋“œ์˜ ์˜๋„๋ฅผ ๋ช…ํ™•ํ•˜๊ฒŒ ํ‘œํ˜„ํ•˜๊ณ , ์ปดํŒŒ์ผ๋Ÿฌ๊ฐ€ ํƒ€์ž…์„ ์ •ํ™•ํžˆ ์ดํ•ดํ•˜๋„๋ก ํ•ฉ๋‹ˆ๋‹ค.๐Ÿ 1. ๊ธฐ๋ณธ ์ž๋ฃŒ..
[TeamProject] Troubleshooting_AED API
ยท
iOS_Developer/Team Project
๋ฌธ์ œ์ƒํ™ฉAED API์˜ ์š”์ฒญ ๋ณ€์ˆ˜์— ์œ„๋„ ๊ฒฝ๋„ ๊ฐ’์ด ์กด์žฌ ํ•˜์ง€ ์•Š์•„์„œ๋ฐ˜๊ฒฝ ๋ฐ์ดํ„ฐ๋ฅผ ๊ฐ€์ ธ์˜ค๋Š”๋ฐ ๋ฌธ์ œ๊ฐ€ ๋ฐœ์ƒํ•จ๋ฌธ์ œ ํ•ด๊ฒฐํ•ด๊ฒฐ๋ฐฉ์•ˆ ๋…ผ์˜1์•ˆ : ๊ณต๊ณต๋ฐ์ดํ„ฐ ํฌํ„ธ์— ์š”์ฒญ๋ณ€์ˆ˜ ์ถ”๊ฐ€ ์š”์ฒญํ•˜๊ธฐ2์•ˆ : ์•ฑ ์ตœ์ดˆ ์‹คํ–‰ ์‹œ ๋ชจ๋“  ๋ฐ์ดํ„ฐ๋ฅผ ๋ฐ›์•„์„œ UserDefaults์— ์ €์žฅํ•ด์„œ ์œ„๊ฒฝ๋„ ๊ฐ’ ํ•„ํ„ฐ๋ง ํ•ด์„œ ๊ฐ€์ ธ์˜ค๊ธฐ๋…ผ์˜ ๊ณผ์ •https://github.com/Kim-Dong-Hyeon/Duriso/issues/56 [ETC] : AED๋ฐ์ดํ„ฐ ๊ด€๋ จ · Issue #56 · Kim-Dong-Hyeon/Duriso์–ด๋–ค ๋ฌธ์ œ์ธ๊ฐ€์š”? aed api ์š”์ฒญ๋ณ€์ˆ˜์— ์œ„๊ฒฝ๋„ ๊ฐ’์„ ์ง€์ •ํ•ด์ฃผ๋Š” ์š”์ฒญ๋ณ€์ˆ˜๊ฐ€ ์—†๋‹ค๋ณด๋‹ˆ ์ „์ฒด ๋ฐ์ดํ„ฐ๋ฅผ ๋ฐ›์•„์™€์„œ ๊ฑฐ๊ธฐ์„œ ๊ฐ€์‹œ์„ฑ ์กฐ์œจ์„ ํ•˜๊ธฐ์—๋Š” ๋ฐ์ดํ„ฐ๊ฐ€ ๋„ˆ๋ฌด ๋งŽ์€๋ฐ ์–ด๋–ป๊ฒŒ ํ•˜๋ฉด ์ข‹์„๊นŒ์š”? ์ƒ๊ฐํ•œgithub.comgithub issue..
Junior Developer ๋ฉด์ ‘ ์ค€๋น„ ๋ฉด์ ‘์นดํƒ€โ‘ค
ยท
iOS_Developer/๋ฉด์ ‘์ค€๋น„
1. ์‹ฑ๊ธ€ํ†ค ํŒจํ„ด์— ๋Œ€ํ•ด์„œ ์„ค๋ช…ํ•ด์ฃผ์„ธ์š”.๋‹ต๋ณ€: ์‹ฑ๊ธ€ํ†ค(Singleton) ํŒจํ„ด์€ ํด๋ž˜์Šค์˜ ์ธ์Šคํ„ด์Šค๋ฅผ ํ•˜๋‚˜๋งŒ ์ƒ์„ฑํ•˜๊ณ , ์–ด๋””์„œ๋“  ์ด ์ธ์Šคํ„ด์Šค์— ์ ‘๊ทผํ•  ์ˆ˜ ์žˆ๋„๋ก ๋ณด์žฅํ•˜๋Š” ๋””์ž์ธ ํŒจํ„ด์ž…๋‹ˆ๋‹ค. ์ฃผ๋กœ ์ „์—ญ์ ์œผ๋กœ ๊ด€๋ฆฌํ•ด์•ผ ํ•˜๋Š” ๋ฆฌ์†Œ์Šค๋‚˜ ์ƒํƒœ๋ฅผ ๊ณต์œ ํ•˜๋Š” ๊ฐ์ฒด์— ์‚ฌ์šฉ๋ฉ๋‹ˆ๋‹ค. iOS์—์„œ๋Š” ๋„คํŠธ์›Œํฌ ๊ด€๋ฆฌ, ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค ์ ‘๊ทผ, ์„ค์ • ๊ด€๋ฆฌ ๋“ฑ์— ์ฃผ๋กœ ์‚ฌ์šฉ๋ฉ๋‹ˆ๋‹ค.์ถ”๊ฐ€ ์งˆ๋ฌธ ๊ฐ€๋Šฅ์„ฑ:์‹ฑ๊ธ€ํ†ค ํŒจํ„ด์˜ ์žฅ๋‹จ์ ์€ ๋ฌด์—‡์ธ๊ฐ€์š”?๋‹ต๋ณ€: ์žฅ์ ์€ ์ „์—ญ์ ์ธ ์ƒํƒœ ๊ด€๋ฆฌ๊ฐ€ ์šฉ์ดํ•˜๊ณ , ๊ฐ์ฒด ์ƒ์„ฑ ๋น„์šฉ์„ ์ค„์ผ ์ˆ˜ ์žˆ๋‹ค๋Š” ์ ์ž…๋‹ˆ๋‹ค. ๋‹จ์ ์€ ์ „์—ญ ์ƒํƒœ๋ฅผ ๊ณต์œ ํ•˜๋ฏ€๋กœ, ์˜์กด์„ฑ์ด ๋†’์•„์ง€๊ณ  ํ…Œ์ŠคํŠธ๊ฐ€ ์–ด๋ ค์›Œ์งˆ ์ˆ˜ ์žˆ๋‹ค๋Š” ์ ์ž…๋‹ˆ๋‹ค.iOS์—์„œ ์‹ฑ๊ธ€ํ†ค์„ ๋งŒ๋“ค ๋•Œ ์ฃผ์˜ํ•  ์ ์€?๋‹ต๋ณ€: Swift์—์„œ๋Š” static let์„ ์‚ฌ์šฉํ•ด ์‹ฑ๊ธ€ํ†ค์„ ๊ตฌํ˜„ํ•  ๋•Œ ์Šค๋ ˆ๋“œ ์•ˆ์ „์„ฑ์„ ๋ณด์žฅํ•˜๊ณ ,..
Junior Developer ๋ฉด์ ‘ ์ค€๋น„ ๋ฉด์ ‘์นดํƒ€โ‘ฃ
ยท
iOS_Developer/๋ฉด์ ‘์ค€๋น„
1. clipToBounds์— ๋Œ€ํ•ด์„œ ์„ค๋ช…ํ•ด์ฃผ์„ธ์š”.๋‹ต๋ณ€: clipToBounds๋Š” ๋ถ€๋ชจ ๋ทฐ์˜ ๊ฒฝ๊ณ„๋ฅผ ๊ธฐ์ค€์œผ๋กœ ์ž์‹ ๋ทฐ์˜ ํ‘œ์‹œ ์—ฌ๋ถ€๋ฅผ ๊ฒฐ์ •ํ•˜๋Š” ์†์„ฑ์ž…๋‹ˆ๋‹ค. true๋กœ ์„ค์ •ํ•˜๋ฉด ์ž์‹ ๋ทฐ๊ฐ€ ๋ถ€๋ชจ ๋ทฐ์˜ ๊ฒฝ๊ณ„๋ฅผ ๋„˜๋Š” ๋ถ€๋ถ„์ด ์ž˜๋ฆฌ๊ณ , false๋กœ ์„ค์ •ํ•˜๋ฉด ๋„˜๋Š” ๋ถ€๋ถ„๋„ ๋ณด์ž…๋‹ˆ๋‹ค.์ถ”๊ฐ€ ์งˆ๋ฌธ ๊ฐ€๋Šฅ์„ฑ:clipToBounds๋ฅผ ์–ธ์ œ ์‚ฌ์šฉํ•˜๋‚˜์š”?๋‹ต๋ณ€: ๋ถ€๋ชจ ๋ทฐ์˜ ๊ฒฝ๊ณ„๋ฅผ ๋„˜์–ด๊ฐ€๋Š” ์ž์‹ ๋ทฐ์˜ ๋‚ด์šฉ์„ ์ˆจ๊ธธ ๋•Œ ์‚ฌ์šฉํ•ฉ๋‹ˆ๋‹ค. ์˜ˆ๋ฅผ ๋“ค์–ด, ๋ถ€๋ชจ ๋ทฐ์— ๋‘ฅ๊ทผ ๋ชจ์„œ๋ฆฌ๋ฅผ ์ ์šฉํ•œ ๊ฒฝ์šฐ, ์ž์‹ ๋ทฐ๊ฐ€ ๊ฒฝ๊ณ„๋ฅผ ๋„˜์ง€ ์•Š๋„๋ก ํ•  ๋•Œ ์œ ์šฉํ•ฉ๋‹ˆ๋‹ค.clipsToBounds์™€ maskToBounds ์ฐจ์ด์ ์€ ๋ฌด์—‡์ธ๊ฐ€์š”?๋‹ต๋ณ€: clipsToBounds๋Š” UIView์— ์ ์šฉ๋˜๋Š” ์†์„ฑ์œผ๋กœ, ์ž์‹ ๋ทฐ๋ฅผ ์ž˜๋ผ๋‚ด๋Š” ์—ญํ• ์„ ํ•ฉ๋‹ˆ๋‹ค. ๋ฐ˜๋ฉด, maskToBounds๋Š” CALa..
[TeamProject] Troubleshooting_POI show/hide
ยท
iOS_Developer/Team Project
๋ฌธ์ œ์ - ์ง€๋„์˜ ํ•˜๋‹จ์— ๋Œ€ํ”ผ์†Œ, ์ œ์„ธ๋™๊ธฐ, ๊ธด๊ธ‰์ œ๋ณด ๋ฒ„ํŠผ ํด๋ฆญ์‹œ poi๋งˆ์ปค๊ฐ€ show/ hide ๊ฐ€ ์ œ๋Œ€๋กœ ์ด๋ฃจ์–ด ์ง€์ง€ ์•Š์Œ- ๋กœ๊ทธ๋ฉ”์‹œ์ง€์— poi๊ฐ€ ํ‘œ์‹œ์ค‘์ด๋ผ๊ณ  ๋œจ์ง€๋งŒ.. ์ง€๋„์—๋Š” ๋‚˜ํƒ€๋‚˜์ง€ ์•Š์Œํ•ด๊ฒฐ๋ฐฉ๋ฒ•1. hide ํ•ด์ฃผ๋Š” ๋ฉ”์„œ๋“œ์—์„œ ์‚ฌ์šฉํ•œ layer.clearAllItems()๊ฐ€ ๋ฌธ์ œ์˜€์Œ()๋ฅผ ๋ชจ๋“  ์•„์ดํ…œ์„ ์ˆจ๊น€ ์œผ๋กœ ์ดํ•ดํ•˜๊ณ  ์‚ฌ์šฉํ–ˆ์ง€๋งŒKakaoMapsSDK 2.10.5 Docs๋ฅผ ๋‹ค์‹œ ์‚ดํŽด ๋ณด๋‹ˆํ•ด๋‹น ๋ ˆ์ด์–ด์˜ ๋ชจ๋“  ์•„์ดํ…œ์„ ์‚ญ์ œ!! ํ•ด์ฃผ๋Š” ๊ฒƒ์ด์—ˆ์Œ๊ทธ๋ž˜์„œ ๋ฐ์ดํ„ฐ๊ฐ€ ๋‹ค ๋‚ ์•„๊ฐ„ ์ƒํƒœ์—ฌ์„œ ๋‹ค์‹œ ๋ณด์—ฌ์ค„ ๋งˆํฌ๊ฐ€ ์—†์—ˆ๋˜๊ฒƒํ˜„์žฌ Layer์— ์žˆ๋Š” ๋ชจ๋“  item์„ ์ผ๊ด„์ ์œผ๋กœ ์ง€์šด๋‹ค.ํ•˜๋‚˜์˜ layer์•ˆ์— Poi์™€ WaveText๊ฐ€ ํ•จ๊ป˜ ์ถ”๊ฐ€๊ฐ€ ๊ฐ€๋Šฅํ•˜๋ฏ€๋กœ, ์ด ๊ฒฝ์šฐ clear๋ฅผ ํ˜ธ์ถœ๊ฒŒ ๋˜๋ฉด ๋ชจ๋“  Poi์™€ WaveText๊ฐ€ ์ง€..
[TeamProject] CodeBase ์นด์นด์˜ค๋งต _ ๊ธฐ์ดˆ๋ถ€ํ„ฐ ์ฐจ๊ทผ์ฐจ๊ทผ
ยท
iOS_Developer/Team Project
์นด์นด์˜ค๋งต...api๋ฅผ ์‚ฌ์šฉํ•˜๋ฉด์„œ ์—ฌ๋Ÿฌ๊ฐ€์ง€ ํŠธ๋Ÿฌ๋ธ” ์ŠˆํŒ…๋“ค์„ ๊ฒช๊ณ  ์žˆ๋‹ค..๋””๋ฒ„๊ทธ๋ฅผ ์•„๋ฌด๋ฆฌ ์ฐ์–ด๋ด๋„ ๊ณ„์† ๋„๋ฅด๋งˆ๋ฌด ๋„๋ฅด๋งˆ๋ฌด.. ํ•˜๋‚˜๋ฅผ ํ•ด๊ฒฐํ•˜๋ฉด ๋‹ค๋ฅธ ํ•˜๋‚˜๊ฐ€ ์•ˆ๋˜๋Š” ๊ทธ๋Ÿฐ ์ƒํ™ฉ์ด๋ผ์„œ์ฒ˜์Œ๋ถ€ํ„ฐ ๋‹ค์‹œ ๊ธฐ์ดˆ๋ถ€ํ„ฐ ์ฐจ๊ทผ์ฐจ๊ทผ ๋งต ๊ตฌ์„ฑ๋ถ€ํ„ฐ ๋‹ค์‹œ ํ•ด๋ณด๋ ค๊ณ  ํ•œ๋‹ค1.  ์นด์นด์˜ค๋งต ๋ทฐ ๊ทธ๋ฆฌ๊ธฐ ์นด์นด์˜ค ๋งต ์ดˆ๊ธฐํ™”์™€ ์ถ”๊ฐ€, api ์˜ค๋ฅ˜ ์—๋Ÿฌ์ฝ”๋“œ๊นŒ์ง€๋งŒ ์ž‘์—… ํ•œ ๋‚ด์šฉSDK ๊ฐ€์ด๋“œ๋ผ์ธ์— ์Šคํ† ๋ฆฌ๋ณด๋“œ์™€ SwiftUI๋งŒ ์•ˆ๋‚ด๊ฐ€ ๋˜์–ด์žˆ์Œ... ์ฝ”๋”ฉ ์ž˜ํ•˜์‹œ๋Š”๋ถ„๋“ค์€ ๋š๋”ฑ๋š๋”ฑ ํ•˜๊ฒ ์ง€๋งŒ์ฝ”๋“œ๋ฒ ์ด์Šค๋กœ ์ฒ˜์Œ ๋งต ์ž‘์—…ํ•ด๋ณด์‹œ๋Š” ๋ถ„๋“ค์€ ์ฐธ๊ณ  ํ•˜๋ฉด ์ข‹์„๋“ฏimport UIKitimport KakaoMapsSDK/** -KakaoMapViewController : KakaoMap์˜ ๋ทฐํŠธ๋กค๋Ÿฌ ๊ด€๋ฆฌ */class KakaoMapViewController: UIViewControl..
ํ”Œ๋กœํŒ… ํŒจ๋„
ยท
iOS_Developer/UIkit
import Foundationimport SwiftOnoneSupportimport UIKitimport _Concurrencyimport _StringProcessingimport _SwiftConcurrencyShimsimport osimport os.log/// ํŒจ๋„ ๋’ค์— ๋ฐฐ๊ฒฝ ์ธํ„ฐํŽ˜์ด์Šค๋ฅผ ์ œ๊ณตํ•˜๋Š” ๋ทฐ์ž…๋‹ˆ๋‹ค.@objc(FloatingPanelBackdropView) open class BackdropView : UIView { /// ํŒจ๋„์„ ํ•ด์ œํ•˜๊ธฐ ์œ„ํ•œ ํƒญ ์ œ์Šค์ฒ˜์˜ ์ œ์Šค์ฒ˜ ์ธ์‹๊ธฐ์ž…๋‹ˆ๋‹ค. /// /// ๊ธฐ๋ณธ์ ์œผ๋กœ ์ด ์ œ์Šค์ฒ˜ ์ธ์‹๊ธฐ๋Š” iOS ๋ชจ๋‹ฌ์˜ ๊ธฐ๋ณธ ๋™์ž‘์„ ๋”ฐ๋ฅด๊ธฐ ๋•Œ๋ฌธ์— ๋น„ํ™œ์„ฑํ™”๋˜์–ด ์žˆ์Šต๋‹ˆ๋‹ค. /// ๋ฐฐ๊ฒฝ์„ ํƒญํ•˜์—ฌ ํŒจ๋„์„ ํ•ด์ œํ•˜๋ ค๋ฉด `dismissalTapGestureRec..