혼공 학습단/혼자 공부하는 네트워크

[혼자 공부하는 네트워크] 네트워크, 인터넷, 그리고 개발자

uomnf97 2024. 7. 2. 16:08

안녕하세요! 제이덥입니다. 이번 주부터 "혼자 공부하는 네트워크" 도서를 통해 네트워크에 대해 학습하고, 공부한 내용을 공유하려고 합니다. 각 주제별로 나누어 포스팅할 예정이며, 이번 섹션에서는 "네트워크"와 "인터넷"이 무엇인지, 그리고 개발자가 왜 네트워크를 알아야 하는지에 대해 정리해보겠습니다.
*이 도서는 제가 직접 구매하여 작성한 글이며, 혼공단 12기 활동의 일환으로 학습 내용을 공유하고자 합니다. 도서와 활동에 대한 자세한 내용은 아래 Reference에서 확인하실 수 있습니다.

1️⃣ 네트워크와 인터넷의 직관적인 정의

  • 네트워크(네트워크)란?
    • 네트워크의 정의 : 데스크톱, 노트북, 스마트 폰 등 여러 장치가 정보를 주고 받을 수 있도록 그물 처럼 연결되어있는 통신망
    • 특징 :
      1. 여러개의 유무선 장치로 연결되어 잇음.
      2. 정보를 주고 받을 수 있게 해줌
  • 인터넷(Internet)이란?
    • 인터넷의 정의 : 여러 네트워크를 연결한 ‘네트워크의 네트워크’
    • 특징 : 주변 장치 뿐만 아니라 공간에 제약없이 여러 장치를 연결할 수 있도록 해주는 기능

출처: https://www.highspeedinternet.com/resources/how-the-internet-works

 

2️⃣ 개발자랑 네트워크 어떤 관계?

  • 상대적으로 많은 트워크를 사용하는 많은 프로그램
    • 일상생활에서 사용하는 프로그램 중 인터넷 연결 없이 사용하는 프로그램이 훨씬 더 많음
      • 예) 웹 브라우저, 메일, 온라인 게임, 클라우드 저장소 등등▶️ 즉, 많은 프로그램이 네트워크와 상호 작용을 하고 있으며, 개발자는 이러한 상호작용을 하는 프로그램을 만들어야 하기에 네트워크에 대해서 제대로 이해하고 있어야 한다.
  • 개발자가 컴퓨터 네트워크를 알아야하는 이유
    • 개발자는 2가지 업무를 진행
      1. 프로그램을 개발하는 업무
      2. 프로그램을 유지보수 하는 업무

                   ✅ 네트워크는 이 두가지 관점에서 모두 중요! 

    • 프로그램을 개발하는 관점
      • 네트워크에 대한 배경지식이 필요한 기능들이 존재
        • ex) 스프링 프레임워크의 기능 (TCP/UDP를 알고있어야함)
        • ex) 웹사이트 배포를 위해 DNS, HTTP/HTTPS의 기능을 모두 알고있어야 함.
    • 프로그램을 유지보수 하는 관점:
      • 프로그램이 인터넷 연결이 안되거나/서버와의 연결이 끊기거나/동작하지 않는 등 네트워크 연관된 문제가 발생했을 때 관련 지식은 문제 해결에 큰 도움을 줌
        • 페이지를 찾을 수 없는 404 에러
        • 내부 서버 오류 에러 500
      • 프로그램 유지 보수를 할 때 쓰이는 명령어나 도구 중 네트워크 지식이 있어야만 이해할 수 있는 부분이 있음
        • ex) netstats -ano, 공유기 설정 등

Reference :