TIL(Today I Learned)

4월 19일(월)

학습내용

  • 제이콥밤 퀴즈
    • HIG에 따르면 Tab bar의 각 탭은 서로 관련이 없는 뷰로 구성해야한다.
    • Stack은 후입선출 구조로 UINavigation Controller의 화면 전환에 사용된다.
    • 퀵 정렬이 항상 가장 빠른 정렬 알고리즘은 아니다.
    • iOS에서 UI가 변경되는 작업은 메인쓰레드에서만 진행되어야하므로 여러 쓰레드로 분산시키면 안된다.
    • 컬렉션뷰는 가로 또는 세로 한쪽 방향으로만 스크롤 할 수 있다. (동시엔 안된다.)
    • Segue를 이용한 화면전환은 스토리보드에서만 거의 사용되며 코드로 구현한 UI의 화면전환은 present 메서드를 이용하여 구현한다.
  • 태태찌로 퀴즈
    • Linux는 OS가 아니라 커널이다.
    • Git에서 작업한 내역을 Local Repository에 추가하는 명령어는 commit 이다.
    • 매개변수로 함수를 전달받거나 함수를 반환하는 함수는 고차함수이다.
    • 노티피케이션 센터를 통해 전달받은 노티피케이션에는 정보를 실어 보낼 수 있는 userInfo 딕셔너리가 포함되어있다.
    • User Notification은 Framework 명이고, UNNotification은 클래스명이다.
    • REST는 URI와 HTTP 프로토콜을 이용해서 자원을 제어한다.
    • ARC를 통한 인스턴스의 생명주기는 컴파일타임에 결정된다.
    • LLDB 명령어 중 po를 통해 출력하는 문자열을 임의로 지정하려면 debugDescription 프로퍼티를 구현하면 된다.
    • 코드를 통해 프로그래머가 정확하게 확인할 수 있는 사항은 엡이 어떤 방법을 통해 실행되었는지(푸쉬, 홈), 앱이 백그라운드로 전환된 시점, 그리고 앱의 첫 화면이 보여지는 시점이고 앱이 종료되는 시점은 항상 정확히 알 수 있는 것은 아니다.
    • iOS14에서 UITableViewCell을 이루는 기본 구성요소가 아닌 것은 textLabel이다.
  • Socket 활동학습
    • HTTP - OSI 7계층 (Application)
    • TCP, UDP - OSI 4계층 (Transport)
    • 네트워크 소켓(network socket)은 컴퓨터 네트워크를 경유하는 프로세스 간 통신의 종착점이다.
    • TCP는 오류제어, 전송처리, 흐름제어를 보장한다.
    • Piggyback은 데이터를 잘 수신했다는 확인 응답을 바로 보내지 않고, 데이터를 보낼때 확인 응답을 같이 보내는 것 (오류제어, 흐름제어 방식)
    • UDP는 손실에 대해서 확인하지 않고 데이터를 계속 보내기 때문에 빠르다.
    • TCP Socket은 Byte-stream service(Stream Sockets), UDP Socket은 Datagram service(Datagram Sockets)이다.

문제점/고민한점

  • WebSocket이란?

해결방법

  • 웹소켓(WebSocket)은 하나의 TCP 접속에 전이중 통신 채널을 제공하는 컴퓨터 통신 프로토콜이다. HTTP와 호환이 가능하다. (HTTP는 반이중방식이다. 전이중은 송수신이 동시에 가능한 상태를 의미하며, 반이중은 송수신이 동시에 불가능하고 한개만 가능하다는 것을 의미한다.)

참고