1. 네트워크 통신의 접점, 소켓(Socket) 통신의 정의
개념: IP 주소와 포트(Port) 번호의 결합으로 구성되어, 네트워크상에서 컴퓨터 프로세스 간 양방향 통신을 가능하게 하는 소프트웨어적인 인터페이스(추상화된 연결점).
특징: * 지속성(Persistence): 한 번 연결되면 명시적으로 끊기 전까지 연결 상태 유지.
실시간성: 요청-응답 구조가 아닌 데이터 발생 즉시 송수신 가능.
2. 소켓 통신 방식 개념도 및 유형
가. 소켓 통신의 개념도
소켓은 OSI 7계층 중 전송 계층(Transport Layer)과 애플리케이션 계층 사이의 게이트웨이 역할을 수행합니다.
나. 소켓 통신의 주요 유형
| 유형 | 사용 프로토콜 | 특징 | 비고 |
| 스트림 소켓 | TCP | 연결 지향, 데이터의 신뢰성 및 순서 보장 | 파일 전송, HTTP |
| 데이터그램 소켓 | UDP | 비연결 지향, 빠른 속도, 데이터 손실 가능성 | 스트리밍, VoIP |
| Raw 소켓 | IP/ICMP | 프로토콜 헤더를 직접 제어해야 할 때 사용 | 패킷 분석, 보안 도구 |
3. TCP 소켓 및 웹소켓(WebSocket) 흐름 설명
가. TCP 소켓의 통신 흐름 (3-Way Handshaking 기반)
Server:
Socket()생성 →Bind()(포트 할당) →Listen()(대기) →Accept()(연결 수락).Client:
Socket()생성 →Connect()(연결 요청).Data Transfer: 연결 성립 후
Send()/Receive()를 통해 데이터 교환.Termination:
Close()를 통해 4-Way Handshaking 후 연결 종료.
나. 웹소켓(WebSocket)의 통신 흐름 (HTTP Upgrade 기반)
Handshake: 클라이언트가 HTTP 1.1의
Upgrade: websocket헤더를 담아 요청.Protocol Switching: 서버가
101 Switching Protocols로 응답하며 프로콜 전환.Bi-directional Message: 전이중(Full-duplex) 가상 회선을 통해 실시간 프레임 단위 데이터 교환.
4. 소켓 통신 방식과 HTTP 통신 방식 비교
| 구분 | 소켓 통신 (L4 기반) | HTTP 통신 (L7 기반) |
| 연결 방식 | Stateful (연결 상태 유지) | Stateless (연결 즉시 해제) |
| 통신 방향 | 양방향 (Full-duplex) | 단방향 (Request-Response) |
| 실시간성 | 매우 높음 (Push 가능) | 낮음 (Polling/Long Polling 필요) |
| 오버헤드 | 연결 유지 비용 발생 (적음) | 매 요청 시 헤더 포함 (많음) |
| 적합한 사례 | 실시간 게임, 채팅, 주식 차트 | 일반 웹 페이지, REST API |
5. 효율적인 소켓 통신 운영을 위한 기술적 제언
리소스 관리: 다수의 소켓 연결 시 서버 자원(File Descriptor 등) 고갈 방지를 위한 I/O 멀티플렉싱(Select, Poll, Epoll) 기법 적용 필수.
Keep-Alive 전략: 네트워크 중간 장비(방화벽 등)에 의한 비정상 종료를 막기 위한 주기적인 하트비트(Heartbeat) 패킷 송수신 구현 필요.
결언: 서비스의 특성에 따라 Stateless한 HTTP와 실시간성이 강한 소켓(WebSocket)을 적절히 혼합하는 하이브리드 아키텍처 설계가 DX 환경의 핵심 역량임.
댓글 없음:
댓글 쓰기