profile
๐ŸŒฑ iOS developer
ํƒœ๊ทธ ๋ชฉ๋ก
์ „์ฒด๋ณด๊ธฐ (64)iOS(45)swift(17)linux(5)algorithm(4)API(3)Architecture Pattern(2)SceneDelegate(2)AppDelegate(2)solve_problem(2)closure(2)C(2)github(2)reduce(2)vm(2)container(1)๊ฐ€์ƒ๋จธ์‹ (1)OS(1)md(1)function(1)TimeInterval(1)numpy(1)Nested Fuction(1)Kernel(1)TableView Cell(1)IBOutlet(1)Cocoa Touch(1)prepare(1)Human Interface Guidelines(1)tableview(1)header(1)nonzeroBitCount(1)RX(1)type inference(1)inout parameter(1)image(1)prepare(for:sender:)(1)lifecycle(1)operator(1)๊ฐ€์ƒํ™”(1)@available(1)compactMap(1)flatmap(1)DP(1)Emulation(1)garbage collection(1)Segue(1)MVC(1)tableveiw(1)VirtualMachine(1)Auto Layout(1)structure(1)unix(1)UnicodeScalar(1)rxswift(1)Local Notification(1)class(1)popLast(1)&&(1)inout(1)Cocoa Touch Layer(1)property list(1)anaconda(1)github.io(1)Operators(1)inheritance(1)Time Complexity(1)XIB(1)favicon(1)typealias(1)docker(1)์ปจํ…Œ์ด๋„ˆ(1)readme(1)filter(1)AVAudioPlayer(1)removeLast(1)Auto Reference Counting(1)MVVM(1)nested(1)UIkit(1)Foundation(1)์—๋ฎฌ๋ ˆ์ด์…˜(1)Big O(1)subclassing(1)Python3(1)value(1)๋ฐฐํฌํŒ(1)Gesture Recognizer(1)timer(1)reduce(into::)(1)permission(1)UserNotifications(1)higher-order functions(1)type annotation(1)NewsApi(1)Unsplash(1)Operating System(1)bitwise(1)README.md(1)hash value(1)version(1)Scene(1)Overriding(1)UTF16(1)api key(1)hide()(1)Markdown(1)Storyboard(1)Delegation(1)userDefaults(1)Hashable(1)performsegue(1)Crawling(1)app(1)robots.txt(1)computed property(1)stored property(1)NIB(1)์ปค๋„(1)performSegue(withIdentifier:sender:)(1)Map(1)H.I.G(1)AVFoundation(1)Target Action(1)hash(1)lazy stored property(1)matplotlib(1)pandas(1)์šด์˜์ฒด์ œ(1)dynamic programming(1).gitignore(1)Singleton(1)capture(1)๋„์ปค(1)

[iOS] iOS App Lifecycle

App ์˜ ์ƒ๋ช…์ฃผ๊ธฐ๋Š” ๋‹ค์Œ ๊ณผ์ •์„ ํฌํ•จํ•œ๋‹ค. App ์˜ ์‹คํ–‰ ยท ์ข…๋ฃŒ, App Foreground ยท Background ์ƒํƒœ, ์‹œ์Šคํ…œ์ด ๋ฐœ์ƒ์‹œํ‚ค๋Š” event ์— ์˜ํ•ด App ์ƒํƒœ ์ „ํ™˜

2022๋…„ 8์›” 30์ผ
ยท
0๊ฐœ์˜ ๋Œ“๊ธ€
ยท

[iOS] AppDelegate

AppDelegate.swift ๋Š” ํฌ๊ฒŒ ๋‘ ๊ฐ€์ง€ ๊ธฐ๋Šฅ์„ ํ•œ๋‹ค. ์• ํ”Œ๋ฆฌ ์ผ€์ด์…˜์ด ๊ทธ๋ ค์งˆ window ๋ฅผ ์ƒ์„ฑํ•˜๊ณ  ์ƒํƒœ๊ฐ€ ๋ณ€ํ•  ๋•Œ ๋ฐ˜์‘ํ•  ์ˆ˜ ์žˆ๊ฒŒ ํ•œ๋‹ค. AppDelegate ํด๋ž˜์Šค๋Š” UIApplicationDelegate ํ”„๋กœํ† ์ฝœ์„ ์ฑ„ํƒํ•ด์•ผํ•œ๋‹ค.

2022๋…„ 8์›” 29์ผ
ยท
0๊ฐœ์˜ ๋Œ“๊ธ€
ยท

[iOS] available

