๋ถ๋ฅ ์ ์ฒด๋ณด๊ธฐ
42
[iOS] unix timestamp swift
2023.04.07
A. ์ค๋ช
iOS์ unixTimeStamp๋ฅผ ์ฌ์ฉํ ์ผ์ด ์์ด์ ์ฐพ์๋ณด๋ ๊ธฐ๋ณธ ์ ๊ณตํ๋ ๊ฒ์ด ์์. Date().timeIntervalSince1970๋ก ์ฌ์ฉํ๋ฉด ๋๊ณ 1970๋
1์ 1์ผ 00์ 00๋ถ 00์ด ๊ธฐ์ค์ผ๋ก ๋ช ์ด๊ฐ ์ง๋ฌ๋์ง ํ์ธํ ์ ์๋ ํ๋กํผํฐ์. ๋ด๊ฐ ํ์ํ๋ ๊ฒ์ ํ์ฌ๊น์ง 1357์ด๊ฐ ์ง๋ฌ๋ค๊ณ ํ์ ๋ 135๊น์ง ํ์ํ์ผ๋ฏ๋ก ์๋์ ๊ฐ์ ์ฒ๋ฆฌ๋ฅผ ์ถ๊ฐ์ ์ผ๋ก ํด์คฌ์. (10์ผ๋ก ๋๋ ํ Int๋ก ํ๋ณํํ์ฌ ๋๋จธ์ง ์๋ผ๋ด๊ธฐ) import UIKit class TimeSynchronizer { init() { } func getTimeInfo() -> String { var unixTS = Date().timeIntervalSince1970 unixTS = trunc(unixTS / 10..
[iOS] ์๋ฒ ํต์ Base Service
2023.04.07
A. ์ค๋ช
api ํต์ ํ์ํ ๋๋ง๋ค ๋ณด์ผ๋ฌ ํ๋ ์ดํธ ์ฝ๋๊ฐ ๋๋ฌด ๋ง์ด ์๊ธฐ๋ ๊ฒ ๊ฐ์ base๋ก ์ฌ์ฉํ ์ฝ๋ ๋ง๋ฆ. ํ๋กํ ์ฝ๋ก ์ ์ํด์ ์ฌ์ฌ์ฉ์ฑ ์ฉ์ดํ๋๋ก ๊ตฌํํจ. ์น ์ฐ๊ฒฐ์๋ Alamofire ํ๋ ์์ํฌ๋ฅผ ์ฌ์ฉํจ. B. ์ฝ๋ import Foundation import Alamofire protocol BaseService { /// api request url var url: String { get set } var header: HTTPHeaders { get set } var param: Encodable? { get set } /// Request์ ๋ค์ด๊ฐ๋ .put, .get ๋ฑ method var method: HTTPMethod { get set } /// Request์ ๋ค์ด๊ฐ๋ P..
[iOS] ์น๋ทฐ ์ฟ ํค ๊ด๋ จ ์ ํธ
2023.04.07
๊ธฐ๋ก์ฉ์ผ๋ก ๋จ๊ฒจ๋๋ ๊ฒ์ผ๋ก, ๋ ๊น๋ํ๊ฒ ๊ตฌํํ ์ ์๋ ๋ฐฉ๋ฒ์ด ์กด์ฌํ๊ฒ ์ง๋ง.. ํ๋ํ๋ ํ๋ผ๋ฏธํฐ๋ก ๋ค ๋๊ธฐ๊ธฐ ์ซ๊ณ ํจ์์ ๊ธธ์ด๋ ๊ธธ์ด์ง๋๊ฒ ์ซ์ด์ ์๋์ ๊ฐ์ด ์ ๋ ๊ตฌํํ์ต๋๋ค. ์๋ ํจ์๋ฅผ ํตํด ๋ง๋ค์ด์ง ์ฟ ํค๋ก ์น๋ทฐ์ ๋ฃ์์ ๋ ์ ์ ์๋ํ์ต๋๋ค. import UIKit class CookieUtil { private let path: String = "/" let cookieDomain = "_" private enum cookieBaseName: String { case appId = "_" // ... } func getAppCookie() -> HTTPCookie? { guard let cookie = HTTPCookie(properties: [ .domain: cookieDomain, .pa..
[iOS] ํค์ฒด์ธ ์ ํธ
2023.04.07
String ํ์
์ ๊ฐ ํค์ฒด์ธ์ ์ ์ฅํ ๋ ์ฌ์ฉํ๋ ค๊ณ ๊ตฌํํด๋์ ํค์ฒด์ธ ์ ํธ ํด๋์ค์
๋๋ค. ์ฑ๊ธํค์ผ๋ก ๊ตฌํ๋์ด ์์ต๋๋ค. store ์ ์ด๋ฏธ ์กด์ฌํ๋ ๊ฐ์ด๋ฉด ์๋์ผ๋ก ์
๋ฐ์ดํธ๊ฐ ๋๋๋ก ๊ตฌํํ์ต๋๋ค. ๋ฐ์ํ๋ ๊ฐ์ข
์ค๋ฅ์ ๋ํ ์ค๋ช
์ ์ฃผ์์ผ๋ก ๋ฌ์์ต๋๋ค. import Foundation import Security enum KeyChainType: String { case tokenKey = "Token_Key" // ... } enum KeyChainError: Error { case invalidBundleID case invalidData case recognizedKeyChainError(OSStatus, CFString?) case unrecognizedKeyChainError case dataC..

[iOS] ํด์ฑ
2023.04.07
์ฉ์ด ์ ๋ฆฌ key : ํด์ฑ๋๊ธฐ ์ ์ ๊ฐ digest : ํด์ฑ๋ ํ์ ๊ฐ rainbow table : ์ฌ๋ฌ ๊ฐ๋ค์ ๋์
ํด๋ณด๋ฉด์ ์ป์ ๋ค์ด์ ์คํธ๋ค์ ๋ชจ์๋์ ํ
์ด๋ธ ํด์ ํจ์ ๋จ๋ฐฉํฅ ํจ์๋ก๋ง ์๋ํจ input ๊ฐ์ด ์์ฃผ ๋ฏธ์ธํ๊ฒ ๋ฌ๋ผ์ ธ๋ output ๊ฐ์ ์ ํ ๋ฌ๋ผ์ง → Avalanche Effect ํด์ ํจ์์ ์๋ ์ค๊ณ ๋ชฉ์ ์ ๋น ๋ฅธ ๊ฒ์์ ์ํจ์ (OS ๋ถ๋ถ ํด์ํ
์ด๋ธ ์ฐธ๊ณ ) input ๊ฐ์ด ๊ฐ์ผ๋ฉด output ๊ฐ์ ํญ์ ๊ฐ์ (์ฆ ํจ์๋ก์ ๊ธฐ๋ฅํจ) ํด์ ํจ์์ ์ํ์ฑ input์ด ๊ฐ์ผ๋ฉด output์ ํญ์ ๊ฐ์ผ๋ฏ๋ก ํด์ฑ๋ ๋ฌธ์์ด์ ์๋ฌธ์ ๋ ์ธ๋ณด์ฐ ํ
์ด๋ธ์์ ์ฐพ์ ์ํ์ฑ์ด ์กด์ฌํจ. brute-force ์๋ ํด์ ํจ์๊ฐ ๋น ๋ฅธ ๊ฒ์์ ์ํด ์ค๊ณ๋์๋ค ๋ณด๋ ์ค์ ๋ฐํ์์์์ ์๋๋ ๋น ๋ฅธ ๊ฑด ๋ง์. ํ์ง๋ง ๊ทธ..
[iOS] Framework, Library RnD
2023.04.07
iOS ํ๋ ์์ํฌ, ๋ผ์ด๋ธ๋ฌ๋ฆฌ ์กฐ์ฌํ ๋ด์ฉ๋ค์
๋๋ค. ์ค์ ๊ฐ๋ฐ ์ ์์ค์ฝ๋์์์ ์ค์ ํด์ค์ผ ํ ๋ถ๋ถ์ด ๋ ์๋๋ฐ ํด๋น ๋ถ๋ถ์ ๊ธฐ๊ณ ๋ง๋ฅ ๊ณ์ ์ค๋ฅ ํ๋์ฉ ๋ณด๋ฉด์ ๋ผ์๋ง์ถ๋ ๋ฐฉ์์ผ๋ก ํด๊ฒฐํ๊ธฐ ๋๋ฌธ์ ๋ฐฉ์ ์ ๋๋ง ์ฐธ๊ณ ํด์ฃผ์ธ์. ์๋ ์์ฑ๋ ์์๋๋ก ๋ณด์๋๊ฒ ๋ ์ดํด๊ฐ ์ ๋์ค ๊ฒ์
๋๋ค. ์ ๋ iOS ์ฒ์ํ๋ ์
์ฅ์์ ์์ฑํ๊ฑฐ๋ผ ํ๋ฆฐ ๋ด์ฉ์ด ์์ ์ ์์ต๋๋ค. ๊ฐ์ ๋น๋ ์ธํ
์ ๋ง๊ฒ ์ค์ ํด์ค์ผ ํ๋ ๋ถ๋ถ์ด ๋ง๋ค๊ณ ํ๋จํด์ ์ค๋ฅ๋ ๋ง์ด ๋์ค๊ฒ๋๋ค... [iOS] framework ๊ธฐ๋ณธ : https://dongdong216.tistory.com/4 [iOS] framework ๊ธฐ๋ณธ 1. CPU Architecture ์์ดํฐ์ ๊ธฐ์ข
์ ๋ฐ๋ผ ๋ค๋ฅธ ์ํคํ
์ฒ์ CPU๋ฅผ ์ฌ์ฉํจ. ๋น๋๋ฅผ ํ๋ฉด Execute file์ด ์..