상세 컨텐츠

본문 제목

[CS] 서버 개발을 위한 기초 CS 지식 정리

CS 과제 정리

by thisnorm 2025. 1. 10. 18:36

본문

1. 네트워크

📌네트워크란?

  • 네트워크는 여러대의 컴퓨터 또는 장비가 서로 연결되어서 정보를 주고 받을 수 있게 도와주는 기술
  • 컴퓨터, 라우터, 스위치, 허브 등 각종 관련 장비들이 역할을 수행하고 정보를 주고받음

 

💡기본적인 네트워크에 대해 알아야 하는 이유?

  • 우리는 사용자가 요청을 했을 때 해당 요청에 대한 응답을 수행하는 프로그램 즉, 서버를 개발하고자 함
  • 따라서 사용자의 요청에서 시작하여 우리가 만든 서버에 도착하고 다시 사용자
  • 에게 까지 되돌아가는 흐름을 잘 파악할 필요가 있음

2. Clien와 Server

📌Client와 Server

  • Client(브라우저 등)에서 Server에 정보를 요청하는 과정을 간략하게 표현한 모델
  • 사용자는 브라우저(=Client)를 이용하여 서버(Server)에 정보(Data)를 요청(Request)하고 응답(Response)을 받음
    • 경우에 따라 서버가 다른 외부 API 서버에 요청을 보내고 그 응답을 클라이언트에 전달하는 클라이언트의 역할을 할 수 있음(대표 예시 소셜 로그인 등 외부 API 활용하는 경우

  • 사용자의 요청이 서버에 도달하기 위해서는 해당 서버의 정보가 필요함
    • 여기서 필요한 서버의 정보 = IP 주소

 

💡IP 주소란?

  • 192.168.0.123 과 같은 숫자
  • 거대한 네트워크망에서 각 컴퓨터를 식별하기 위한 위치 주소이며 위와 같이 숫자로 표현 됨
  • 서로 정보를 주고 받기 위해서는 IP 주소외에도 아래와 같은 추가적인 정보가 필요함
    • 게이트웨이 : 라우터(공유기 등)의 주소로, 외부 네트워크와의 통신을 담당
    • 서브넷 마스크 : 네트워크 식별자와 호스트 식별자를 구분하는 정보 (ex:
    • 255.255.255.0)
    • 네트워크 식별자 : (ex: IP 주소의 첫 세 자리, 192.168.0)
    • 호스트(장치) 식별자 : (ex: IP 주소의 마지막 자리, 123)
    • 포트 번호: 특정 애플리케이션이나 서비스에 대한 통신 경로를 지정하는 숫자
      • 예 : 웹 서버의 경우 일반적으로 포트 80(HTTP), 443(HTTPS) 사용.
  • 위 정보를 토대로 네트워크 프로토콜(규칙)을 이용하여 데이터 송/수신

 

 

 💡IP주소의 쉬운 예시

  • IP 주소를 현실 주소라는 이름에 맞게 쉽게 이해할 수 있도록 비교택배 네트워크 
    주소(IP) 서울이 **구 **로 ***** 192.168.0.123
    받는 사람(포트) Meta 3000
  • 우리가 택배를 받기 위해서는 택배를 받을 실제 주소와 받는 사람 이름 등 정보가 필요함
  • 마찬가지로 네트워크에서도 정보를 요청 받고 전달하려면 주소에 해당하는 IP와 받는 사람에 해당하는 port번호를 알려줘야 함
    • 요청 주소 → 192.168.0.123:3000
    • 개발과정에서 요청의 목적지 서버가 본인 컴퓨터 자체라면,
      • 요청 주소 → localhost:3000 으로 대체 가능 </aside>

 

💡공인 IP, 사설 IP? 추가 지식

  • 공인 IP 주소와 사설 IP 주소라는 구분이 있음
  • 사실 위에 작성된 192.168.0.*** 형식은 사설 IP 주소의 일반적인 형식
  • 사설 IP는?
    • → 공유기에서 쉽게 볼 수 있는 IP 주소의 형태
    • 홈 네트워크와 같이 라우터가 기준이며, 라우터가 발급한 가상의 IP 주소
      • 따라서 내부 IP 주소라고도 불리우며 생활에서는 공유기에서 연결된 나의 컴퓨터, 노트북, 프리터 등 더하여 해당 공유기가 무선 Wifi를 제공한다면 이것과 연결된 스마트폰, 태블릿 등이 포함 될 수 있음
        • 10.0.0 ~ 10.255.255.255
        • 172.16.0.0 ~ 172.31.255.255
        • 192.168.0.0 ~ 192.168.255.255
          • → IPTIME의 공유기는 192.168.0.1인 것이 대표적인 예시이며 이것이 이 네트워크의 게이트웨이로 볼 수 있음해당 기기들의 IP 주소는 일반적으로 아래와 같은 형식으로 나타남
          • 각 기기가 연결될 때, 동적(자동) 또는 정적(수동)으로 IP 주소가 발급됨

  • 공인IP는 위와 같은 라우터가 실제 인터넷에 연결되어 있는 통신사 등 인터넷 서비스가 직접적으로 연결된 IP 주소를 말함
    • 따라서 외부 IP 주소라고도 불리움
    • 해당 IP 주소는 인터넷 서비스 공급 업체(ISP, 일반적으로 통신사)를 통해 발급되며, 이 업체는 글로벌 인터넷 인프라에 연결되어 있어 인터넷을 사용자에게 제공하는 역할
    • 공유기를 통해 해당 메인의 인터넷 연결이 각 내부 IP로 분배되어 연결된 기기들이 인터넷을 사용할 수 있는 것
    • 공인 IP 주소 확인
      • 공인 IP 주소는 일반적으로 공개하지 않는 것이 좋음
      • 하지만 서버는 웹 호스팅 등 외부 사용자들이 이용할 수 있도록 특정 상황에서는 외부에서 접근할 수 있어야 하므로 공개되기도 함
        • 프론트엔드 서버는 사용자와 직접 상호작용을 위해 외부에 노출되는 것이 일반적이지만, 백엔드 서버는 보안과 데이터 보호를 위해 외부에 노출되지 않도록 은닉, 권한 제어를 하는 편
      • 하지만 직접적으로 IP주소를 접근 하지 못하도록 권한을 제어하거나, 도메인 이름이 IP주소를 대신하여 사용될 수 있도록 변환(DNS해석)되는 방식이 활용 됨

관련글 더보기