-
Notifications
You must be signed in to change notification settings - Fork 4
10월 31일 회의록
MoonGoon edited this page Nov 4, 2024
·
1 revision
- 피그마 UI 구성
- 리드미 작성
- Project backlog 작성
- 발표 준비
- 멘토링
Core Data
- 데이터의 영구 저장을 위해서
Core Data
를 사용합니다. -
Core Data
는 데이터를 객체 모델링할 수 있게 해주는 동시에, 관계형 데이터베이스처럼 데이터 간의 관계를 설정하고 관리할 수 있습니다. -
Core Data
는iCloud
와 연동성이 좋습니다.
Network
- [URL Loding System](https://developer.apple.com/documentation/foundation/url_loading_system)을 활용하여 프로젝트에 적합한 네트워크 도구를 직접 만듭니다.
AI(NAVER CLOVA Studio)
- 회고를 쉽게 하기 위해서 누군가와의 대화의 형식을 채택합니다. 지정된 형식보다는
챗봇AI
를 통해 개인화된 질문을 주고 받을 수 있도록 합니다. - 숏폼의 시대를 반영해, 긴 대화 회고를
요약
해서 빠르게 읽고 찾을 수 있도록 합니다.
UIKit + SwiftUI
-
SwiftUI
는 구조체와 함수형 프로그래밍 방식으로 좋은 성능과 안정성, 그리고 간결성을 가집니다. 하지만 아직까지UIKit
을 완전히 대체하지 못하기에,UIKit
을 기반으로 두고 선택적으로SwiftUI
를 도입하도록 합니다.
Swift Concurrency
- 기존 동시성 코드는 콜백을 활용해 제어 흐름이 여기저기 갈 수 있어 읽기 쉽지 않았으나,
Swift Concurrency
는 구조화된 제어 흐름으로 순서대로 나열되고 중첩될 수 있어 코드를 위에서 아래로 직관적으로 읽을 수 있습니다. - DispatchQueue를 통한 멀티 스레드 프로그래밍은 스레드의 생성을 야기하며, 많은 양의 스레드가 생성되면 과한 문맥 교환을 초래해서 오히려 성능을 떨어뜨릴 수 있습니다. 이에 비해
Swift Concurrency
는 스레드의 수를 코어의 수만큼으로 유지하고 가벼운 continuation 객체를 교환하기에 성능적 이점을 얻으려 합니다.
Combine
- 네트워크 요청, Core Data 변경 사항과 같은 연속적인 이벤트를 구독하고 반응하기 위해 사용합니다.
- 메소드로 메시지를 주고 받으며 변화에 대응하는 방식보다, 관점을 옮겨 데이터의 변화에 대한 흐름을 생성하고 그와 관련된 로직을 잇는 반응형 프로그래밍을 활용하려 합니다. 여러 선택지 중 애플에서 제공하는
Combine
을 도입합니다.
Multipeer Connectivity
- 근처 지인들과 오프라인에서의 회고를 공유하기 위해
Multipeer Connectivity
를 사용합니다.
CloudKit
- 공유하는 데이터가 사진과 같이 큰 데이터가 아니므로
iCloud
에 저장합니다. -
iCloud
를 동기화하여 하나의 계정으로 여러 기기에서 같은 데이터를 사용할 수 있습니다. - 공유 그룹을 만들어 폴더를 공유하기 위해 사용합니다.