본문 바로가기

분류 전체보기

(53)
Opaque And Boxe Type (2) Boxed Protocol Types there exists a type T such that T conforms to the protocol → Boxed Protocol Types은 **existential Type(존재 타입)**이라고도 불리며, 프로토콜 이름 앞에 any를 붙임 ✏️ 예시 protocol Shape { func draw() -> String } struct VerticalShapes: Shape { // Boxed Protocol Type인 `Shape` 요소의 배열 타입 var shapes: [any Shape] func draw() -> String { return shapes.map { $0.draw() }.joined(separator: "\\n\\n") } } let la..
Opaque And Boxe Type (1) Opaque & Boxed Type의 역할 값의 타입에 대한 자세한 정보를 숨김 → 반환값의 기본 타입이 비공개로 유지될 수 있기 때문에 모듈과 이를 호출하는 코드 사이에 타입 정보를 숨길 수 있음 값의 타입을 숨길 수 있는 방법 Opaque Type - 불투명한 타입 → 타입 식별을 유지하기 때문에 컴파일러는 해당 타입의 정보에 접근할 수 있지만, 모듈의 클라이언트(이를 사용하는 곳)에서는 접근할 수 없음 → 반환하는 함수는 반환값의 타입을 숨기는 대신, 이를 지원하는 Protocol에서 반환값을 설명함 Boxed Protocol Type - 박스형 타입 → 타입 식별을 유지하지 않기 때문에, 값의 타입을 런타임까진 알 수 없으며 다른 값이 저장됨에 따라 변경될 수 있음 → 프로토콜을 준수하는 타입의 ..
iOS FileSystem 실습 TRANSLATE with x English Arabic Hebrew Polish Bulgarian Hindi Portuguese Catalan Hmong Daw Romanian Chinese Simplified Hungarian Russian Chinese Traditional Indonesian Slovak Czech Italian Slovenian Danish Japanese Spanish Dutch Klingon Swedish English Korean Thai Estonian Latvian Turkish Finnish Lithuanian Ukrainian French Malay Urdu German Maltese Vietnamese Greek Norwegian Welsh Haitian Creol..
APFS-iOS File System APFS-iOS File System 파일 시스템은 데이터 파일, 운영 체제와 연결된 파일의 영구 스토리지를 처리 → 자료를 쉽게 발견 및 접글 할 수 있도록 보관하고 조직하는 것 또한 가르키기 때문에 중의적 표현이다 파일 시스템은 디렉토리를 사용하여 계층적 조직을 만듦 → 파일 시스템의 구성과 코드 적용되는 규칙을 이해해보자 FileManager 파일 시스템 컨텐츠에 대한 인터페이스 파일들을 관리하기 위한 객체 iOS SandBox 구조 iOS File System은 SandBox 구조 → 아이들이 모래사장 안에서만 놀고, SandBox를 나올 땐 흙을 털고 나오게 하는 것에 비유 → 내부와 외부를 적절하게 분리시킨 구조 → 앱마다 별도의 파일을 생성하여 공유되지 않도록 막으며, 외부로부터의 접근을 막..
UICollectionView UICollectionView 구성 및 커스텀이 가능한 레이아웃의 집합된 뷰들을 보여줌 Cell : 각 컨텐츠의 각 부분에 대한 시각적 요소(item) Layout : 컨텐츠의 시각적 배열을 정의 Data Source 객체 : 데이터를 제공 Delegate 객체 : 컨텐츠와 사용자 간의 선택, 강조 표시와 같은 상호 작용을 관리 CollectionViewController 정렬된 데이터 아이템들을 관리하고, Custom 가능한 레이아웃 사용하여 표시하는 객체 CollectionView는 추가하면 앱의 주요 작업은 CollectionView와 관련 데이터를 관리하는 것 DataSource에서 객체 데이터를 가져온다 UICollectionViewDiffableDataSource를 사용가능하게 됨 UIColl..
MarkDown 접기 계속 찾아보는 나를 위해 복사용 markdown! 접기 내용 summary 아래 한줄 비워야 됨 접기 ```swift ```
KeyChain App에서 정보를 저장하는 방식 UserDefaults NSCache CoreData Server-side KeyChain FileManager KeyChain Apple에서 제공하는 API Collection 중 하나 사용자 대신 Chunk Data를 안전하게 저장해주는 것 → Chunk Data: 큰 데이터를 작은 조각으로 나눈 것 사용자의 온라인 계정의 고유 암호를 저장할 때, 간단한 암호를 재활용하는 경우가 있는데, 이는 보안상 안전하지 않은 방법 KeyChain Service API는 암호화된 데이터 베이스에 사용자의 데이터를 저장하는 메커니즘을 제공하여 이 문제를 해결해줌 → 암호를 안전하게 저장해준다면 사용자는 더이상 단순한 암호를 재활용하는 것이 아닌, 복잡한 암호를 선택하는 것이 가능해지..
Swift Performance (2) Reference Counting Heap에 저장된 메모리는 Reference count를 계산하여 0이 되었을 때, 메모리 해제를 안전하게 할 수 있음 이 작업은 빈번하게 일어나며, 단순 count를 계산하는 것에서 끝나지 않음 Reference Count의 증감을 계산할 때 Heap에 다중 스레드 문제가 생길 수 있기 때문에, 단일 스레드만 Count를 계산할 수 있도록 해야함 → Reference Count 계산은 빈번하게 일어나기 때문에 스레드 접근을 제한하는 비용은 유의미함 → Reference Count를 atomic하게 함으로 안전하게 관리 nonatomtic이 기본으로 바뀜 atomic - 다른 프로세스나 쓰레드에 의해 interrupt 되지 않고 수행이 완료될 때까지 무결성을 유지 - 안..

728x90