TIL(Today I Learned)

1월 18일(월)

학습내용

  • Kahoot을 진행했다.
    • ARC는 자동으로 다 해주지만, 어떻게 동작하는지 잘 알아야 한다.
    • 메모리 영역 중 ARC와 관련있는 영역은 Heap 이다. (동적인 메모리의 할당과 해제를 자동으로 해주므로)
    • Int, Double, String, Array 등의 인스턴스는 Heap에도 할당될 수 있다. (그때 그때 다르다.)
    • ARC를 통한 인스턴스의 생명주기는 컴파일 타임에 결정된다. (메모리 할당 및 해제하는 코드가 컴파일할 때 삽입이 되므로)
    • iOS 13에도 UI를 Scene로만 다뤄야하는건 아니다. (기존 방식인 applicationDelegate에서도 가능하다.)
    • iOS의 SceneDelegate는 주로 Scene의 UI 생명주기를 다룬다.
    • 백그라운드 사용 앱은 백그라운드 실행 중 시스템이 앱을 언제 종료할지 알 수 있다.
    • 앱이 어떤 방법(홈에서, 푸쉬에서 등)을 통해 실행됐는지, 앱이 백그라운드포 전환된 시점, 앱의 첫 화면이 보여지는 시점은 프로그래머가 정확하게 확인할 수 있지만 앱이 종료된 시점은 알 수 없다. (applicationWillTerminate가 반드시 실행된다고 보장되지 않으므로)
  • HTTP와 TCP/IP에 대해서 학습하였다.
    • TCP는 패킷 전송을 위한 프로토콜이다.
    • HTTP
      • PUT과 POST는 멱등성이 있냐 없냐의 차이가 있다. PUT은 멱등성이 있고, POST는 멱등성이 없다.
      • HEAD는 지정한 리소스에 대한 응답에서 헤더 부분만 보낸다.
      • HTTP 상태코드
        • 1xx (정보): 요청을 받았으며 프로세스를 계속한다
        • 2xx (성공): 요청을 성공적으로 받았으며 인식했고 수용하였다
        • 3xx (리다이렉션): 요청 완료를 위해 추가 작업 조치가 필요하다
        • 4xx (클라이언트 오류): 요청의 문법이 잘못되었거나 요청을 처리할 수 없다
        • 5xx (서버 오류): 서버가 명백히 유효한 요청에 대해 충족을 실패했다
      • CRUD: Create Read Update Delete
      • HTTP는 모든 정보가 평문으로 전달되지만, HTTPS는 SSL이나 TLS라는 보안 계층을 사용하여 정보를 암호화시켜서 전달한다.
      • TLS가 SSL의 차기 버전이다.
      • HTTPS는 보안이 강화되었지만, 암호화 복호화로 인해 컴퓨팅 자원을 더 소모한다는 단점이 있다.
      • HTTP 1.1 버전은 연결당 하나의 요청만 처리하지만, HTTP 2.0 버전은 TCP 연결 하나로 여러 요청을 다중화 처리한다.

문제점/고민한점

  • TCP와 IP는 어떤 차이가 있을까?

해결방법

  • TCP와 IP는 어떤 차이가 있을까?
    • TCP는 전송 계층의 프로토콜이고, IP는 네트워크 계층의 프로토콜이다.
    • TCP는 데이터 전송에 대한 책임을 갖고 있으며, IP는 데이터를 전송할 주소에 대한 책임을 갖는다.
    • IP는 IP주소로 구분되는 개체들 사이에서 패킷을 전달하고, TCP는 포트로 구분되는 특정 서비스나 애플리케이션에 데이터의 세그먼트를 전달한다.

참고