본문 바로가기
컴퓨터&CS

네트워크 기초 (HTTP, HTTPS, TCP/IP, DNS, 웹 성능, 로드 밸런서, 보안)

by 노잉맨 2025. 2. 3.
네트워크 기본 개념

웹 개발자를 위한 네트워크 기본 개념

웹 개발에서는 네트워크에 대한 기본 이해가 필수적입니다. 이번 글에서는 HTTP/HTTPS, TCP/IP, DNS, 로드 밸런싱, 웹 보안 등의 핵심 개념과 웹 성능을 최적화하는 방법을 다룹니다.

1. HTTP와 HTTPS

웹 통신에서 가장 중요한 프로토콜인 HTTP(HyperText Transfer Protocol)와 보안이 강화된 HTTPS를 이해하는 것이 중요합니다.

1.1 HTTP의 특징

  • 무상태(Stateless) 프로토콜: 요청 간 상태 유지가 불가능
  • 텍스트 기반의 요청 및 응답 구조

GET /index.html HTTP/1.1
Host: example.com
        

1.2 HTTPS의 필요성

HTTPS는 SSL/TLS 암호화를 추가하여 보안을 강화합니다.

  • 데이터 암호화로 보안 강화
  • MITM(중간자 공격) 방지
  • SEO(검색 엔진 최적화) 개선

2. TCP/IP 개요

TCP/IP는 인터넷에서 데이터를 송수신하기 위한 기본 프로토콜입니다.

2.1 TCP와 UDP 비교

  • TCP(Transmission Control Protocol): 신뢰성 있는 연결 기반 프로토콜
  • UDP(User Datagram Protocol): 빠른 데이터 전송이 가능하지만 신뢰성이 낮음

// TCP 연결 예제 (Node.js)
const net = require('net');
const client = net.createConnection({ port: 8080 }, () => {
    console.log('서버에 연결됨');
    client.write('Hello, server!');
});
        

3. DNS(Domain Name System)

DNS는 도메인 네임을 IP 주소로 변환하는 시스템입니다.

3.1 DNS 동작 방식

  • 사용자가 브라우저에 URL 입력
  • DNS 서버에서 해당 도메인의 IP 주소를 조회
  • 클라이언트가 해당 IP 주소로 요청 전송

nslookup example.com
        

4. 로드 밸런싱(Load Balancing)

로드 밸런싱은 여러 서버에 트래픽을 분산시켜 성능과 가용성을 향상시키는 기술입니다.

4.1 로드 밸런서의 역할

  • 트래픽을 균등하게 분배하여 서버 과부하 방지
  • 장애 발생 시 대체 서버로 요청을 전달

4.2 로드 밸런싱 기법

  • Round Robin: 각 서버에 순차적으로 요청 전달
  • Least Connections: 가장 적은 연결을 보유한 서버에 요청 전달

// Nginx 로드 밸런싱 설정 예제
upstream my_backend {
    server server1.example.com;
    server server2.example.com;
}
server {
    location / {
        proxy_pass http://my_backend;
    }
}
        

5. 웹 보안 기초

보안은 네트워크 환경에서 가장 중요한 요소 중 하나입니다.

5.1 웹 보안 위협

  • XSS (Cross-Site Scripting): 악성 스크립트를 삽입하여 사용자 정보를 탈취
  • SQL Injection: 데이터베이스에 악성 SQL 문을 삽입
  • CSRF (Cross-Site Request Forgery): 사용자 권한을 악용하여 요청 수행

5.2 보안 최적화 방법

  • 입력 값 검증 및 필터링
  • SQL 프리페어드 스테이트먼트(Prepared Statement) 사용
  • 보안 헤더(Content Security Policy, CORS 등) 적용

// Express.js에서 보안 헤더 설정
const helmet = require('helmet');
const app = express();
app.use(helmet());
        

6. 결론: 네트워크 최적화와 보안 강화

  • HTTP/HTTPS: 웹 통신의 기본 및 보안 강화
  • TCP/IP: 데이터 전송 방식 이해
  • DNS: 네트워크 라우팅과 성능 최적화
  • 로드 밸런싱: 트래픽 분산 및 서버 안정성 향상
  • 웹 보안: XSS, SQL Injection 예방 및 보안 강화

웹 개발자는 네트워크 개념을 이해하고 최적화 기법과 보안 정책을 적용하여 보다 안정적이고 빠른 서비스를 제공해야 합니다.