핵심 인사이트 (3줄 요약)
- 본질: YANG 데이터 모델링은 SDN/NFV에서 핵심 동작과 제약을 이해하게 해 주는 개념이다.
- 가치: YANG 데이터 모델링을 이해하면 정책 유연성과 자동화 수준 사이의 균형을 더 정확히 볼 수 있다.
- 판단 포인트: 설계 시에는 개념 자체보다 적용 조건, 운영 복잡도, 인접 기술과의 경계를 함께 판단해야 한다.
Ⅰ. 개요 및 필요성
- 장비 제조사(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 데이터 모델링은 비슷한 기술들 사이의 차선을 구분하는 분기점과 같다. 어디서 갈라지는지 알아야 헷갈리지 않는다.
Ⅳ. 실무 적용 및 기술사 판단
- YANG은 "데이터는 이런 모양(XML 트리)으로 생겨야 해"라고 **서식(형식)**을 짜줍니다.
- NETCONF는 그 YANG 서식에 맞춰 예쁘게 작성된 실제 XML 데이터를 들고, SSH 터널을 뚫어서 장비로 직접 **배달(프로토콜)**합니다.
- 이 둘의 결합으로, 파이썬(Python) 개발자는 장비 제조사 매뉴얼을 볼 필요 없이 YANG 모델 파일만 딱 열어보면 "아, 이 장비는 IP 세팅할 때 요런 모양으로 던지면 되는구나!" 하고 10분 만에 자동화 코드를 짜낼 수 있습니다.
실무 체크리스트
- 요구사항과 병목 지점을 먼저 수치화한다.
- 운영 복잡도와 도입 효과를 함께 검증한다.
- 인접 기술과의 연계를 배포 전에 점검한다.
- 📢 섹션 요약 비유: 옛날엔 은행(네트워크 장비)에 대출(설정)을 받으러 갈 때 규격화된 양식이 없었습니다. 손님마다 줄 없는 이면지에 삐뚤빼뚤하게 자기 맘대로 신상정보를 써서 내밀었기 때문에(비표준 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줄 비유 설명
- 장난감 차를 움직이는 조종기와 차체를 따로 생각하면 바꾸기 쉬워져요.
- 이 개념은 네트워크의 머리와 몸을 나눠 더 쉽게 프로그램하게 해줘요.
- 그래서 새 규칙을 더 빨리 넣고 바꿀 수 있어요.