[이어드림스쿨 1주차] 컴퓨터 개론 (4)

네트워크 기초 개념과 필수 개념 정리
네트워크는 컴퓨터와 장치들이 서로 데이터를 주고받을 수 있도록 연결하는 기술이다.
개발자가 네트워크를 이해하면 서버와 클라이언트 간의 통신 방식, 데이터 전송 프로토콜, 보안 개념 등을 익힐 수 있어
더 안정적이고 효율적인 시스템을 구축할 수 있다.
이번 글에서는 네트워크의 기본 개념부터 필수 프로토콜, 보안 개념까지 한눈에 정리해보았다. 🚀
🔹 네트워크와 인터넷
네트워크(Network) 란 서로 다른 기기(컴퓨터, 서버, 스마트폰 등)가 유선 또는 무선으로 연결되어 통신하는 것을 의미한다.
모든 컴퓨터가 직접 연결되는 것이 아니라, 라우터(Router), 스위치(Switch) 등 네트워크 장치를 통해 연결된다.
✔ 인터넷(Internet)이란?
여러 개의 네트워크가 연결된 거대한 네트워크를 의미한다.
각 컴퓨터(또는 장치)는 IP 주소(Internet Protocol Address) 를 통해 서로를 식별한다.
📌 IP 주소 확인 방법
Mac/Linux →
ifconfig
또는ip a
Windows →
ipconfig
🔹 PORT (포트 번호)
포트(Port) 번호는 네트워크에서 특정 애플리케이션이나 서비스를 식별하는 번호다.
각 컴퓨터는 IP 주소 + 포트 번호 조합으로 특정 서비스와 연결된다.
📌 포트 예제
127.0.0.1:3000 # 127.0.0.1(IP) + 3000(포트 번호)
✔ 사용 중인 포트 확인
📌 리눅스에서 특정 포트 사용 여부 확인
netstat -nap | grep LISTEN
netstat -nap | grep 포트번호
📌 이미 사용 중인 포트 해결 방법
다른 포트를 사용하거나
필요 없는 프로세스를 종료
📌 잘 알려진 포트 번호
포트 번호 | 서비스 |
21 | FTP (파일 전송) |
22 | SSH (원격 접속) |
25 | SMTP (이메일 발송) |
53 | DNS (도메인 네임 시스템) |
80 | HTTP (웹 브라우징) |
443 | HTTPS (보안 웹 브라우징) |
0~65535번까지 포트가 존재하지만, 0~1024번은 이미 특정 서비스가 사용하도록 예약된 상태다.
🔹 DNS (Domain Name System)
IP 주소는 기억하기 어렵기 때문에, 사람이 읽기 쉬운 도메인 주소를 사용한다.
예를 들어, www.google.com
대신 142.250.74.14
같은 IP 주소를 직접 입력하는 것은 비효율적이다.
📌 DNS란?
DNS(Domain Name System) 는 도메인 이름을 IP 주소로 변환하는 시스템이다.
웹사이트 주소를 입력하면, DNS 서버가 실제 IP 주소를 찾아 웹사이트에 연결해준다.
📌 DNS 동작 과정
사용자가
www.example.com
입력DNS 서버에서 해당 도메인의 IP 주소 검색
해당 IP 주소로 접속하여 웹페이지 표시
📌 TLD (Top-Level Domain)란?
도메인 이름의 가장 오른쪽 부분을 의미한다.
국가 코드 TLD →
.kr
(한국),.jp
(일본),.us
(미국)일반 TLD →
.com
,.org
,.net
🔹 서버(Server)와 클라이언트(Client)
✔ 서버(Server)
데이터를 제공하는 역할을 하는 컴퓨터
예) 웹 서버, 데이터베이스 서버
✔ 클라이언트(Client)
데이터를 요청하는 역할을 하는 컴퓨터
예) 웹 브라우저, 모바일 앱
📌 서버와 클라이언트의 관계
1️⃣ 클라이언트 → 서버에 요청
2️⃣ 서버 → 요청을 처리하고 응답 반환
3️⃣ 클라이언트 → 결과 화면 출력
📌 호스팅(Hosting) 서버를 설정하여 다른 클라이언트가 접속할 수 있도록 제공하는 것을 의미한다.
🔹 TCP/UDP (데이터 전송 프로토콜)
프로토콜(Protocol) 은 네트워크에서 데이터를 주고받는 규칙을 의미한다.
대표적인 전송 프로토콜로 TCP 와 UDP 가 있다.
✔ TCP (Transmission Control Protocol)
연결 지향형 프로토콜 (데이터 손실 방지)
패킷이 순서대로 도착하도록 보장
데이터 손실 시 재전송을 요청
📌 TCP 3-Way Handshake (연결 과정)
TCP에서 안정적인 연결을 맺기 위해 클라이언트와 서버가 주고받는 과정을 의미한다.
이 과정에서 사용되는 패킷의 의미는 다음과 같다.
📌 패킷 종류
SYN (Synchronize) → 연결 요청을 의미
ACK (Acknowledge) → 요청을 확인하고 응답하는 패킷
클라이언트 → 서버: SYN 요청
서버 → 클라이언트: SYN+ACK 응답
클라이언트 → 서버: ACK 전송 후 연결 완료
💡 이 과정을 거치면 클라이언트와 서버 간에 연결이 성립된다.
📌 TCP 4-Way Handshake (연결 종료 과정)
TCP 연결을 안전하게 종료하기 위해 클라이언트와 서버가 주고받는 과정이다.
📌 패킷 종류
FIN (Finish) → 연결 종료 요청
ACK (Acknowledge) → 종료 요청 확인 및 응답
클라이언트 → 서버: FIN 전송
서버 → 클라이언트: ACK 응답
서버 → 클라이언트: FIN 전송
클라이언트 → 서버: ACK 응답 후 연결 종료
💡 이 과정을 통해 클라이언트와 서버는 안전하게 연결을 해제할 수 있다.
✔ UDP (User Datagram Protocol)
연결을 설정하지 않고 데이터를 전송
빠르지만, 데이터 손실을 감지하지 않음
실시간 스트리밍, VoIP(음성 통화) 등에 사용
🔹 HTTP/HTTPS (웹 통신)
HTTP (Hypertext Transfer Protocol) 는 웹 서버와 브라우저 간 데이터를 주고받는 프로토콜이다.
클라이언트(브라우저)는 HTTP 요청을 보내고, 서버는 HTTP 응답을 반환한다.
📌 HTTP 특징
✅ 무상태(Stateless) → 서버는 클라이언트의 상태를 저장하지 않음
✅ 비연결성(Connectionless) → 요청-응답 후 연결을 끊음
📌 HTTPS (Hypertext Transfer Protocol Secure)
HTTPS는 HTTP에 보안 기능을 추가한 프로토콜이다.
기존 HTTP는 데이터를 암호화하지 않아 보안에 취약했지만, HTTPS는 SSL/TLS 암호화와 인증을 추가하여 보안을 강화했다.
📌 HTTP vs HTTPS 차이점
구분 | HTTP | HTTPS |
보안 | 암호화 없음 (평문 전송) | SSL/TLS 암호화 적용 |
포트 번호 | 80 | 443 |
데이터 보호 | 데이터 도청 및 변조 위험 | 데이터 암호화로 안전한 전송 |
사용 예시 | 일반 웹사이트 | 금융 서비스, 로그인 페이지 등 |
✅ HTTPS는 데이터를 암호화하여 중간에서 해킹(스니핑)당하는 것을 방지한다.
✅ SSL/TLS 인증서를 사용하여 서버의 신뢰성을 보장한다.
📌 HTTP 메시지 구조
HTTP 통신은 클라이언트(웹 브라우저)와 서버 간의 요청(Request)과 응답(Response) 으로 이루어진다.
📌 HTTP 메시지는 4가지 요소로 구성됨
1️⃣ Start Line → 요청 방식(HTTP Method)과 대상 URL 포함
2️⃣ Header → 요청 또는 응답의 부가 정보를 포함
3️⃣ Blank Line → 헤더와 본문을 구분하는 빈 줄
4️⃣ Body → 요청 또는 응답의 실제 데이터
📌 HTTP 요청(Request) 메시지 구조
📌 요청 메시지 기본 형식
[HTTP Method] [Request Target] [HTTP Version]
[Header Field]: value
...
[Body]
📌 요청 메시지 예제 (GET 요청)
GET /index.html HTTP/1.1
Host: www.example.com
User-Agent: Mozilla/5.0
Accept: text/html
✔ HTTP Method (요청의 의도)
메서드 | 설명 |
GET | 데이터를 요청 (예: 웹페이지 불러오기) |
POST | 데이터를 서버에 전송 (예: 로그인, 회원가입) |
PUT | 데이터를 업데이트 |
DELETE | 데이터를 삭제 |
✔ 주요 HTTP 요청 헤더 (Header Field)
헤더 | 설명 |
Host | 요청하는 서버의 도메인 이름 |
User-Agent | 클라이언트(브라우저) 정보 |
Referer | 현재 요청을 보낸 이전 웹페이지 주소 |
Accept | 클라이언트가 받을 수 있는 데이터 형식 |
If-Modified-Since | 특정 날짜 이후에 변경된 데이터만 요청 |
Authorization | 인증 정보 포함 (예: Bearer 토큰 ) |
Origin | 요청을 보낸 출처(도메인) |
Cookie | 클라이언트가 보관 중인 쿠키 데이터 |
📌 HTTP 응답(Response) 메시지 구조
📌 응답 메시지 기본 형식
[HTTP Version] [Status Code] [Status Message]
[Header Field]: value
...
[Body]
📌 응답 메시지 예제 (200 OK)
HTTP/1.1 200 OK
Server: nginx
Content-Type: text/html
✔ HTTP 상태 코드 (Status Code)
상태 코드 | 설명 |
2xx (성공) | 요청 성공 (200 OK, 201 Created) |
3xx (리다이렉션) | 다른 위치로 이동 (301 Moved Permanently, 302 Found) |
4xx (클라이언트 오류) | 잘못된 요청 (400 Bad Request, 404 Not Found) |
5xx (서버 오류) | 서버 내부 문제 (500 Internal Server Error) |
✔ 주요 HTTP 응답 헤더 (Header Field)
헤더 | 설명 |
Location | 리다이렉션 시 이동할 URL |
Server | 응답을 제공하는 서버 정보 |
Age | 응답이 캐시에 저장된 시간 |
Referrer-Policy | HTTP Referer 정보를 어떻게 보낼지 결정 |
WWW-Authenticate | 클라이언트에게 인증이 필요함을 알림 |
Proxy-Authenticate | 프록시 서버 인증 요구 |
Content-Type | 응답 데이터의 형식 (예: text/html , application/json ) |
📌 프록시 서버(Proxy Server)란?
클라이언트와 서버 사이에서 인터넷 요청을 중계하는 서버
보안, 속도 향상, IP 우회 등의 역할 수행
📌 기타 네트워크 프로토콜
✔ SMTP (Simple Mail Transfer Protocol)
이메일을 발송하는 프로토콜
메일 서버 간 전송에 사용됨 (예:
smtp.gmail.com
)
✔ FTP (File Transfer Protocol)
파일을 전송하는 프로토콜
3-Way Handshake 방식으로 연결을 설정한 후 파일을 주고받음
최근에는 보안 문제로 잘 사용되지 않음
✔ SSH (Secure Shell)
원격 서버 접속 및 명령어 실행 프로토콜
모든 데이터가 암호화되어 보안이 뛰어남
리눅스와 맥에서는 기본 제공 (
ssh 사용자@서버주소
)
✔ DHCP (Dynamic Host Configuration Protocol)
IP 주소를 자동으로 할당하는 프로토콜
DHCP 서버가 클라이언트에게 IP, 서브넷 마스크, 게이트웨이 등을 제공
✔ POP3 (Post Office Protocol 3)
이메일을 다운로드하여 로컬에서 관리하는 프로토콜
이메일을 한 번 다운로드하면 서버에서 삭제됨
✔ IMAP (Internet Message Access Protocol)
이메일을 서버에 저장한 채 여러 기기에서 접근 가능
Gmail, Outlook 등에서 주로 사용됨
✔ SNMP (Simple Network Management Protocol)
네트워크 장비를 모니터링하고 관리하는 프로토콜
라우터, 스위치 등 네트워크 장비의 상태를 확인하는 데 사용됨
🔹 보안 개념 – SSL/TLS
📌 SSL (Secure Sockets Layer) / TLS (Transport Layer Security)
데이터 암호화를 통해 보안을 강화하는 프로토콜
HTTPS에서 사용되며, TLS가 SSL의 개선된 버전
데이터의 기밀성, 무결성, 인증 보장
📌 인증(Authentication) vs 인가(Authorization)
개념 | 설명 |
인증 (Authentication) | 사용자가 누구인지 확인 (예: 로그인) |
인가 (Authorization) | 사용자가 특정 자원에 접근할 권한이 있는지 확인 |
🔹 보안 (Security)
📌 SSL/TLS (데이터 암호화 및 보안)
SSL(Secure Sockets Layer): 데이터를 암호화하여 안전하게 전송하는 프로토콜
TLS(Transport Layer Security): SSL의 보완 버전
📌 쿠키 & 세션
쿠키 → 클라이언트(브라우저)에 저장되는 데이터
세션 → 서버에서 저장되는 데이터
📌 JWT (JSON Web Token)
사용자 인증 정보를 안전하게 관리하기 위한 토큰
서버에서 세션을 저장하지 않아도 인증 유지 가능
🚀 정리
✔ IP 주소와 포트 번호를 통해 네트워크에서 장치를 식별
✔ DNS를 통해 도메인과 IP 주소를 변환
✔ TCP(신뢰성 보장)와 UDP(빠른 전송) 비교
✔ HTTP는 상태를 저장하지 않으며, HTTPS는 보안 강화 버전
✔ 쿠키와 세션의 차이, JWT의 역할 이해하기
Subscribe to my newsletter
Read articles from KiwiChip directly inside your inbox. Subscribe to the newsletter, and don't miss out.
Written by

KiwiChip
KiwiChip
I'm currently learning Python and studying RAG (Retrieval-Augmented Generation).