핸드쉐이킹 (Handshaking)

핵심 인사이트 (3줄 요약)

두 장치 간 통신 준비를 확인하는 프로토콜. 송신자와 수신자가 서로 준비되었음을 확인한 후 데이터 전송을 시작한다. 비동기 통신에서 데이터 손실을 방지한다.


📝 기술사 모의답안 (2.5페이지 분량)

📌 예상 문제

"핸드쉐이킹 (Handshaking)의 개념과 핵심 원리를 설명하고, 비교 분석 및 실무 적용 방안을 기술하시오."


Ⅰ. 개요

1. 개념

핸드쉐이킹(Handshaking)은 두 장치가 통신하기 전 서로 준비되었음을 확인하는 절차다. 신호를 주고받으며 동기화한다.

비유: "전화 통화" - "여보세요?" "네, 들려요?" 후 대화 시작


Ⅱ. 구성 요소 및 핵심 원리

2. 기본 핸드쉐이킹

장치 A (송신)          장치 B (수신)
     │                     │
     │───── Request ──────→│ "데이터 보낼게!"
     │                     │
     │←──── Acknowledge ───│ "준비됐어!"
     │                     │
     │────── Data ────────→│ (데이터 전송)
     │                     │
     │←──── Complete ──────│ "받았어!"

3. 하드웨어 핸드쉐이킹

병렬 포트 (Centronics) 예시:

송신측:              수신측:
┌─────┐              ┌─────┐
│     │── Strobe ───→│     │
│  A  │              │  B  │
│     │←── Ack ──────│     │
│     │── Data ─────→│     │
└─────┘              └─────┘

1. A가 Strobe 신호 (데이터 준비됨)
2. B가 데이터 읽고 Ack 신호
3. A가 다음 데이터 준비

4. 소프트웨어 핸드쉐이킹

XON/XOFF 프로토콜:

송신측                수신측
  │                     │
  │────── Data ────────→│
  │────── Data ────────→│
  │                     │ (버퍼 거의 참)
  │←───── XOFF ─────────│ "잠깐 멈춰!"
  │   (전송 중지)        │
  │                     │ (버퍼 처리)
  │←───── XON ──────────│ "다시 보내!"
  │────── Data ────────→│

5. I2C 핸드쉐이킹

I2C 통신:

Master              Slave
  │                   │
  │─── Start ─────────→
  │─── Address ───────→
  │←── ACK ────────────│ (슬레이브 있음)
  │─── Data ──────────→
  │←── ACK ────────────│
  │─── Stop ──────────→

ACK = Acknowledge (Low)
NACK = Not Acknowledge (High)

6. TCP 3-way 핸드쉐이크

네트워크 연결:

Client              Server
  │                   │
  │─── SYN ──────────→│ (연결 요청)
  │                   │
  │←── SYN+ACK ───────│ (요청 수락 + 연결 요청)
  │                   │
  │─── ACK ──────────→│ (수락 확인)
  │                   │
  │═══ 연결 완료 ═════│

Ⅲ. 기술 비교 분석

7. 핸드쉐이킹 vs 폴링

특징핸드쉐이킹폴링
동기화신호 기반주기적 확인
효율높음낮음
복잡도높음낮음
지연낮음높음

8. 장단점

장점단점
신뢰성 높음오버헤드
동기화 보장추가 신호선 필요
흐름 제어 가능구현 복잡

Ⅳ. 실무 적용 방안

9. 실무에선? (기술사적 판단)

  • 임베디드: GPIO, UART 핸드쉐이킹
  • 네트워크: TCP, TLS 핸드쉐이크
  • 버스: I2C, SPI Acknowledge
  • USB: 열거(Enumeration) 과정

Ⅴ. 기대 효과 및 결론

효과 영역내용정량적 목표
성능 향상처리 속도·응답 시간 개선기존 대비 20~40% 향상
비용 절감운영비·인프라 비용 절감연간 15~30% 절감
품질/안정성가용성·장애 감소UpTime 99.9% 이상

※ 참고 표준: 해당 기술 관련 NIST / ISO / IEEE / 과기정통부 가이드라인


어린이를 위한 종합 설명

핸드쉐이킹를 쉽게 이해해보자!

두 장치 간 통신 준비를 확인하는 프로토콜. 송신자와 수신자가 서로 준비되었음을 확인한 후 데이터 전송을 시작한다. 비동기 통신에서 데이터 손실을 방지한다.

왜 필요할까?
  기존 방식의 한계를 넘기 위해

어떻게 동작하나?
  복잡한 문제 → 핸드쉐이킹 적용 → 더 빠르고 안전한 결과!

핵심 한 줄:
  핸드쉐이킹 = 똑똑하게 문제를 해결하는 방법

비유: 핸드쉐이킹은 마치 요리사가 레시피를 따르는 것과 같아. 혼란스러운 재료들을 정해진 순서대로 조합하면 → 맛있는 요리(최적 결과)가 나오지! 🍳