ํŠน์ • Swift ๋ฒ„์ „ ๋˜๋Š” ํŠน์ • ํ”Œ๋žซํผ ๋ฐ OS ๋ฒ„์ „๊ณผ ๊ด€๋ จ๋œ ์„ ์–ธ์˜ ์ƒ๋ช…์ฃผ๊ธฐ๋ฅผ ๋‚˜ํƒ€๋‚ธ๋‹ค. ์—ฌ๋Ÿฌ ํ”Œ๋žซํผ์—์„œ ์„œ๋กœ ๋‹ค๋ฅธ ๋…ผ๋ฆฌ ์ฒ˜๋ฆฌ๋ฅผ ๊ฒฐ์ •ํ•˜๊ธฐ ์œ„ํ•ด์„œ ํ•„์š”ํ•˜๋‹ค.

2022๋…„ 8์›” 26์ผ
ยท
0๊ฐœ์˜ ๋Œ“๊ธ€
ยท

[iOS] UserDefaults

์•ฑ์„ ์‹คํ–‰ํ•˜๋Š” ๋™์•ˆ ์ง€์†์ ์œผ๋กœ ํ‚ค-๊ฐ’ ์Œ์„ ์ €์žฅํ•˜๋Š”์‚ฌ์šฉ์ž์˜ ๊ธฐ๋ณธ ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค์— ๋Œ€ํ•œ ์ธํ„ฐํŽ˜์ด์Šค๋ฅผ ๋งํ•œ๋‹ค.

2022๋…„ 8์›” 26์ผ
ยท
0๊ฐœ์˜ ๋Œ“๊ธ€
ยท

[iOS] UserNotifications

์„œ๋ฒ„์—์„œ ์‚ฌ์šฉ์ž ์žฅ์น˜๋กœ ์‚ฌ์šฉ์ž ๋Œ€๋ฉด ์•Œ๋ฆผ์„ ํ‘ธ์‹œํ•˜๊ฑฐ๋‚˜ ์•ฑ์—์„œ ๋กœ์ปฌ๋กœ ์ƒ์„ฑํ•˜๋Š” ๊ฒƒ์„ ๋งํ•œ๋‹ค.

2022๋…„ 8์›” 26์ผ
ยท
0๊ฐœ์˜ ๋Œ“๊ธ€
ยท

Robots.txt

์›น์‚ฌ์ดํŠธ์—์„œ ํฌ๋กค๋งํ•˜๋ฉฐ ์ •๋ณด๋ฅผ ์ˆ˜์ง‘ํ•˜๋Š” ๊ฒ€์ƒ‰์—”์ง„ ํฌ๋กค๋Ÿฌ(๋˜๋Š” ๊ฒ€์ƒ‰ ๋กœ๋ด‡)๊ฐ€ ์•ก์„ธ์Šคํ•˜๊ฑฐ๋‚˜ ์ •๋ณด์ˆ˜์ง‘์„ ํ•ด๋„ ๋˜๋Š” ํŽ˜์ด์ง€๊ฐ€ ๋ฌด์—‡์ธ์ง€ ํ•ด์„œ๋Š” ์•ˆ๋˜๋Š” ํŽ˜์ด์ง€๊ฐ€ ๋ฌด์—‡์ธ์ง€ ์•Œ๋ ค์ฃผ๋Š” ์—ญํ• ์„ ํ•˜๋Š” .txt ํŒŒ์ผ์ด๋‹ค.

2022๋…„ 8์›” 23์ผ
ยท
0๊ฐœ์˜ ๋Œ“๊ธ€
ยท

UnsplashAPI

๊ณ ํ™”์งˆ ์ด๋ฏธ์ง€๋ฅผ ๋ฌด๋ฃŒ๋กœ ์ด์šฉํ•  ์ˆ˜ ์žˆ๋Š” ํ”Œ๋žซํผ์œผ๋กœ ํ•œ ๋ฒˆ์ฏค ๋ˆ„๊ตฌ๋‚˜ ์‚ฌ์šฉํ•ด๋ดค์„ ๊ฒƒ์ด๋‹ค.

2022๋…„ 8์›” 23์ผ
ยท
0๊ฐœ์˜ ๋Œ“๊ธ€
ยท

[iOS] Segue

