일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | 5 | 6 | 7 |
8 | 9 | 10 | 11 | 12 | 13 | 14 |
15 | 16 | 17 | 18 | 19 | 20 | 21 |
22 | 23 | 24 | 25 | 26 | 27 | 28 |
29 | 30 | 31 |
- 공기먹는다이버스
- 괌 자유여행
- 크로아티아
- 도심공항
- Device 등록
- 러브자그레브
- SwiftUI #Skeleton #데이터갱신
- 대한항공
- 시밀란
- 리브어보드
- 스페인여행
- 스플리트
- 강릉
- 스쿠버다이빙
- 라이브러리
- cocoapod
- 그라나다
- Swift #Concurrency #쓰레드
- 연금저축펀드
- 지팍스페인
- Concurrency #Swift #Combine
- 푸켓여행
- 러브스플리트
- Cocoapods #PrivateRepo #SpecRepo
- swiftUI
- 아시아나
- 세비야
- Gradle
- xcode
- 스페인광장
- Today
- Total
목록분류 전체보기 (110)
JEP's Diary
iCloud Storage 종류각각 다른 목적을 가진 iCloud Storage 종류는 다음과 같다. Key-value storage Key-value storage는 기본 설정, 설정, 간단한 앱 상태와 같은 개별 값을 위한 것이다. 주식이나 날씨 정보, 위치, 북마크, 최근 문서 목록, 설정 및 기본 설정, 간단한 게임 상태 등 소량의 데이터에 iCloud Key-value storage를 사용한다. Cloud document storage iCloud document storage 는 사용자가 볼 수 있는 파일 기반 콘텐츠, 핵심 데이터 저장소 또는 기타 복잡한 파일 기반 콘텐츠를 위한 것. 워드 프로세싱 문서, 다이어그램, 그림, 복잡한 게임 상태를 추적해야 하는 게임 등 파일 기반 콘텐츠로 작업..
Xcode 에서 테스트폰으로 바로 설치를 위해서 Device 등록을 진행했다. 먼저 Xcode에서 해당 프로젝트를 클릭한 다음 Signing & Capabilities 에서 보니 해당 디바이스가 등록되지 않았다는 메시지가 있었다. Device "000의 iPhone" isn't registered in your developer account. The device must be registered in order to be included in a provisioning profile. Register Device버튼을 클릭해 등록을 시도했는데 등록후에 상태가 이미 있는 디바이스 ID라고 나오는 것이다. 그래서 developer 사이트에 들어가 확인해보니 STATUS가 Processing으로 되어 있는 ..
CocoaPods는 오픈 소스 코드를 프로젝트에 추가하는 데에만 뛰어난 도구가 아닌, 프로젝트 간에 컴포넌트를 공유하는 데에도 훌륭한 도구이다. 이를 위해 Private Spec Repo를 사용할 수 있다. 프로젝트에 Private Pod를 설정하는 몇 가지 단계가 있다. 이를 위해 해당 Pod들을 위한 Private Repository를 생성하고, CocoaPods가 그 Repository를 찾을 수 있도록 알려주고, podspec 파일들을 Repository에 추가해야 합니다. 이 podspec 파일들을 저장하는 Repository가 Spec Repo이다. 이 Spec Repo는 .podspec 파일만을 가지고 있고, 사용 가능한 Pod 목록이 포함된 Repository이다. 모든 라이브러리에는 해..
AES는 Advanced Encryption Standard의 약자로 '고급 암호화 표준' 이라는 의미이다. 미국 표준 기술 연구소에 의해서 연방 정보 처리 표준으로 지정된 암호화 방식이며 NSA에 의해 1급 비밀에 사용할 수 있도록 승인된 암호화 알고리즘이다. 미국 표준 기술 연구소에서 주최한 공모전에서 레인달(Rijndael) 알고리즘이 채택됐고, 그것이 AES 암호화 알고리즘이다. 암호화 키의 길이가 128, 192, 256비트인 세 가지 종류가 표준이고, 각각 AES128, AES192, AES256으로 불린다. 대칭형 블럭 암호화 알고리즘 암호화 키의 길이는 128비트, 192비트, 256비트 세 가지 중 하나가 될 수 있으며, 암호화 키의 길이에 따라 실행하는 라운드의 수가 다른데, 각각 10..
마스터 시드(Seed) HD 지갑은 마스터 시드로부터 개인키를 계층적으로 생성한다. 따라서 마스터 시드만 있으면 모든 하위 키들을 재생성 하여 지갑 전체를 복구 할 수 있다. 시드는 32자리의 16진수로 표기된다. 0C1E24E5917779D297E14D45F14E1A1A 니모닉 코드(Mnemonic) 니모닉 코드는 어떠한 정보를 기억하기 쉬운 단어나 구절로 표현한 것을 말한다. 블록체인에서의 니모닉코드는 지갑을 복구 하기 위한 어떠한 단어들의 조합니다. 위와 같은 마스터 시드와 같은 형태는 기억하기가 쉽지 않기 때문에 니모닉 코드를 만들어 쉽게 기억할 수 있도록 하였고, 이는 BIP39에서 제안되었다. BIP: 39 Layer: Applications Title: Mnemonic code for gen..
오늘 개발하면서 SwiftUI에 적합한 아키텍쳐는 MVVM이 맞나?! 라는 의문이 들었다. 의문을 들게 했던 이슈를 먼저 나열해보자면... 요즘은 앱에 신규 기능을 추가 하기 전에, 퍼포먼스를 올리기 위해 데이터를 구성하는 시점을 변경하고 있던 중에 이슈가 생겼다. 기존방법 기존에는 리스트에 표시할 데이터를 모두 구성한 후 뷰에 그리는 방법이었다. 컬렉션 조회 REST API를 호출한 후 추가적인 정보가 있어서각각의 컬렉션에서 3개의 API를 더 호출하여 최종적인 컬렉션 데이터 리스트를 구성하고 있었다. 기존방법의 이슈 이렇게 했을때 리스트의 갯수가 많아질수록 데이터를 구성하는데 시간이 오래 걸리는 이슈가 생기기 시작했다. 변경해보기 컬렉션 조회 API를 호출하여 컬렉션 데이터 리스트를 먼저 만들고 뷰에..
간헐적인 이슈가 수정 하기 어려운데.. 간헐적으로 리스트의 아이템이 갱신이 되지 않는 이슈를 만났다! 이슈현상 1.A 계정의 컬렉션 데이터 리스트를 LazyVStack을 이용하여 리스트를 보여준다. 2.계정을 B로 변경하여 컬렉션 데이터 리스트를 다시 구성한 후 같은 뷰에 데이터를 갱신한다. 3. 1,2번 과정을 반복하다보면 간헐적으로 A계정의 리스트 세번째 Row에 변경 직전 B계정의 세번째 Row가 보이는 이슈가 발생했다. 또는 B계정의 컬렉션 리스트 세번째 Row에 A 계정의 세번째 Row가 보이기도 했다. 특이하게도 세번째 Row가 이슈였다. 해결해보자 원인을 찾아야 하는데 솔직히 정확한 원인은 못찾았다...ㅜ 느낌적인 느낌은 LazyVStack의 각 Row를 스크롤할때 화면에 표시되는 부분정도의..
이슈 50개의 병렬작업을 하는데 측정한 시간이 꽤나 오래 걸리는 이슈를 만났다. 데이터가 50개가 있고, 이를 각각 API 콜을 해서 데이터를 구성한 다음 하나의 리스트 데이터로 구성해야 한다. 한개의 API 콜을 하는시간이 1초도 되지 않기 때문에, 50 개를 병렬로 콜 해도 1초정도 걸리겠거니를 기대했었는데, 대략 7~8초가 걸리는 것이었다. Concurrency로 병렬작업으로 처리를 했고, 코드에도 이상이 없는 것 같은데 예상보다 오래 걸려서, 어렴풋이 쓰레드는 코어 갯수의 X2를 생성한다라고 알고있던 지식으로, 아 이건 속도를 더 높일 수 없다. 라고 결론을 지었다가.. 진짜 왜 속도가 느린건지에 대해 검토해보려한다. ChatGPT에게 물어보았다. 질문 Concurrency에서의 쓰레드를 최대 몇..
Concurrency는 구조화된 방식으로 비동기 및 병렬 코드 작성을 지원합니다. 때문에 async/await을 이용하여 가독성이 좋은 깔끔한 코드로 비동기 코드를 작성할 수 있다. 기존에는 GCD(Grand Central Dispatch)로 동시성 코드를 작성했다. GCD를 사용하면 async로 작업을 수행하고 나서 탈출클로저를 이용하여 해당 작업의 처리를 해주게 된다. Task 비동기 작업의 단위(unit)입니다. TaskGroup 동적으로 생성된 자식 작업들을 포함하는 그룹입니다. AsyncSequence elements에 대한 비동기적인, 순차적이고 반복적인 접근을 제공하는 타입입니다. AsyncStream 새로운 elements를 생성하기 위해 지속적(continuation)으로 호출하는 클로..
웹사이트 공식 홈페이지 https://docs.walletconnect.com/2.0/ GitHub 저장소 https://github.com/WalletConnect/WalletConnectSwiftV2 https://github.com/WalletConnect/WalletConnectKotlinV2 Example and Resources https://docs.walletconnect.com/2.0/swift/guides/examples-and-resources WalletConnect Cloud https://cloud.walletconnect.com/app https://explorer.walletconnect.com/guidelines WalletConnect WalletConnect는 탈중앙화 ..