[Day 15 | Java] 네트워크 도입 - 개념 이해

y♡ding·2024년 11월 1일
0

데브코스 TIL

목록 보기
103/163

네트워크 => 원격 자원에 접근

네트워크는 컴퓨터, 프로그램, 하드웨어 등이 원격 자원에 접근하고 데이터를 주고받을 수 있게 해줍니다.

  • 컴퓨터(프로그램) ↔ 네트워크 ↔ 컴퓨터(프로그램): 일반적인 네트워크 통신 형태입니다. 예를 들어, 두 컴퓨터가 파일을 전송하거나, 서버와 클라이언트가 데이터를 교환할 때 네트워크가 필요합니다.
  • 컴퓨터(프로그램) ↔ 네트워크 ↔ 하드웨어(센서): IoT(Internet of Things)와 같이 컴퓨터가 원격의 하드웨어(예: 온도 센서)에 접근하여 데이터를 읽고 처리하는 형태입니다.

네트워크의 종류

  1. LAN (Local Area Network): 근거리 통신망으로, 집, 사무실, 학교 등 한정된 범위 내에서 사용되는 네트워크입니다.

    • 유선 LAN: 케이블을 통해 연결된 네트워크.
    • 무선 LAN (WiFi): 무선 신호를 통해 연결된 네트워크.
    • 무선통신망(4G, 5G): 이동 통신 네트워크를 통해 연결된 모바일 기기 간의 연결.
    • 블루투스, USB: 기기간 연결 방식 중 하나로, 비교적 가까운 거리에서 장치 간 데이터를 전송할 수 있습니다.
  2. 사내망 (인트라넷, Intranet): 특정 조직 내에서만 접근할 수 있는 네트워크로, 보안이 강화된 환경에서 정보를 공유합니다.

  3. 사회망 (인터넷, Internet): 전 세계적으로 연결된 공용 네트워크로, 우리가 일반적으로 사용하는 웹을 포함한 네트워크입니다.


네트워크 구성 요소

  1. 프로토콜(Protocol): 데이터 전송 규약으로, 통신이 이루어질 규칙을 정의합니다. 예를 들어, HTTP는 웹 브라우저와 웹 서버 간의 데이터 통신 규약입니다.
  2. IP 주소: 네트워크 상에서 컴퓨터를 식별하는 주소로, 고유한 숫자로 이루어져 있습니다. (예: 192.168.0.1)
  3. 포트(Port): 같은 IP 주소 내의 다양한 프로그램을 구분하는 번호입니다. (예: 웹 서버는 기본적으로 포트 80을 사용합니다.)

네트워크 데이터 전송 흐름

  1. 프로그램에서 데이터를 전송 요청.
  2. 요청이 운영 체제(OS)에 전달되어 네트워크 카드(Network Interface Card)로 전송.
  3. 데이터가 네트워크를 통해 상대 컴퓨터로 전달.
  4. 상대 컴퓨터의 네트워크 카드가 데이터를 수신하여 운영 체제(OS)에 전달.
  5. 운영 체제(OS)가 데이터를 대상 프로그램에 전달.

자바에서는 이러한 네트워크 작업을 java.net 패키지를 통해 지원합니다.


네트워크 모델의 유형

1. 클라이언트/서버 모델 (Client/Server Model):

  • 클라이언트와 서버가 분리되어 있으며, 클라이언트가 요청을 보내고 서버가 응답하는 형태입니다.
  • 예시:
    • MariaDB 클라이언트/서버: 데이터베이스 서버와 클라이언트가 연결하여 데이터를 주고받음.
    • 채팅 클라이언트/서버: 클라이언트가 서버에 연결하여 메시지를 송수신.

2. P2P 모델 (Peer-to-Peer Model):

  • 모든 노드가 클라이언트이자 서버 역할을 수행하며, 중앙 서버 없이 데이터를 주고받는 형태입니다.
    * 예시:
    블록체인 네트워크: 모든 노드가 데이터를 저장하고, 검증하는 작업을 분담하여 분산된 네트워크를 형성.
    암호화폐: 중앙 서버 없이 트랜잭션이 이루어지고, 네트워크에 참여하는 모든 노드가 거래 내역을 공유.

3. 서버에서 클라이언트로 데이터 전송 (Server-to-Client Data Transfer):

  • 클라이언트가 서버의 자원을 읽어와서 데이터로 사용하거나, 재가공하여 사용하는 방식입니다.
  • 예시:
    • 웹 크롤링(Web Crawling): 웹 페이지의 데이터를 자동으로 수집하여 필요한 정보를 분석하고 저장.
    • 웹 자료 수집 및 재가공: 서버에 있는 파일이나 데이터베이스의 정보를 읽어와 가공한 후 다른 작업에 활용.

0개의 댓글

관련 채용 정보