์Šคํ† ๋ฆฌ๋ณด๋“œ์—์„œ ๋ทฐ ์ปจํŠธ๋กค๋Ÿฌ ์‚ฌ์ด์˜ ํ™”๋ฉด์ „ํ™˜์„ ์œ„ํ•ด ์‚ฌ์šฉํ•˜๋Š” ๊ฐ์ฒด์ด๋‹ค. ๋ณ„๋„์˜ ์ฝ”๋“œ ์—†์ด๋„ ์Šคํ† ๋ฆฌ๋ณด๋“œ์—์„œ ์„ธ๊ทธ๋ฅผ ์—ฐ๊ฒฐํ•˜๋ฉด ๋ทฐ ์ปจํŠธ๋กค๋Ÿฌ ์‚ฌ์ด์˜ ํ™”๋ฉด์ „ํ™˜์„ ๊ตฌํ˜„ํ•  ์ˆ˜ ์žˆ๋‹ค.

2022๋…„ 8์›” 19์ผ
ยท
0๊ฐœ์˜ ๋Œ“๊ธ€
ยท

[iOS] reduce(_:_:) vs. reduce(into:_:)

Apple Documentation ์—์„œ๋Š” reduce(\_:\_:) ์™€ reduce(into:\_:) ์— ๋Œ€ํ•ด ๋‹ค์Œ๊ณผ ๊ฐ™์ด ์ •์˜๋˜์–ด ์žˆ๋‹ค.์ฃผ์–ด์ง„ ํด๋กœ์ €๋ฅผ ์ด์šฉํ•ด ์ˆ˜์—ด์˜ ์š”์†Œ๋“ค์„ ์กฐํ•ฉํ•œ ๊ฒฐ๊ณผ๋ฅผ ๋ฐ˜ํ™˜ํ•œ๋‹ค๋Š” ์˜๋ฏธ์ด๋‹ค.

2022๋…„ 8์›” 17์ผ
ยท
0๊ฐœ์˜ ๋Œ“๊ธ€
ยท

[iOS] Higher-Order Functions

๊ณ ์ฐจํ•จ์ˆ˜๋Š” ๋‹ค๋ฅธ ํ•จ์ˆ˜๋ฅผ ์ „๋‹ฌ์ธ์ž๋กœ ๋ฐ›๊ฑฐ๋‚˜ํ•จ์ˆ˜ ์‹คํ–‰์˜ ๊ฒฐ๊ณผ๋ฅผ ํ•จ์ˆ˜๋กœ ๋ฐ˜ํ™˜ํ•˜๋Š” ํ•จ์ˆ˜๋ฅผ ๋งํ•œ๋‹ค. Swift ์˜ ํ•จ์ˆ˜(ํด๋กœ์ €) ๋Š” ์ผ๊ธ‰ ์‹œ๋ฏผ์ด๊ธฐ ๋•Œ๋ฌธ์— ํ•จ์ˆ˜์˜ ์ „๋‹ฌ์ธ์ž๋กœ ์ „๋‹ฌํ•  ์ˆ˜ ์žˆ์œผ๋ฉฐ, ํ•จ์ˆ˜์˜ ๊ฒฐ๊ณผ๊ฐ’์œผ๋กœ ๋ฐ˜ํ™˜ํ•  ์ˆ˜ ์žˆ๋‹ค.

2022๋…„ 8์›” 17์ผ
ยท
0๊ฐœ์˜ ๋Œ“๊ธ€
ยท

[Github.io] Favicon

์›นํŽ˜์ด์ง€์— ์ ‘์†ํ–ˆ์„ ๋•Œ ์ƒ๋‹จ์— ๋ณด์—ฌ์ง€๋Š” ์•„์ด์ฝ˜์„ ๋งํ•œ๋‹ค. ์ด ์•„์ด์ฝ˜์€ ์ฆ๊ฒจ์ฐพ๊ธฐ์— ์›นํŽ˜์ด์ง€๋ฅผ ๋“ฑ๋กํ•  ๋•Œ๋„ ์‚ฌ์šฉ๋œ๋‹ค. ์›น ์‚ฌ์ดํŠธ๋ฅผ ๋Œ€ํ‘œํ•˜๋Š” ๋กœ๊ณ ์˜ ๊ฐœ๋…๊ณผ ๋น„์Šทํ•˜๋ฉฐ, ์‚ฌ์ดํŠธ์˜ ์„ฑ๊ฒฉ์„ ๋“œ๋Ÿฌ๋‚ด๊ธฐ๋„ ํ•œ๋‹ค.

2022๋…„ 8์›” 17์ผ
ยท
0๊ฐœ์˜ ๋Œ“๊ธ€
ยท

[iOS] typealias

