[혼공네트]1주차_chapter1. 컴퓨터네트워크 시작하기

hyewoon·2024년 7월 6일
0

1주차(7/1 ~ 7/7) chapter01. 컴퓨터네트워크 시작하기

  • 학습목표
    컴퓨터네트워크 지식의 필요성 이해
    컴퓨터 네트워크의 큰 그림 그리기
    컴퓨터가 네트워크를 통해 대화하는 과정을 이해

컴퓨터 네트워크를 알아야 하는 이유

✔️ 컴퓨터 네트워크란?
여러 개의 장치가 마치 그물처럼 서로 연결되어 정보를 주고받을 수 있는 통신망을 뜻함.

✔️ 인터넷이란?
여러 장치들이 네트워크를 통해 서로 연결되면, 주변이 장치하고만 정보를 주고 받는 것이 아니라, 네트워크와 연결된 지구 반대편에 있는 장치와도 정보를 주고 받는다. 이것을 가능케 하는 기술을 인터넷이라 한다.

-> 컴퓨터(pc, 노트북, 핸드폰)이 주변장치와 유무선으로 연결됨
-> 스마트폰을 예로 들면, 네트워크가 연결되지 않은 계산기, 메모장, 시계 등고 같은 어플이케이션도 있지만, 유튜브, 인스타그램, 카카오톡, 게임 같은 어플이케이션은 인터넷 연결 없이는 사용하기 힘들다.

✔️ 개발자가 컴퓨터 네트워크를 알아야 하는 이유?
인터넷 연결이 없는 프로그램보다는 인터넷 연결을 이용한 프로그램을 만들 가능성이 크고, 프로그램 유지보수를 할 때도 이용된다.

네트워크 거시적으로 살펴보기

✔️ 네트워크 구성에 따른 분류

네트워크의 구성
네트워크 = 노드 + 간선 + 메시지

  • 노드 : 정보를 주고 받을 수 있는 장치
    - 호스트 : 네트워크의 가장자리 위치 : 최소 정보 생성 및 송신 (서버, 클라이언트)
    - 중간 노드 : 네트워크 장비(허브, 스위치, 공유기 등)
  • 간선 : 정보를 주고 받을 수 있는 유무선의 통신 매체
  • 메시지 : 노드 간 주고 받는 정보 ( 웹 페이지, 파일, 메일)

✔️ 범위에 따른 네트워크 분류

  • LAN (Local Area Network) : 근거리 통신망
  • WAN (Wide Area Network) : 광역 통신망

✔️ 메시지 교환방식에 따른 네트워크 분류

  • 회선 교환방식 :
    호스트간 메시지를 주고 받기 전에, 두 호스트 사이에 메시지 전송로인 회선을 설정한 뒤 해당 전송로를 통해 메시지를 주고 받는 방식
  • 패킷 교환방식 :
    메시지를 패킷 단위로 쪼개서 송수신함.

💡 내 생각정리하기
패킷교환방식으로 메시지를 전달하면서 (자연스럽게) 캡슐화와 역캡슐화가 중요해졌다고 생각한다. ( 회선 교환방식에서 캡슐화/역캡슐화가 있었는지는 정확히 알수 없지만)
메시지를 패킷단위로 쪼개 송신할 때, 데이터(메시지)의 손실이 없어 정확하게 패킷단위로 쪼개고, 수신할 때는 다시 정확하게 데이터(메시지)를 재조립해야 해야만 의도한 정보를 정확히 전달할 수 있기 때문이다.
->
책상을 예로 들면 송신 할때 상판, 다리 4개, 나사 4개 등 모두 빠짐없이 보내야 하고, 수신 측에서는 설명서에 따라 순서대로 각각을 조립해야만 흔들리거나 기울어지지 않는 튼튼한 책상을 조립해서 사용할 수 있는 것과 같은 이치라고 생각한다.

네트워크 미시적으로 살펴보기

네트워크를 이용해 정보를 주고 받는 것은 택배를 주고 받는 것과 유사하다.

핵심 포인트

  • 프로토콜
  • 네트워크 참조모델
  • 캡슐화(역캡술화)

✔️ 프로토콜

프로토콜이란?
통신과정에서 정보를 올바르게 주고 받기 위해 합의된 규칙이나 방법
-> 서로 다른 통신 장치들이 정보를 주고 받으려면 프로토콜이 통해야 한다.

✔️ 네트워크 참조모델

