์ ์ฒด ๊ธ
[iOS] App Project ์์ฑ | Xcode Project / Project / Target
[PROJECT] : ๋ชจ๋ ํ์ผ, ๋ฆฌ์์ค, ์ํํธ์จ์ด ๋น๋์ ํ์ํ ๋ชจ๋ ์ ๋ณด์ ์ ์ฅ์ ํ๋ก์ ํธ์๋ ์ฑ์ ๊ตฌ์ถํ๋ ๋ฐ ์ฌ์ฉ๋๋ ๋ชจ๋ ์์๊ฐ ํฌํจ๋์ด ์์ผ๋ฉฐ, ํด๋น ์์ ๊ฐ์ ๊ด๊ณ(relationships)๋ฅผ ์ ์งํ๋ค. ํ๋ก์ ํธ๋ product๋ฅผ buildํ๋ ๋ฐฉ๋ฒ์ ๋ช ์ํ๋ target์ ํ๋ ์ด์ ํฌํจํ๋ฉฐ ๋ชจ๋ target์ ๋ํ ๊ธฐ๋ณธ build setting์ ์ ์ํ๋ค. Info Deployment Target: ์ง์ํ๋ ์ต์ OS ๋ฒ์ Configurations: Debug / Release build setting (๋ณดํต ์ฝ๋๋ฅผ ์คํํ ๋ - Debug, Archiveํ ๋ - Release)⇒ ๋ณด๋ค ๋ ๋ค์ํ ํ๊ฒฝ์์ ํ ์คํธ๋ฅผ ํ๊ธฐ ์ํด configuration์ ์ถ๊ฐํ ์ ์์ ex. ๊ฐ๋ฐ ๋ฒ..
[iOS] info.plist | Xcode 12
Info.plist = Information Property List Files Info.plist๋ Xcode ํ๋ก์ ํธ๋ฅผ ์์ฑํ๋ฉด ์๋์ผ๋ก ์์ฑ๋๋ฉฐ ์คํ ํจํค์ง์ ๊ดํ ํ์ ์ค์ ์ ๋ณด๊ฐ ํฌํจ๋ XML์ ์ฌ์ฉํ์ฌ ๊ตฌ์กฐํ๋ ํ ์คํธ ํ์ผ์ด๋ค. iOS ์ดํ๋ฆฌ์ผ์ด์ ์ ๊ธฐ๋ณธ์ ๋ณด๋ฅผ ๋ด์ ๋์ ์ ์๋ ์ค์ ํ์ผ์ด๋ผ๊ณ ํ ์ ์๋ค. XML์ Key, Value๋ก ๊ตฌ์ฑ๋ Dictionary ํํ์ด๋ค. ์์คํ ์ ์ด ํค์ ๊ฐ์ ์ด์ฉํ์ฌ ์ฑ๊ณผ ์ฑ์ ์ค์ ์ ๊ฐ์ ธ์จ๋ค. ๐ก ํน์ ํค or ๊ฐ์ ํธ์งํ๋ ค๋ฉด ๊ฐ์ ๋๋ธํด๋ฆญํ์ฌ ์ ํํ ๋ค์ ์ ๊ฐ์ ์ ๋ ฅํ๋ค. ๐ก ์๋ก์ด ํค๋ฅผ ์ถ๊ฐํ๊ณ ์ถ๋ค๋ฉด (+) ๋ฒํผ์ ๋๋ฅด๊ฑฐ๋ ์์์ ํค๋ฅผ ํด๋ฆญํ๊ณ ์ํฐ๋ฅผ ์น๋ฉด ํด๋น ํค ์๋์ ์๋ก์ด ํค๊ฐ ๋ํ๋๋ค. [ Information Property List ..
[iOS] Completion Handler์ ์ด์ฉํ Loading Progress ๊ตฌํ
GitHub - krimpedance/KRProgressHUD: A beautiful and easy-to-use progress HUD for your iOS. A beautiful and easy-to-use progress HUD for your iOS. - GitHub - krimpedance/KRProgressHUD: A beautiful and easy-to-use progress HUD for your iOS. github.com KRProgressHUD๋ฅผ ์ด์ฉํ์ฌ Loading Progress๋ฅผ ๊ตฌํํด๋ณด์. ์ด์ pod init - pod '์ฌ์ฉํ ๋ผ์ด๋ธ๋ฌ๋ฆฌ' - pod install์ ๋ฃจํด์ ์๋ฒฝ ์ ์ ^-^v Completion handler๋ ์ด๋ ํ ์ผ์ด ๋๋ฌ์ ๋ ์งํํ ์ ๋ฌด๋ฅผ ๋ด๋นํ..
[Algorithm] DFS & BFS | ๊ทธ๋ํ ํ์
โปํ์: ๋ง์ ๋ฐ์ดํฐ์์ ์ํ๋ ๋ฐ์ดํฐ๋ฅผ ์ฐพ๋ ๊ณผ์ ๊ทธ๋ํ ํ์์ ์ํ ์๋ฃ๊ตฌ์กฐ (1) ์คํ (2) ํ (3) ์ฌ๊ทํจ์ (4) ๊ทธ๋ํ DFS | ๊น์ด ์ฐ์ ํ์ : ๊น์ ๋ถ๋ถ์ ์ฐ์ ์ ์ผ๋ก ํ์ ๐ ํน์ ๊ฒฝ๋ก๋ก ํ์ํ๋ค๊ฐ ํน์ ์ํฉ์์ ์ต๋ํ ๊น์์ด ๋ค์ด๊ฐ์ ๋ ธ๋ ๋ฐฉ๋ฌธ ํ ๋ค์ ๋์๊ฐ ๋ค๋ฅธ ๋ ธ๋ ๋ฐฉ๋ฌธ (1) ํ์ ์์ ๋ ธ๋๋ฅผ ์คํ์ ์ฝ์ ํ๊ณ ๋ฐฉ๋ฌธ์ฒ๋ฆฌ โป ๋ฐฉ๋ฌธ์ฒ๋ฆฌ: ์คํ์ ํ๋ฒ ์ฝ์ ๋์ด ์ฒ๋ฆฌ๋ ๋ ธ๋๊ฐ ๋ค์ ์ฝ์ ๋์ง ์๊ฒ check (2) ์คํ์ ์ต์๋จ ๋ ธ๋์ ๋ฐฉ๋ฌธํ์ง ์์ ๋ ธ๋๊ฐ ์๋ค๋ฉด ๊ทธ ์ธ์ ๋ ธ๋๋ฅผ ์คํ์ pushํ๊ณ ๋ค์ ๋์๊ฐ ๋ค๋ฅธ ๋ ธ๋๋ฅผ ๋ฐฉ๋ฌธํ๋ค. (3) (2) ๊ณผ์ ์ ๋ฐ๋ณต ์ํํ๋ค. ๊ฒฐ๊ณผ์ ์ผ๋ก ๋ ธ๋์ ํ์ ์์๋ ์คํ์ ๋ค์ด๊ฐ ์์์ ๊ฐ๋ค. 1 → 2 → 5 →6 → 3 → 7 → 4 → 8 ์ฒซ ..
[Swift] Guard๋ฌธ | guard let
Guard๋ฌธ์ ๋ฐ๋์ ์์ด์ผ ํ ์กฐ๊ฑด์ ๊ฒ์ฌํ์ฌ ๊ทธ ๋ค์์ ์ค๋ ์ฝ๋๋ค์ ์คํํ ์ง ๋ง์ง ๊ฒฐ์ ํ๋ค. Guard๋ฅผ ์ด์ฉํ๋ ์ด์ ๋ฅผ ์ ๋ฆฌํ์๋ฉด ์๋์ ๊ฐ๋ค. 1. control flow์ indentation์ ๋จ์ํ๊ฒ ํ๊ธฐ์ํด → ์ฝ๋๊ฐ ๊น๋ํด์ง๊ณ ๊ทธ๋ก ์ธํด ์๋ฌ๋ฅผ ๋ฐฉ์งํ ์ ์๋ค. 2. ๋ถ์ ์ ํ ํ๋ผ๋ฏธํฐ๋ฅผ ๋น ๋ฅด๊ฒ ์์ ๋ฒ๋ฆฌ๊ธฐ ์ํด if๋ฌธ vs guard๋ฌธ if๋ฌธ ์ฌ์ฉ ver. func singHappyBirthday(){ if(birthdayIsToday){ if(invitedGuests > 0){ if (cakeCandleLit){ print("Happy Birthday to you!") }else{ print("์ผ์ต ์ด๋ถ ๋ถ ์์ผ์ง") } }else{ print("์ด๋ ์๋ฌด๋ ์ํจ") } }else{ p..
[Algorithm] ์๋ผํ ์คํ ๋ค์ค์ ์ฒด | ์์ ์ฐพ๊ธฐ
์์๋ฅผ ์ฐพ๋ ๋ฐฉ๋ฒ ์ค ํ๋์ธ ์๋ผํ ์คํ ๋ค์ค์ ์ฒด์ ๋ํด ์์๋ณด์ ์๋ฆฌ๋ ๋ค์๊ณผ ๊ฐ๋ค. ๐ก 0๋ถํฐ ๊ตฌํ๊ณ ์ํ๋ ์(n)๊น์ง True๋ก ์ฑ์ด ๋ฆฌ์คํธ๋ฅผ ์์ฑํ๋ค. ๐ก 2๋ฅผ ์ ์ธํ 2์ ๋ฐฐ์๋ฅผ False๋ก ๋ฐ๊พผ๋ค. ๐ก 3์ ์ ์ธํ 3์ ๋ฐฐ์๋ฅผ False๋ก ๋ฐ๊พผ๋ค. ๐ก 5๋ฅผ ์ ์ธํ 5์ ๋ฐฐ์๋ฅผ False๋ก ๋ฐ๊พผ๋ค. . . . ๐กn์ ์ต๋ ์ฝ์๋ sqrt(n) ์ดํ์ด๋ฏ๋ก sqrt(n)์ ๋ฐฐ์๋ฅผ ๋ชจ๋ False๋ก ๋ฐ๊พผ๋ค. ๐ก2~n๊น์ง์ ์ซ์ ์ค True์ธ ์ซ์๋ค์ด ์์๊ฐ ๋๋ค. ์ด๋ฅผ ์ฝ๋๋ก ๊ตฌํํ๋ฉด ๋ค์๊ณผ ๊ฐ๋ค. def isPrime(n): sieve = [True] * n # n์ ์ต๋ ์ฝ์๋ sqrt(n) ์ดํ m = int(n ** 0.5) for i in range(2, m+1): if sieve[i] == ..
[Algorithm] ์ด์ง ํ์ | Binary Search
1. ์์ฐจ ํ์ : ๊ฐ์ฅ ๊ธฐ๋ณธ์ ์ธ ํ์ ๋ฐฉ๋ฒ - ๋ฆฌ์คํธ ์์ ์๋ ํน์ ๋ฐ์ดํฐ๋ฅผ ์ฐพ๊ธฐ ์ํด ์์์๋ถํฐ ํ๋์ฉ ํ์ธ - ์ ๋ ฌ๋์ง ์์ ๋ฆฌ์คํธ์์ ๋ฐ์ดํฐ๋ฅผ ์ฐพ์ ๋ ์ฌ์ฉ - ํ์ด์ฌ์ count() ๋ฉ์๋ ๋ด๋ถ์์ ์์ฐจ ํ์์ด ์ฌ์ฉ๋๋ค. ๐ ์๊ฐ ๋ณต์ก๋: O(n) # target = ์ฐพ๊ณ ์ํ๋ ์์ def search(n, target, array): for i in range(n): # ํ์ฌ์ ์์๊ฐ target๊ณผ ๋์ผํ๋ฉด if array[i] == target: return i # ํ์ฌ์ ์์น ์ธ๋ฑ์ค ๋ฐํ 2. ์ด์ง ํ์(์ด๋ถ ํ์) : ๋ฒ์๋ฅผ ์ ๋ฐ์ฉ ๋๋๋ฉฐ ํ์ํ๋ ๋ฐฉ๋ฒ - ๋ฐฐ์ด ๋ด๋ถ ๋ฐ์ดํฐ๊ฐ ์ ๋ ฌ๋์ด ์์ด์ผ ์ฌ์ฉ์ด ๊ฐ๋ฅ - ๋ณ์ 3๊ฐ ํ์: ์์์ , ๋์ , ์ค๊ฐ์ - ์ค๊ฐ์ ์ด ์ค์ ์ผ ๋๋ ์์์ ์ดํ..
[iOS] WebKit View | ์ฑ์์ Web ํ์ด์ง ์ด๊ธฐ
์ด๊ณ ์ถ์ ์นํ์ด์ง์ URL๋ง ์๊ณ ์๋ค๋ฉด ์ฑ์์ ๋ฐ๋ก ํด๋น ์นํ์ด์ง๋ฅผ ์ด ์ ์๋ค! ๋จผ์ , storyboard์ WebKit View๋ฅผ ์ถ๊ฐํ๋ค. Web View๋ deprecated ๋์๋ค๊ณ ํ๋ค. (old version) Webkit์ ์ฌ์ฉํ๊ธฐ ์ํด ํด๋น ์คํ ๋ฆฌ๋ณด๋์ ์ฐ๊ฒฐ๋๋ ๋ทฐ ์ปจํธ๋กค๋ฌ์ WebKit ํ๋ ์์ํฌ๋ฅผ import ํด์ค๋ค. import WebKit ๋ค์ด๋ฒ๋ฅผ ์ด๊ธฐ ์ํด ๋ค์ด๋ฒ์ ์ฃผ์๋ฅผ url์ ๋ฃ์ด์ค๋ค. import UIKit import WebKit class ViewController: UIViewController { @IBOutlet weak var webView: WKWebView! override func viewDidLoad() { super.viewDidLoad() let ..