2020-02-16 TIL

할 일 목록

  • 그림으로 배우는 HTTP network 3단원 까지 읽고 시험문제 만들고 풀어보기
  • 어떻게 공부할 것인가 3장까지 읽기

완료하지 못한 목록

완료 목록

  • 그림으로 배우는 HTTP network 3단원 까지 읽고 시험문제 만들고 풀어보기
  • 어떻게 공부할 것인가 3장까지 읽기

5Fs

1. Fact

1. 네트워크 문제 만들기

  1. WWW를 구성하는 기술로 제안됬으며 동시에 현재의 웹을 지탱하는 핵심 3개의 요소와 각각에 대해 설명하시오 (p17)
  2. TCP는 계층화를 이루고 있는데 계층화로 인해 얻는 장점에 대해 설명하시오(p21)
  3. TCP가 신뢰성을 제공하기 위해 사용하는 2가지 방법과 각각에 대해서 설명하시오(p27)
  4. 클라이언트가 서버로 요청을 보내 도착하는 과정을 용어들을 이용하여 (DNS, 캡슐화, TCP, ARP, IP주소 MAC주소) 설명하시오(p30)
  5. Resource와 URI에 대해 각각 설명하시오(p32)
  6. HTTP 프로토콜에서 지속 연결이 무엇인지, 나오게된 배경에 대해 설명하고 파이프라인화에 대해 설명하시오(p55)
  7. 쿠키가 무엇인지 설명하고 나오게된 배경에 대해 설명하시오(p59)
  8. HTTP 메시지가 어떻게 구성되어져 있는지 설명하시오(p62)
  9. 메시지 헤더에 포함되 있는 Request Line과 status line에 대해 설명하시오(p63)
  10. contents negotiation가 무엇인지 무엇을 협상하는지 설명하고 , contents negotiation의 세가지 방법과 각각을 설명하시오(p73)
  11. TCP/IP에서 캡슐화에 대해 설명하시오?(p24)

