ios (44) 썸네일형 리스트형 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를 나올 땐 흙을 털고 나오게 하는 것에 비유 → 내부와 외부를 적절하게 분리시킨 구조 → 앱마다 별도의 파일을 생성하여 공유되지 않도록 막으며, 외부로부터의 접근을 막.. MarkDown 접기 계속 찾아보는 나를 위해 복사용 markdown! 접기 내용 summary 아래 한줄 비워야 됨 접기 ```swift ``` Swift Performance (2) Reference Counting Heap에 저장된 메모리는 Reference count를 계산하여 0이 되었을 때, 메모리 해제를 안전하게 할 수 있음 이 작업은 빈번하게 일어나며, 단순 count를 계산하는 것에서 끝나지 않음 Reference Count의 증감을 계산할 때 Heap에 다중 스레드 문제가 생길 수 있기 때문에, 단일 스레드만 Count를 계산할 수 있도록 해야함 → Reference Count 계산은 빈번하게 일어나기 때문에 스레드 접근을 제한하는 비용은 유의미함 → Reference Count를 atomic하게 함으로 안전하게 관리 nonatomtic이 기본으로 바뀜 atomic - 다른 프로세스나 쓰레드에 의해 interrupt 되지 않고 수행이 완료될 때까지 무결성을 유지 - 안.. Swift Performance (1) Swift Performance Performance: 앱의 성능.성능의 예시 → 성능을 최대한으로 이끌어 내어 좋은 앱을 만들기 위해 노력해야함 자료구조에서 시간복잡도(Big O). ex) O(n) → y = x 시간복잡도를 비교할 때 O(n^2+2)의 +2는 결과에 영향이 적다고 판단하여 O(n^2)과 동일하게 취급 마찬가지로 O(2n) = O(n) 다형성 함수의 기능적 다형성과 상속에 의해 만들어진 계층 관계를 활용하는 기술 비슷하지만 살짝 다른 타입들을 효율적으로 표현하기 위한 개념 장점 : 재사용성, 확장성, ISP, 코드 가독성 Perfomance에 영향을 주는 3가지 → 오른쪽으로 갈 수록 성능 저하, 왼쪽으로 갈 수록 성능 향상 → 참조타입을 활용하여 추상화를 진행하면 오른쪽으로 편향될 수.. Ascii Number / String 계속 찾아봐서 정리하는 Ascii - String😇 미래의 나야 봐라👀 Ascii Number > String, Character 대문자 A는 UInt8 기준 UnicodeScalar 65 소문자 a는 UInt8 기준 UnicodeScalar 97 let A = String(UnicodeScalar(65)) // 65는 UInt8 타입 let a = String(UnicodeScalar(UInt8(97))) let A = Character(UnicodeScalar(65)) // 65는 UInt8 타입 let a = Character(UnicodeScalar(UInt8(97))) String, Character > Ascii Number 대문자 A는 UInt8 기준 UnicodeScalar 65 소문자 a.. SOLID 소프트웨어의 가치 가독성, 커뮤니케이션 개발자는 코드를 통해 의사소통을 함. 읽고 이해할 수 없는 코드는 가치가 없음 단순성 코드는 단순해야 함. → 커뮤니케이션에 도움이 되고, 버그 방지, 미래의 확장 용이 유연성 기존의 코드를 수정하는 데 최대한 적은 시간을 해야 함. → 처음부터 유연성있는 코드를 작성하긴 어렵기 때문에, 이를 위해 많은 경험이 바탕이 되어야 함 어떻게? 처음엔 단순하게 → 기획 또는 정책의 변경이 발생하면 수정 고민해야할 부분 : 이 기획/정책의 변경의 원인은 무엇일지, 이러한 변경이 계속 발생 가능한 일 일지 고려해보기 확장성을 고려한 리팩토링을 진행 왜 가독성, 단순성, 유연성이 중요한 가치인 이유는 무엇일까? 가치는 어떤 기준으로 매기는 걸까? 비용과 이익을 기준으로! 비용이.. 이전 1 2 3 4 5 6 다음