네트워크 참조모델
네트워크를 통해 정보를 주고받을 때 정형화된 여러 단계를 거치는데, 그 과정을 계층으로 나눈 구조를 네트워크 참조모델이라 한다.

💡 네트워크 참조 모델을 사용하는 이유
각 계층별로 수행해야 할 역할이 정해져 있으면

  • 네트워크 구성과 설계가 용이합니다.
  • 네트워크 문제 진단과 해결이 용이합니다.

📌 OSI모델

  • 물리계층
    : OSI모델 최하단에 있는 계층
    : 1과0으로 표현된 데이터비트를 다양한 통신매체를 통해서 전기, 빛 등의 신호로 운반됨
  • 데이터 링크 계층
    네트워크 내 주변 장치 간의 정보를 올바르게 주고받기 위한 계층(네트워크 주변 장치간의 통신) ex) 이더넷
  • 네트워크 계층
    : 메시지를 수신지까지 전달하는 계층(네트워크 간 통신)
  • 전송 계층
    : 패킷 흐름 제어, 전송 오류 점검
  • 세션 계층
    : 통신 주고받는 호스트의 응용 프로그램 간 연결 상태 생성 및 유지, 종료역할
  • 표현 계층
    : 암호화, 압축
  • 응용 계층
    : 최상단의 모델로, 사용자 및 사용자가 이용하는 응용 프로그램과 가장 밀접히 맞닿아 있는 계층

📌 TCP/IP모델

  • 네트워크 액세스 계층
    : OSI모델의 데이터 링크 계층과 유사
  • 인터넷 계층
    : OSI모델의 네트워크 계층과 유사
  • 전송 계층
    : OSI모델의 전송 계층과 유사
  • 응용 계층
    : OSI모델의 세션 계층, 표현 계층, 응용 계층을 합친 것과 유사

✔️ 캡슐화와 역캡슐화

네트워크에서 전달하는 정보인 메시지를 보낼때(송신과정)에서 캡슐화가 이루어지고, 메시지를 받을 때(수신 과정)에서 역캡슐화 이루어진다.

💡 택배를 보낼 때 상품이 안전하게 전달되도록 에어캡에 씌우고, 상자에 넣고, 데이핑을 하는 것처럼, 전달하는 메시지가 안전하게(보낸 상태 그대로 받을 수 있도록 하기 위해) 캡슐화와 역캡슐화가 필요하다.

🏅기본 숙제

OSI 모델 및 TCP/IP 모델 차이점을 정리하고, 이를 바탕으로 네트워크 계층 구조를 작성해 보기(p. 62 참조)

-> 상단의 네트워크 참조모델에 정리하였습니다.

택배를 주고받는 과정에서 정형화된 순서가 있는 것처럼, 네트워크를 통해 정보(메시지)를 주고받는 과정에서 정형화된 순서가 있는 데, 이것을 계층별로 나눈 것을 네트워크 계층이라 합니다. 네트워크 계층은 전기 신호를 받아들이는 물리 계층부터 사용자 및 사용자가 이용하는 응용프로그램과 가장 맞닿아 있는 응용계층으로 이루어져 있습니다. 대표적인 네트워크 계층모델에는 OSI모델과 TCP/IP모델이 있습니다.

🎁선택 숙제

Ch.01(01-1) 확인 문제 2번(p.35) 풀고 설명하기

📌 확인문제 2.
네트워크에 대한 설명을 옳지 않은 것은? -> 정답 1번

  1. 네트워크에 대한 이해는 프로그램을 만드는 과정에 도움을 주지 않습니다.
  2. 네트워크에 대한 이해는 프로그램을 유지 보수하는 과정에 도움을 줄 수 있습니다.
  3. 많은 프로그램이 네트워크를 통해 다른 장비와 상호작용하며 실행됩니다.
  4. 채용 시 네트워크에 대한 지식을 강조하거나 검증하는 기업이 존재합니다.

-> 1번) x. 프로그램을 만드는 과정에서 네트워크를 활용한 프로그램이 그렇지 않은 프로그램보다 훨씬 많기 때문에, 개발자 입장에서 네트워크에 대해 알고 있어야 합니다. 예를 들어, TCP/UDP 같은 네트워크 지식이 없다면 스프링 프레임워크의 기능을 제대로 이해하고 활용하기 어렵습니다.

(01-3) 확인 문제 2번(p.73) 풀고 설명하기

profile
곰곰

0개의 댓글