TIL(Today I Learned)
4월 29일(목)
학습내용
- CI/CD
- CI(Continuous Integration)
- 테스트가 가능해야한다.
- Build하고 Test 하는 것 까지가 CI이다.
- CD(Continuous Deploy or Delivery)
- CD가 되기 위해선 항상 CI가 선행되어야함.
- 배포과정의 자동화
- CI(Continuous Integration)
- Testflight
- 클로즈/퍼블릭 베타테스트를 위한 환경 제공.
- App Store Connect에서 테스터 초대 가능.
- 최대 1만명, 90일 동안 가능.
- Crashlytics
- 구글의 Firebase의 일부 기능.
- 사용자의 행위 추적.
- 앱 사용시간, 머무르는 화면 시간, 터치 이벤트 등…
- 비정상 종료 로그 자동수집.
- dSYM(Debugging Symbol)을 활용하여 덤프 분석을 통해 크래시 이유 분석 가능.
- 퀴즈
- 준스제이크 퀴즈
- 구조체 내부에 2개의 Reference를 포함하고 있다면, Class 보다 많은 Reference Counting overhead가 발생한다.
- Apple은 iOS 앱에서 사용할 수 있는 두가지 Type Families를 제공한다. (San Francisco, New York)
- Dynamic Dispatch를 사용하는 이유 중 하나는 바로 Polymorphism, 다형성을 활용하기 위함이다.
- 클래스는 기본적으로 메서드들을 Dinamically Dispatch한다. 클래스 앞에 final을 붙여서 메스드들을 Statically Dispatch하게 만들 수 있다.
- final을 상속이 불가능하기 때문에 다른 형태일 수가 없으므로 static dispatch를 하게 된다. 상속이 가능하면 상속한 클래스가 override하여 함수를 구현할 수 있으므로 Dynamic Dispatch를 하게 된다.
- HIG의 Tables를 보면 iOS에서는 3가지 스타일의 테이블을 제공한다. Plain, Grouped, Inset Grouped
- Data(contentsOf: URL)에서 URL이 네트워크와 통신을 필요로 하는 URL이면 사용하지 않는 것이 좋다. (Sync방식이므로 데이터를 받는 동안 작동이 끊길 수 있다.)
- 그린소대 퀴즈
- MVC 단점을 보완하기 위해 나온 아키텍처 패턴은 MVVM이다.
- 타입 캐스팅 및 디이니셜라이저는 클래스의 인스턴스만 가능하다.
- LLDB의 breakpoint 명령어의 별칭인 b 명령어를 만드는 방법은 command alias b breakpoint이다.
- TCP, UDP로 소켓통신이 가능하다.
- macOS용 패키지 관리자로 스프트웨어의 쉬운 설치와 업데이트 및 삭제를 관리해주는 시스템은 Homebrew 이다.
- 지역화를 나타내는 약어 표현은 l10n이다.
- unowned은 참조하는 인스턴스가 메모리에서 해제되어도 참조값을 nil로 변경하지 않는다. weak은 nil로 변경한다.
- 모든 프로세스가 공평하게 실행되는 스케쥴링 방식은 Round Robin이다.
- 코어데이터는 앱에서 모델 계층을 관리하는데 사용하는 데이터베이스는 아니다. 데이터베이스를 다루는 프레임워크이다.
- 타입을 다운캐스팅 해주는 키워드는 as이다.
- Network 계층은 서로 다른 네트워크 간에 통신 경로 결정(라우팅)을 담당한다.
- 객체지향 프로그래밍의 3요소는 상속, 다형성, 캡슐화이다.
- HTTP는 TCP/IP위에서 동작한다.
- UDP는 브로드캐스트를 사용하여 호스트가 속해 있는 네트워크 안에 1:N 통신이 가능하다.
- Apple A14 Bionic 프로세서는 코어가 6개이다. Firestorm 2, Icestrom 4개 이다.
- 웹서비스에서 공격자가 악의적인 스크립트를 삽입하여 해당 스크립트가 회생자 측에서 동작하도록 하여 악의적인 행위를 하도록 공격하는 기법은 XSS이다.
- 준스제이크 퀴즈
문제점/고민한점
- Swift에서 Type Casting이란?
해결방법
- Swift에서 Type Casting은 class의 인스턴스에 대한 형변환 방법이다.(같은 계층에 존재하는 다른 타입으로의 변환) 또한 protocol에 대한 준수 여부를 판정하기 as를 이용한 casting을 사용할 수 있다.
참고