2. 네트워크 문제 풀기

  1. WWW를 구성하는 기술로 제안된 또 현재 웹을 지탱하는 핵심 3개의 요소와 각각에 대해 설명하시오 (p17)

    • HTML : 웹을 표시하는 마크업 언어이다.(Hyper Text Mark-Up Language)
    • HTTP : 웹에서 통신하기 위해 필요한 통신 규약이다. (Hyper Text Transfer Protocol)
    • URI : 웹상에 존재하는 정보를 통합적으로 표현하는 식별자(Uniform Resource Identifier)
  2. TCP는 계층화를 이루고 있는데 계층화로 인해 얻는 장점에 대해 설명하시오(p21)

    • 각 계층은 다른 계층이 변해도 영향을 주지 않는다.
    • 각 계층의 접촉면에 인터페이스가 존재해서 한 계층을 변경하더라도 전체 변경이 일어나지 않는다.
  3. TCP가 신뢰성을 제공하기 위해 사용하는 2가지 방법과 각각에 대해서 설명하시오(p27)

    • byte stream : 크기가 큰 데이터를 여러 바이트로 쪼갠 패킷 단위로 전송하는 방법
    • connection : 통신을 하기 전에 서로가 메시지를 주고 받은 후에 가상의 통신회로를 구축하는것.
  4. 클라이언트가 서버로 요청을 보내 도착하는 과정을 용어들을 이용하여 (DNS, 캡슐화, TCP, ARP, IP주소 MAC주소) 설명하시오(p30)

    • 요청할 메시지를 만듬
    • 요청할 도메인 주소의 IP를 얻기 위해 DNS 로 요청
    • TCP 통신을 하기 위해 3 way handshake를 이용하여 커넥션을 확립하고 메시지를 바이트스트림으로 여러 패킷으로 쪼갠다.
    • 쪼개는 과정에 TCP/IP 의 각 계층에서 필요로 하는 정보를 헤더(IP주소 는 3계층, MAC주소는 2계층)로 붙혀 전송한다.
    • 만약 수신자 IP가 현재 네트워크라면 ARP 요청으로 mac주소를 알아내어 바로 전송한다.
    • 아니라면 ARP 요청은 default gateway의 MAC주소를 요청하고, 각 라우터는 자신이 최적화된 라우팅 테이블에서 longest match 방법을 이용하여 ip주소를 찾아 ARP를 요청하는 반복을 하여 목적지 까지 이동한다.
  5. Resource와 URI에 대해 각각 설명하시오(p32)

    • Resource는 웹상에 존재하는 데이터를 나타냄
    • URI는 스키마를 나타내는 리소스를 식별하기 위한 식별자
  6. HTTP 프로토콜에서 지속 연결이 무엇인지, 나오게된 배경에 대해 설명하고 파이프라인화에 대해 설명하시오(p55)

    • 이전의 HTTP에서는 커넥션을 맺고 요청 응답을 한 후에 커넥션을 끊는 방법이었음
    • 하지만 이미지가 여러개 들어간 페이지를 요청할 경우, 웹페이지를 응답 받은 후에 이미지를 보여주기 위해 각각을 다시 요청해야 하는데, 매번 커넥션을 맺고 요청하고 응답을 받고 끊는 과정을 하다보니 오버헤드가 많았음.
    • 그래서 어느 한쪽에서 연결을 끊기 전까지 또는 설정된 시간동안 커넥션을 끊지 않고, 여러 요청과 응답을 할 수 있는 방법을 만듬.
    • 그래도 매번 요청을 하고 응답을 기다리는 방식이기 때문에 여러 요청을 보내다 보니 느릴 수밖에 없었고
    • 파이프라이닝화를 통해 한번에 여러 요청을 하고 응답을 받는 형식으로 응답 요청 속도를 빠르게 하였음.
  7. 쿠키가 무엇인지 설명하고 나오게된 배경에 대해 설명하시오(p59)

    • 웹은 stateless로 클라이언트의 상태를 갖고 있지 않기 때문에, 클라이언트가 누구인지 알아야 서비스가 나오게 되면서 문제가 생겼음.
    • 그래서 서버에서 쿠키를 생성하여 setCookie를 하면 클라이언트는 해당 쿠키를 클라이언트에게 저장하고, 매 요청시 마다 서버에 전달하여 서버가 누구인지 알게 하는 용도로 만들어졌음.
  8. HTTP 메시지가 어떻게 구성되어져 있는지 설명하시오(p62)

    • http는 메시지 헤더와 메시지 바디로 구성되어져 있고, 구분 값으로 개행 문제가 있다(CR+LF)
  9. 메시지 헤더에 포함되 있는 Request Line과 status line에 대해 설명하시오

    • request line은 request header에 포함되며, method, request URI, http 버전 정보가 들어가 있음.
    • status line은 response header에 포함되며, status code와 응답에 대한 메시지, http 버전가 존재한다.
  10. contents negotiation가 무엇인지 무엇을 협상하는지 설명하고 , 세가지 방법과 각각을 설명하시오

    • 서버와 클라이언트가 어떤 리소스에 대해 전송할건지에 결정하는 것이다.
    • 인코딩, 언어, 문자세트 등을 결정한다.
    • 클라이언트가 클라이언트에 맞는 응답을 주기 위해 존재한다.
    • 3가지

      • agent driven negotiation : 클라이언트가 결정하는 것으로, 웹 페이지를 보여주는 언어 같은것을 선택할 수 있다
      • server driven negotiation : 서버가 클라이언트의 헤더를 보고 결정하는 것이므로, 적합한 리소스를 주지 못할 수도 있다. os 의 종류나 pc 또는 스마트폰용 웹페이지를 자동으로 전환하는 것에 해당한다.
      • transparent client driven negotiation : 위의 두가지 방법을 모두 사용한 방법이다.
  11. TCP/IP에서 캡슐화란?(p24)

    • 데이터를 송신할 경우 상위 계층에서 내려오면서 각 계층마다 필요한 헤더를 붙혀 포장하여 전송하고 수신측은 하위 계층부터 포장을(헤더)를 벗겨내면서 상위 계층으로 전달한다. 여기서 헤더로 포장(감싸는) 행위를 캡슐화라고 한다.