๊ธฐ์กด์— ์กด์žฌํ•˜๋Š” ๋ฐ์ดํ„ฐ ํƒ€์ž…์— ์ƒˆ๋กœ์šด ์ด๋ฆ„์„ ๋ถ™์ผ ์ˆ˜ ์žˆ๋Š” ๊ธฐ๋Šฅ์ด๋‹ค. typealias ๊ฐ€ ์ •์˜๋˜๋ฉด ํ”„๋กœ๊ทธ๋žจ์— ์กด์žฌํ•˜๋Š” ํƒ€์ž…์„ ๋Œ€์‹ ํ•˜์—ฌ ๋‹ค๋ฅธ ์ด๋ฆ„์„ ์‚ฌ์šฉํ•  ์ˆ˜ ์žˆ๋‹ค. ์ƒˆ๋กœ์šด ํƒ€์ž…์„ ์ƒ์„ฑํ•˜๋Š” ๊ฒƒ์ด ์•„๋‹ˆ๋ผ ์›๋ž˜ ์กด์žฌํ•˜๋Š” ํƒ€์ž…์˜ ์ด๋ฆ„์„ ๋ฐ”๊พธ๋Š” '์น˜ํ™˜' ๊ฐœ๋…์ด๋‹ค.

2022๋…„ 8์›” 17์ผ
ยท
0๊ฐœ์˜ ๋Œ“๊ธ€
ยท

[Github] README.md

์—ฌ๋Ÿฌ ๊ฐœ๋ฐœ์ž๋“ค์ด ์ด์šฉํ•˜๊ณ  ์žˆ๋Š” Github ์—๋Š” ํŠน๋ณ„ํ•œ ๊ธฐ๋Šฅ์ด ์žˆ๋‹ค. Design Github profile using README.md ๋ผ๋Š” ๊ธฐ๋Šฅ์ด๋‹ค. ์ด ๊ธฐ๋Šฅ์— ๋Œ€ํ•ด์„œ ์ด๋ฏธ ์•Œ๊ณ  ์žˆ๋Š” ์‚ฌ๋žŒ๋“ค๋„ ๋งŽ์„ํ…Œ์ง€๋งŒ์ข€ ๋” ์ž˜ ํ™œ์šฉํ•  ์ˆ˜ ์žˆ๋Š” ๋ฐฉ๋ฒ•์— ๋Œ€ํ•ด ์ •๋ฆฌํ•ด๋ณด๊ณ ์ž ํ•œ๋‹ค.

2022๋…„ 8์›” 15์ผ
ยท
0๊ฐœ์˜ ๋Œ“๊ธ€
ยท

[iOS] RxSwift

๋ฐ˜์‘ํ˜• ํ”„๋กœ๊ทธ๋ž˜๋ฐ ํŒจํ„ด์— ๋”ฐ๋ผ ์ฝ”๋“œ๋ฅผ ์ž‘์„ฑํ•˜๋Š” ๋ฐ ๋„์›€์„ ์ค€๋‹ค. RxSwift๋Š” Swift ์—์„œ Rx๋ฅผ ๊ตฌํ˜„ํ•œ ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ์ด๊ณ ,RxCocoa๋Š” UIKit๊ณผ Cocoa ํ”„๋ ˆ์ž„์›Œํฌ ๊ธฐ๋ฐ˜ ๊ฐœ๋ฐœ์„ ์ง€์› ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ์ด๋‹ค.

2022๋…„ 8์›” 13์ผ
ยท
0๊ฐœ์˜ ๋Œ“๊ธ€
ยท

[iOS] Capture Value

ํด๋กœ์ €๋Š” ์ฃผ๋ณ€์˜ ์ปจํ…์ŠคํŠธ์— ์žˆ๋Š” ์ƒ์ˆ˜๋‚˜ ๋ณ€์ˆ˜๋“ค์„ ์บก์ณํ•  ์ˆ˜ ์žˆ๋‹ค. ์ƒ์ˆ˜์™€ ๋ณ€์ˆ˜๋ฅผ ์ •์˜ํ•œ ์›๋ž˜ ๋ฒ”์œ„๊ฐ€ ๋” ์ด์ƒ ์กด์žฌํ•˜์ง€ ์•Š๋”๋ผ๋„๊ทธ ์ƒ์ˆ˜์™€ ๋ณ€์ˆ˜์˜ ๊ฐ’์„ ์ฐธ์กฐํ•˜๊ณ  ์ˆ˜์ •ํ•  ์ˆ˜ ์žˆ๋‹ค.

