๋ชฉ๋ก๋ถ๋ฅ ์ ์ฒด๋ณด๊ธฐ (454)
Bibi's DevLog ๐ค๐
subscript(_: default:) (Dictionary) https://developer.apple.com/documentation/swift/dictionary/subscript(_:default:) ๋์ ๋๋ฆฌ์์ ์ฃผ์ด์ง ํค์ ํด๋นํ๋ ๊ฐ์ ๋ฆฌํดํ๊ณ , ๋ง์ฝ ํด๋นํ๋ ํค๊ฐ ์์ผ๋ฉด default๋ก ์ง์ ๋ ๊ฐ์ ๋ฐํํ๋ค. key : ๋์ ๋๋ฆฌ์์ ์ฐพ์ ํค key๊ฐ Hashable ์ ์ค์ํด์ผ ์ฌ์ฉ ๊ฐ๋ฅํจ defaultValue : ๋์ ๋๋ฆฌ์ ํด๋น ํค๊ฐ ์กด์ฌํ์ง ์์ ๋ ์ฌ์ฉํ ๊ธฐ๋ณธ๊ฐ ๋์ ๋๋ฆฌ์ ํน์ ํค๊ฐ ์กด์ฌํ ๋๋ ๊ทธ ๊ฐ์ ๋ฆฌํดํ๊ณ , ์กด์ฌํ์ง ์์ ๋๋ default value๋ฅผ ๋ฆฌํดํ๋ ์๋ธ์คํฌ๋ฆฝํธ. ์๋ ์์๋ HTTP ์๋ต ์ฝ๋๊ฐ ์ธ์๋์ง ์๋ ๊ฒฝ์ฐ ์ฌ์ฉํ ๋ฉ์์ง๋ก ์๋ธ์คํฌ๋ฆฝํธ๋ฅผ ์ฌ์ฉํ๋ค: var..
[Swift] ์ธ์คํด์ค ๋น๊ต ๋ฐฉ๋ฒ - is, ๋ฉํ ํ์ is is : ํ์ ํ์ธ ์ฐ์ฐ์. ์ธ์คํด์ค๊ฐ ์ด๋ค ํด๋์ค์ ์ธ์คํด์ค์ธ์ง (๋๋ ์ด๋ค ํด๋์ค์ ์์ํด๋์ค์ ์ธ์คํด์ค์ธ์ง) ํ์ ์ ํ์ธํด๋ณผ ์ ์๋ค. ํด๋น ํด๋์ค์ ์ธ์คํด์ค๊ฑฐ๋ ๊ทธ ์์ํด๋์ค์ ์ธ์คํด์ค๋ผ๋ฉด true ๋ฐํ ๊ทธ๋ ์ง ์์ผ๋ฉด false ๋ฐํ print(latte is Coffee) // true print(latte is Americano) // false ๋ฉํ ํ์ Meta Type ๋ฉํ ํ์ : ํ์ ์ ํ์ . ํ์ ์์ฒด๋ฅผ ํ๋์ ํ์ ์ผ๋ก ํํ ๊ฐ๋ฅ .Type : ํ์ ๋ค์ ๋ถ์ฌ ๊ทธ ํ์ ์ ๋ฉํ ํ์ ๋ํ๋ .Protocol : ํ๋กํ ์ฝ ๋ค์ ๋ถ์ฌ ๊ทธ ํ๋กํ ์ฝ ํ์ ์ ๋ฉํ ํ์ ์ ๋ํ๋ .self : ํ์ ์ ๊ฐ์ฒ๋ผ ํํ ๊ฐ๋ฅ let intTy..
[Swift] ํ๋กํ ์ฝ Protocol Swift ํ๋ก๊ทธ๋๋ฐ - 377์ชฝ ~ ํ๋กํ ์ฝ : ํน์ ์ญํ (๊ธฐ๋ฅ)์ ํ๊ธฐ ์ํ ๋ฉ์๋, ํ๋กํผํฐ, ๊ธฐํ ์๊ตฌ์ฌํญ์ ์ฒญ์ฌ์ง์ ์ ์ํ ๊ฒ ํ๋กํ ์ฝ์ ๊ธฐ๋ฅ์ ์ ์ํ๊ณ ์ ์ํ ๋ฟ, ์ค์ค๋ก ๊ธฐ๋ฅ์ ๊ตฌํํ๋ ๊ฒ์ด ์๋๋ค. ๊ตฌ์กฐ์ฒด/ํด๋์ค/์ด๊ฑฐํ์ ํน์ ํ๋กํ ์ฝ์ ์ฑํ(adopted)ํด์ ๊ทธ ์ญํ ์ ์ํ ์๊ตฌ์ฌํญ์ ๊ตฌํํ๋ค. ์ด๋ค ํ์ ์ด ์ด๋ค ํ๋กํ ์ฝ์ ์๊ตฌ์ฌํญ์ ๋ฐ๋ฅด๋ฉด, 'ํด๋น ํ๋กํ ์ฝ์ ์ค์ํ๋ค(conform)'๋ผ๊ณ ํํํ๋ค. ์ค์ํํธ์์ ํ๋กํ ์ฝ์ ์์ ํ ํ๋์ ํ์ ์ผ๋ก ์ฌ์ฉ๋๋ค. ํ๋ผ๋ฏธํฐ๋ ๋ฆฌํดํ์ ์ผ๋ก ์ฌ์ฉ ๊ฐ๋ฅ ํ๋กํผํฐ, ๋ณ์, ์์์ ํ์ ์ผ๋ก ์ฌ์ฉ ๊ฐ๋ฅ ๋ฐฐ์ด ๋ฑ ์ปจํ ์ด๋ ์์์ ํ์ ์ผ๋ก ์ฌ์ฉ ๊ฐ๋ฅ ํ๋กํ ์ฝ ๋ง๋ค๊ธฐ : protocol ํค์๋๋ฅผ ์ฌ์ฉํด ์ ์ธ..
[Swift] String.Index (๊ทธ๋ฆฌ๊ณ Substring) - ๋ฌธ์์ด์ ํน์ ๋ฌธ์ ๊ตฌํ๊ธฐ ์ ํ ๊ณต์ ๋ฌธ์ Swift Standard Library > String > String.Index https://developer.apple.com/documentation/swift/string/index/ Swift Standard Library > Substring https://developer.apple.com/documentation/swift/substring ์ค๋ช ๊ณผ ์์ ๋ฅผ ์ฐธ๊ณ ํ ํ๋ฅญํ ๊ธ http://seorenn.blogspot.com/2018/05/swift-string-index.html String.Index ๋ฌธ์์ด์์ ๋ฌธ์๋ ์ฝ๋ ์ ๋์ ์์น. : ์ค์ํํธ์์ ๋ฌธ์์ด์ ์ธ๋ฑ์ค๋ฅผ ํํ..
[Swift] .zip(_:_:) : ๋ ์ํ์ค ํฉ์น๊ธฐ https://developer.apple.com/documentation/swift/zip(_:_:) ๋ ์ํ์ค๋ก๋ถํฐ ๋ง๋ ์ํ์ค ์์ ๋ง๋๋ ๋ฉ์๋ func zip( _ sequence1: Sequence1, _ sequence2: Sequence2 ) -> Zip2Sequence where Sequence1 : Sequence, Sequence2 : Sequence ๋ฆฌํด๊ฐ ํํ ์์ ์ํ์ค๋ฅผ ๋ฆฌํดํ๋ค. ๊ฐ ์์ ์ํ์ค1๊ณผ ์ํ์ค2์ ์์๋ค์ ์์ํ๋ค. ํ๋ผ๋ฏธํฐ ์ํ์ค1, 2 : ๊ฐ๊ฐ zipํ ์ฒซ ๋ฒ์งธ, ๋ ๋ฒ์จฐ ์ํ์ค ๋๋ ์ปฌ๋ ์ ์์๋ฅผ ์ง์ ์ฌ์ฉํ๋ ค๋ฉด element.0, element.1 ์ฒ๋ผ ์ฌ์ฉํ ์ ์์ง๋ง, ํํ๋ก ๊ฐ ์ํ์ค๋ฅผ ์ด๋ฆ๋ถ์ฌ์..
UserDefaults ๊ณต์ ๋ฌธ์ https://developer.apple.com/documentation/foundation/userdefaults/ : ์ฑ ์คํ ๋์ ์ง์์ ์ผ๋ก ํค-๊ฐ ์์ ์ ์ฅํ ์ ์๋ ์ฌ์ฉ์์ ๊ธฐ๋ณธ ๋ฐ์ดํฐ๋ฒ ์ด์ค์ ๋ํ ์ธํฐํ์ด์ค. class UserDefaults : NSObject UserDefaults๋ ๊ธฐ๋ณธ ์์คํ ๊ณผ ์ํธ์์ฉํ๊ธฐ ์ํ ํ๋ก๊ทธ๋จ์ ์ธ ์ธํฐํ์ด์ค๋ฅผ ์ ๊ณตํฉ๋๋ค. ๊ธฐ๋ณธ ์์คํ ์ ์ฑ์ด ์ฌ์ฉ์๊ฐ ์ ํธํ๋ ๋์์ ์ปค์คํฐ๋ง์ด์ฆํ๋๋ก ํด ์ค๋๋ค. ์๋ฅผ ๋ค์ด, ๋น์ ์ ์ฌ์ฉ์๊ฐ ๊ทธ๋ค์ด ์ ํธํ๋ ์ธก์ ๋จ์๋ ๋ฏธ๋์ด ์ฌ์ ์๋๋ฅผ ๊ตฌ์ฒดํํ๋๋ก ํ ์ ์์ต๋๋ค. ์ฑ์ ์ฌ์ฉ์์ ๊ธฐ๋ณธ ๋ฐ์ดํฐ๋ฒ ์ด์ค์ ์๋ ํ๋ผ๋ฏธํฐ์ ์งํฉ์ ๊ฐ๋ค์ ํ ๋นํจ์ผ๋ก์จ ์ด๋ฌํ ์ ํธ๋ฅผ ์ ์ฅํฉ๋๋ค. ์ด ํ๋ผ๋ฏธํฐ๋ค์ ๊ธฐ๋ณธ..
OAuth Github ๋ก๊ทธ์ธ OAuth๋ https://www.youtube.com/watch?v=hm2r6LtUbk8 OAuth์ ์ธ ์ญํ ๋ค ๋ด ์๋น์ค ์ฌ์ฉ์ ์ ๋ช ์๋น์ค (๊ตฌ๊ธ, ๋ค์ด๋ฒ ๋ฑ) OAuth์ ์ธ์ฆ ์ ์ฐจ ์ ๋ช ์๋น์ค๊ฐ Access Token์ ๋ฐ๊ธํ๋ค AccessToken์ด๋? ์ ๋ช ์๋น์ค๊ฐ ๊ฐ์ง ์ฌ์ฉ์์ ๋ณด์ ์ ๊ทผํ๊ธฐ ์ํด, ์ฌ์ฉ์์ ์์ด๋ ๋น๋ฐ๋ฒํธ ๋์ ์ฌ์ฉํ๋ ํ ํฐ ์ ๋ช ์๋น์ค๊ฐ ๊ฐ์ง ์ฌ์ฉ์ ์ ๋ณด๋ค ์ค์์ ๋ด ์๋น์ค๊ฐ ๊ผญ ํ์ํ ๊ธฐ๋ฅ๋ง ๋ถ๋ถ์ ์ผ๋ก ์ ๊ทผ์ ํ์ฉํ๋ค. ๋ด ์๋น์ค๋ OAuth๋ฅผ ํตํด AccessToken์ ๊ฐ์ ธ์จ๋ค ๋ด ์๋น์ค๋ AccessToken์ ํตํด ์ ๋ช ์๋น์ค๊ฐ ๊ฐ์ง ์ฌ์ฉ์ ์ ๋ณด์ ์ ๊ทผํ๊ณ , ๊ฐ์ ธ์ค๊ณ , ์์ ํ๋ค. GitHub OAuth - Authorizing OAu..
https://docs.github.com/en/enterprise-server@2.21/developers/apps/building-oauth-apps/scopes-for-oauth-apps GitHub OAuth - Scopes for OAuth Apps Scope(๋ฒ์)๋ ๋น์ ์ด ์ ํํ ์ด๋ค ์ข ๋ฅ์ ์ ๊ทผ์ ํ์๋ก ํ๋์ง๋ฅผ ๊ตฌ์ฒดํํด์ค๋ค. scope๋ OAuth ํ ํฐ์ ์ ๊ทผ์ ์ ํํ๋ค. ์ฌ์ฉ์๊ฐ ๊ฐ์ง ๊ถํ ์ด์์ ์ด๋ค ์ ๊ทผ๋ ํ์ฉํ์ง ์๋๋ค. ๊นํ OAuth ์ฑ์ ์ค์ ํ ๋, ์์ฒญ๋๋ scope๋ค์ด ์ฌ์ฉ์์๊ฒ ๋ณด์ฌ์ง๋ค. scope ํ์ธํ๊ธฐ ๋ด๊ฐ ์ด๋ค OAuth scope๋ฅผ ๊ฐ์ง๊ณ ์๊ณ , API ๋์์ด ์ด๋ค scope๋ฅผ ์น์ธํ๋์ง ํ์ธํ๊ธฐ ์ํด์๋ ํค๋๋ฅผ ๋ณด๋ฉด ๋๋ค. $ curl -H "Authoriza..