3. 어떻게 공부할 것인가

  1. 노력이 많이 들여 배운 지식일수록 더 깊이 남고 오래 간다.

    • 인출 연습(시험) : 기억을 강화하고 망각을 막아준다.

      • 장점

        • 자신이 무엇을 모르는지, 집중적으로 공부해야 할 취약한 부분이 어디인지 알려준다.
        • 배운 것을 회상함으로써 기억이 탄탄해지고 기존 지식과의 연관성이 강화되어 나중에 회상하기 쉬워진다.
    • 시간 간격을 두고 복습하기 : 망각이 일어날 만한 시간 간격을 두거나 두 가지 이상의 주제를 번갈아 배우는 방법. 기억해내는데 힘들고 효과적이지 않은것 처럼 느껴지지만, 배운 내용이 오래 남고 나중에 적절한 상황에서 그 지식을 풍부하게 사용가능
    • 해법을 배우기 전에 문제를 풀기 위해 애써야 한다. 생각 없는 반복은 도움이 되지 않는다.
    • 교차 연습이나 다양하게 변화를 준 연습은 다양한 문제 유형에서 근본 원칙이나 규칙을 이끌어 내는 능력을 향상 시켜준다.
    • 정교화 : 생소한 내용을 자신만의 언어로 표현하여 기존의 지식과 연결하는 과정
  2. 우리가 많이 사용하는 교재를 반복해서 읽기, 집중적으로 읽기는 효율이 좋지 않고 장기 기억에 좋지 않다.
  3. 새로운 자료에서 핵심 내용을 뽑아내 심성모형(외부의 현실을 머릿속에 표현한것)으로 만드는 법을 배우고 그 모형을 사전 지식과 연결하는 사람은 복잡한 지식과 기술을 배우는데 뛰어나다.
  4. 추상적인 지식이 구체적이고 개인적인 것으로 변하는 순간 학습이 잘 이루어 진다.
  5. 모의 비행 훈련은 일종의 인출 연습이고, 일정한 간격을 둔 교차연습이며 당야하게 변화를 준 연습이고, 상공에서 겪게될 정신적 상태를 최대한 비슷하게 경험할 수 있는 과정이다.(p.25)
  6. 인지적 노력을 들여 간격을 두고 반복해서 회상해야한다. 회상을 반복하면 기억이 단단한 개념으로 뇌에 통합되기 쉬우며 나중에 그 지식이 인출되는 신경 회로가 강화되고 크게 증가한다.

    • 시간 간격을 두고 인출 함으로써 약간의 망각을 일으켜 회상하기 힘들게 만들고 인지적으로 연습한다면 더 오랫동안 확실히 기억할 수 있다.
  7. 연습 사이에 시간 간격을 두고, 다른 학습과 교차(병행)해 변화를 주면서 연습하면 지식과 기술을 더 오래 보유하고 더 능숙하게 사용할 수 있다.

    • 이것 또한 변화를 주어 더 많은 노력이 들게 하고 간격을 두어 망각이 일어나게 하여 머리에 더 오래 남게할 수 있다.
  8. 새로운 지식을 장기 기억에 새겨넣기 위해선 기억 흔적을 강화하고 의미를 부여하며 사전 지식과 연결하는 이 과정은 몇 시간 내지 몇칠에 걸쳐 일어난다.
  9. 교차 연습과 다양하게 변화를 준 연습의 현저한 이점은 맥락을 판단하고 문제들을 구분하는 법을 잘 배울 수 있도록 도와주며, 수많은 가능성 중에서 올바른 해결책을 고르고 적용하도록 도와준다.
  10. 가장 큰 효과가 입증된 인출 연습은 나중에 그 지식을 가지고 진짜 하게될 일을 반영한 연습이다. 학습한 지식이 나중에 얼마나 도움 될지 결정하는 요인은 지식 그 자체가 아니라 그 지식을 어떻게 연습하느냐다.
  11. 경험에서 배우는 방법은 반추이며 정교화를 하는것이다.

    • 반추

      • 어떤 일이 일어났는지
      • 내가 무엇을 했는지
      • 그것이 어떤 효력을 발휘 했는지
    • 정교화

      • 이번과 다르게 다음에는 어떻게 할것인가 ?

2.Feelings

  • 내가 여태까지 공부한 방법이 비효율적이란 것을 알게 되고 아쉬우면서 이전에 했던 걱정거리 없어진것같다.
  • 어떻게 공부할 것인가를 읽고 어떻게 하면 좋은 학습패턴을 만들 수 있을지 고민해봤는데 쉽지가 어렵다.

3.Findings

  • 기억에 오래 남게 하기 위해선 약간의 망각을 이용한 시험을 통한 인지적(머리가 노력해야하는) 인출을 해야한다.
  • 두 가지 이상의 과목을 같이 공부(교차학습법)하면 중간에 망각이 생겨 더 효율적이다.
  • 한 가지를 완벽히 이해 할 때 까지 공부하는것 보다 다른 여러 종류의 개념을 함께 공부하는것이 느리지만 더 오래 남는 방법이다. 새로운 상황에서 더 좋은 판단과 결정을 할 수 있다.

4.Future Action Plan

  • 어떻게 공부할 것인가에서 이야기 하는 부분을 실제로 실천을 해봐야겠다.
  • 어떻게 공부할 것인가에 대해 정리하는 시간을 가져야겠다.

5.FeedBack


Written by@Zero1
This blog is for that I organize what I study and my thinking, feeling and experience.

GitHub