2022๋…„ 7์›” 26์ผ
ยท
0๊ฐœ์˜ ๋Œ“๊ธ€
ยท

[iOS] XIB, NIB, Storyboard

XIB, NIB, Storyboard ๋Š” MVC ๋””์ž์ธ ํŒจํ„ด์„ ์œ„ํ•ด ๋ทฐ ์ฝ”๋“œ์™€ ์ปจํŠธ๋กค๋Ÿฌ๋ฅผ ๋ถ„๋ฆฌํ•˜๋Š” ๋ชฉ์ ์œผ๋กœ ๋งŒ๋“ค์–ด์ง„ ํŒŒ์ผ๋กœ ํ™”๋ฉด์„ ๊ตฌ์„ฑํ•  ๋•Œ ์‚ฌ์šฉ๋œ๋‹ค.

2022๋…„ 7์›” 21์ผ
ยท
0๊ฐœ์˜ ๋Œ“๊ธ€
ยท

[iOS] Hide API Key

ํ”„๋กœ์ ํŠธ๋ฅผ ์ง„ํ–‰ํ•˜๋ฉด์„œ Github ๊ณผ ๊ฐ™์€ ๊ณต๊ฐœ๋œ ๊ณต๊ฐ„์— API Key ๋ฅผ ๊ทธ๋Œ€๋กœ ์˜ฌ๋ฆฌ๊ฒŒ ๋˜๋ฉด ์‚ฌ์šฉ์ž๋“ค์ด API ์™€ Key ๋ฅผ ํ™•์ธํ•  ์ˆ˜ ์žˆ๋‹ค๋Š” ์œ„ํ—˜์ด ์žˆ๋‹ค.

2022๋…„ 7์›” 20์ผ
ยท
0๊ฐœ์˜ ๋Œ“๊ธ€
ยท

[iOS] MVVM

MVVM ํŒจํ„ด์€ MVC ์™€ ๋งˆ์ฐฌ๊ฐ€์ง€๋กœ ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜ ๊ฐœ๋ฐœ์— ์ฃผ๋กœ ์‚ฌ์šฉ๋˜๋Š” ๋””์ž์ธ ํŒจํ„ด์ด๋‹ค. MVC ์™€ ๋‹ค๋ฅด๊ฒŒ Controller ๊ฐ€ ์•„๋‹Œ ViewModel ๊ณ„์ธต์„ ๊ฐ€์ง€๊ณ  ์žˆ๋‹ค.

2022๋…„ 7์›” 20์ผ
ยท
0๊ฐœ์˜ ๋Œ“๊ธ€
ยท

NewsAPI

์›น ์ „์ฒด์—์„œ ๋ผ์ด๋ธŒ ๊ธฐ์‚ฌ๋ฅผ ๊ฒ€์ƒ‰ํ•˜๊ธฐ ์œ„ํ•œ ๊ฐ„๋‹จํ•œ HTTP REST API ์ด๋‹ค.

2022๋…„ 7์›” 20์ผ
ยท
0๊ฐœ์˜ ๋Œ“๊ธ€
ยท

[iOS] Garbage Collection vs. Automatic Reference Counting

ARC ๋Š” ์ปดํŒŒ์ผ๋Ÿฌ๊ฐ€ ๋ฉ”๋ชจ๋ฆฌ ๋ฐ˜ํ™˜ ์ฝ”๋“œ๋ฅผ ๋„ฃ์–ด์ฃผ๋Š” ๊ฒƒ์ด๊ธฐ ๋•Œ๋ฌธ์— ์˜ค๋ฒ„ํ—ค๋“œ์—์„œ ์ž์œ ๋กญ๋‹ค๋Š” ํŠน์ง•์ด ์žˆ๋‹ค. ํŠนํžˆ, ๋ฉ”๋ชจ๋ฆฌ์™€ CPU ๊ฐ€ ๋ฐ์Šคํฌํƒ‘์— ๋น„ํ•ด ์ œํ•œ์ ์ธ ๋ชจ๋ฐ”์ผ ๊ธฐ๊ธฐ์—์„œ๋Š” ๋” ์ค‘์š”ํ•œ ๋ฌธ์ œ์ด๊ณ  ๊ทธ๋งŒํผ ์„ฑ๋Šฅ ์ธก๋ฉด์—์„œ ์ด๋“์ด๋ผ๊ณ  ํ•  ์ˆ˜ ์žˆ๋‹ค.

2022๋…„ 7์›” 19์ผ
ยท
0๊ฐœ์˜ ๋Œ“๊ธ€
ยท