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

  1. 본질: YANG 데이터 모델링은 SDN/NFV에서 핵심 동작과 제약을 이해하게 해 주는 개념이다.
  2. 가치: YANG 데이터 모델링을 이해하면 정책 유연성과 자동화 수준 사이의 균형을 더 정확히 볼 수 있다.
  3. 판단 포인트: 설계 시에는 개념 자체보다 적용 조건, 운영 복잡도, 인접 기술과의 경계를 함께 판단해야 한다.

Ⅰ. 개요 및 필요성

  • 장비 제조사(Vendor)마다 기계를 통제하는 명령어와 데이터 생김새가 완전히 달랐습니다.
  • 자동화 스크립트(파이썬)를 짜는 개발자는 시스코용 코드 100줄, 아리스타용 코드 100줄을 일일이 다르게 짜야 했고(하드웨어 종속), 코드가 수백만 줄로 불어나는 스파게티 지옥에 빠졌습니다.
[NETCONF (Network Configu…]
    │
    ▼
[YANG 데이터 모델링]
    │
    └──▶ [RESTCONF]
  • 📢 섹션 요약 비유: YANG 데이터 모델링은 왜 필요한지 보여주는 교통 규칙 표지판과 같다. 문제가 생긴 배경을 알면 이후 선택도 쉬워진다.

Ⅱ. 아키텍처 및 핵심 원리

  • 개념: 네트워크 장비의 설정 데이터(Configuration), 상태 데이터(State), 알람(RPC) 등의 **데이터 생김새(타입, 제약 조건, 계층 구조)를 컴퓨터와 인간이 모두 쉽게 읽을 수 있도록 정의해 놓은 '데이터 모델링 스키마(Schema) 언어'**입니다. (RFC 6020 표준)
  • 비유: YANG 자체는 데이터를 담아 보내는 택배 박스(NETCONF)가 아닙니다. 택배 박스 안에 들어갈 "주문서 양식(빈칸 서식 파일)" 그 자체입니다.
[NETCONF (Network Configu…]
    │
    ▼
[YANG 데이터 모델링]
    │
    └──▶ [RESTCONF]
  • 📢 섹션 요약 비유: YANG 데이터 모델링의 내부 원리는 기계의 톱니바퀴처럼 맞물려 돌아간다. 한 부분이 어긋나면 전체 효과가 떨어진다.

Ⅲ. 비교 및 연결

YANG 코드를 뜯어보면 프로그래밍 언어의 뼈대(Class)를 잡는 것과 완전히 똑같습니다.

1. 계층적 트리 구조 (Tree Structure)

  • 장비의 설정을 나뭇가지처럼 분류합니다.
    • [인터페이스] ➜ 그 밑에 [이더넷 1번], [이더넷 2번] ➜ 그 밑에 [IP 주소], [동작 상태]
  • 이 구조 덕분에 "이더넷 1번 포트의 IP 주소를 가져와라"라는 명령을 직관적인 경로로 뚝딱 만들 수 있습니다.

2. 엄격한 데이터 타입 강제 (Data Typing & Constraints) 🌟

YANG의 가장 무서운 파워입니다. 사람이 실수(휴먼 에러)하는 걸 원천 차단합니다.

  • 예시: 포트 번호(Port)를 적는 빈칸(Leaf)을 정의할 때, YANG 모델에 type uint16; range "1..65535"; 라고 못을 박아둡니다.
  • 만약 관리자가 술에 취해서 포트 번호에 65536이나 문자열 abc를 적어서 NETCONF로 쏘면? 장비에 들어가기도 전에 YANG 파서(Parser)가 "야! 서식에 안 맞잖아!" 하고 에러를 뿜으며 전송 자체를 막아버립니다. 완벽한 무결성 방패입니다.

3. 설정(Config)과 상태(State) 데이터의 분리

  • Config 데이터: 관리자가 "IP를 10.0.0.1로 바꿔라"라고 세팅하는 값. (수정 가능)
  • State 데이터: 현재 장비의 "CPU 온도 80도", "팬 회전수 300" 같은 현재 상태 값. (읽기 전용, 수정 불가)
  • YANG은 이 둘의 속성을 완벽히 분리해(config false;) 실수로 쿨러 온도를 임의 조작하는 미친 짓을 막습니다.

YANG 데이터 모델링을 볼 때는 앞뒤 개념과의 경계를 함께 봐야 전체 흐름이 선명해진다. NETCONF (Network Configu…가 기반 조건을 만든다면, YANG 데이터 모델링은 그 위에서 핵심 메커니즘을 구현하고, RESTCONF는 이를 더 확장된 적용 단계로 연결한다. 따라서 단일 정의보다 정책 유연성과 자동화 수준에 어떤 차이를 만드는지 비교하는 것이 중요하다.

관점선행 개념현재 개념확장 개념
초점NETCONF (Network Configu…의 기반 정리YANG 데이터 모델링의 핵심 동작RESTCONF의 확장 적용
자원 관점기본 조건 확보정책 유연성 최적화규모와 범위 확대
판단 포인트도입 가능성 확인현재 메커니즘의 적합성 판단운영·확장 전략 연결
  • 📢 섹션 요약 비유: YANG 데이터 모델링은 비슷한 기술들 사이의 차선을 구분하는 분기점과 같다. 어디서 갈라지는지 알아야 헷갈리지 않는다.

Ⅳ. 실무 적용 및 기술사 판단

  1. YANG은 "데이터는 이런 모양(XML 트리)으로 생겨야 해"라고 **서식(형식)**을 짜줍니다.
  2. NETCONF는 그 YANG 서식에 맞춰 예쁘게 작성된 실제 XML 데이터를 들고, SSH 터널을 뚫어서 장비로 직접 **배달(프로토콜)**합니다.
  3. 이 둘의 결합으로, 파이썬(Python) 개발자는 장비 제조사 매뉴얼을 볼 필요 없이 YANG 모델 파일만 딱 열어보면 "아, 이 장비는 IP 세팅할 때 요런 모양으로 던지면 되는구나!" 하고 10분 만에 자동화 코드를 짜낼 수 있습니다.

실무 체크리스트

  1. 요구사항과 병목 지점을 먼저 수치화한다.
  2. 운영 복잡도와 도입 효과를 함께 검증한다.
  3. 인접 기술과의 연계를 배포 전에 점검한다.
  • 📢 섹션 요약 비유: 옛날엔 은행(네트워크 장비)에 대출(설정)을 받으러 갈 때 규격화된 양식이 없었습니다. 손님마다 줄 없는 이면지에 삐뚤빼뚤하게 자기 맘대로 신상정보를 써서 내밀었기 때문에(비표준 CLI), 은행원은 이걸 해독하느라 시간이 다 갔습니다(자동화 실패). YANG(양) 모델은 전국 모든 은행이 100% 똑같이 통일하여 사용하는 구멍 송송 뚫린 완벽한 **'표준 대출 신청서 양식지'**입니다. 이 양식지에는 "주민번호 칸에는 무조건 숫자 13자리만 써라!(데이터 타입 강제)"라고 깐깐한 규칙이 박혀 있습니다. 손님이 이 빈칸 규칙에 맞춰 예쁘게 글씨를 채워 넣은 뒤(XML화), 우체국 특급 등기(NETCONF)를 통해 은행으로 쏴 보내면, 은행 컴퓨터는 0.1초 만에 양식지를 스캔해 오류 없이 대출 업무(스위치 세팅)를 완벽하게 자동화 처리하는 기적의 데이터 뼈대입니다.

Ⅴ. 기대효과 및 결론

YANG 데이터 모델링은 SDN/NFV를 이해할 때 핵심 축을 잡아 주는 개념이다. 올바르게 적용하면 정책 유연성 개선과 구조적 단순화에 기여하지만, 조건을 잘못 잡으면 오히려 복잡도와 운영 부담이 커질 수 있다. 앞으로는 RESTCONF, 프로그래머블 네트워크, 자동화 운영과의 결합을 통해 더 정교하게 발전할 가능성이 크다. 따라서 이 개념은 정의 자체보다 “언제 쓰고 언제 다른 방법으로 넘길 것인가”의 관점으로 기억하는 것이 좋다. 향후에는 프로그래머블 네트워크 같은 자동화 흐름과 결합되어 더 정교한 형태로 확장될 가능성이 크다.

  • 📢 섹션 요약 비유: YANG 데이터 모델링은 큰 흐름 속에서 기억해야 오래 남는다. 지금의 장점과 다음 확장 방향을 같이 보면 전체 그림이 선명해진다.

📌 관련 개념 맵

개념연결 포인트
NETCONF (Network Configu…현재 개념이 등장하기 전에 갖춰야 할 배경이나 인접 선행 개념이다.
제어 평면 (Control Plane)정책과 경로 결정을 담당한다.
데이터 평면 (Data Plane)실제 패킷 전달을 수행한다.
RESTCONF현재 개념이 확장되거나 적용 단계로 이어질 때 자주 함께 언급된다.

📈 관련 키워드 및 발전 흐름도

[선행 개념: NETCONF (Network Configu…]
    │
    ▼
[현재 개념: YANG 데이터 모델링]
    │
    ├──▶ [확장 A: RESTCONF]
    └──▶ [확장 B: 프로그래머블 네트워크]

YANG 데이터 모델링는 NETCONF (Network Configu…에서 출발해 현재 메커니즘을 정교화하고, 이후 RESTCONF와 프로그래머블 네트워크 같은 확장 흐름으로 이어진다고 보면 기억이 오래간다.

👶 어린이를 위한 3줄 비유 설명

  1. 장난감 차를 움직이는 조종기와 차체를 따로 생각하면 바꾸기 쉬워져요.
  2. 이 개념은 네트워크의 머리와 몸을 나눠 더 쉽게 프로그램하게 해줘요.
  3. 그래서 새 규칙을 더 빨리 넣고 바꿀 수 있어요.