본문 바로가기

분류 전체보기

(53)
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 소프트웨어의 가치 가독성, 커뮤니케이션 개발자는 코드를 통해 의사소통을 함. 읽고 이해할 수 없는 코드는 가치가 없음 단순성 코드는 단순해야 함. → 커뮤니케이션에 도움이 되고, 버그 방지, 미래의 확장 용이 유연성 기존의 코드를 수정하는 데 최대한 적은 시간을 해야 함. → 처음부터 유연성있는 코드를 작성하긴 어렵기 때문에, 이를 위해 많은 경험이 바탕이 되어야 함 어떻게? 처음엔 단순하게 → 기획 또는 정책의 변경이 발생하면 수정 고민해야할 부분 : 이 기획/정책의 변경의 원인은 무엇일지, 이러한 변경이 계속 발생 가능한 일 일지 고려해보기 확장성을 고려한 리팩토링을 진행 왜 가독성, 단순성, 유연성이 중요한 가치인 이유는 무엇일까? 가치는 어떤 기준으로 매기는 걸까? 비용과 이익을 기준으로! 비용이..
URL Session URLSession 네트워크 데이터 전송 작업을 조정하는 객체 HTTP 프로토콜을 사용하여 앱 - 서버간 데이터를 통신을 위해 애플이 제공하는 API 앱은 하나 이상의 URLSession 인스턴스를 생성하여 각자 데이터 전송 작업 그룹을 담당 HTTP 포함한 프로토콜 몇가지 지원 인증, 쿠키 관리, 캐시 관리 등을 지원 request, response 구조를 갖음 Configuration 결정 → Session 생성 → Request용 URL 설정 → Task 결정 및 작성 URLSessionConfiguration shared session : 기본 요청에 대한 공통 session 구성 객체 customizable session과 달리 사용자 정의 불가능 간단하게 사용 가능하지만 delegate, co..
estimatedItemSize / itemSize 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..
URL Loading System URL Loading System 표준 Internet 프로토콜(ex HTTP)을 사용하여 URL과 상호 작용하고 서버와 통신 URL Loading System은 비동기이기 때문에, 앱이 응답을 하면서 데이터나 오류를 별도 처리 가능 URL Session 인스턴스로 하나 이상의 URLSession Task 인스턴스를 생성 → 이것으로 데이터를 앱에 반영, 파일을 다운로드, 데이터와 파일을 원격 위치에 업로드를 함 private browsing의 경우 Ephemeral Configuration을 사용해야함 각 Session은 주기적 업데이트를 위해 Delegate와 연결되어있음 → Custom Delegate를 사용하면 사용자가 지정한 Completion handler를 호출 X → 만약 Default D..
Delegate / Protocol Delegate Delegate 패턴: 프로그램의 한 개체가 다른 개체를 대신하거나 협력하여 작동할 수 있도록 하는 패턴 위임하는 개체는 대리자에게 참조를 유지하고 적절한 시간에 메세지를 보냄 장점 개체간 이벤트를 전달할 수 있음 결합도를 낮출 수 있음 재사용성을 높일 수 있음 단점 코드양이 많아짐 디버깅이 어려움 Cocoa Framework 속 Delegate 일반적으로 Delegate 개체는 Framework 개체, 대리자는 사용자 지정 컨드롤러 개체 → 이때 Delegate 개체는 대리자에 대한 약한 참조를 유지 Delegate를 사용하여 앱의 이벤트를 알려주는 Cocoa 개체와 상호 작용할 수 있음 Cocoa API는 Delegate 메서드를 포함하는 프로토콜을 제공하는 경우가 많음→ 개체의 De..
UIApplicationDelegate / UISceneDelegate UIApplicationDelegate 앱의 공유 동작을 관리하는 방법 앱의 루트 객체이며 UIApplivation과 함께 시스템 상호 작용을 관리 앱 시작 주기 초기에 생성 앱의 중앙데이터 구조 초기화 - 데이터 연결 앱의 씬 구성 앱 외부의 알림에 응답 - 메모리 부족, 다운로드 완료 등 앱 씬, 뷰, 뷰컨트롤러에 국한되지 않고 앱 내부 전체의 이벤트에 응답 Apple 푸시 알림서비스와 같은 것을 등록 lunch Story board - Specifying your app’s launch screen Make your iOS app launch experience faster and more responsive by customizing a launch screen. iOS12 이전은 백,포그라운드 ..

728x90