본문 바로가기
Networking/Network Automation

네트워크 엔지니어를 위한 프로그래밍 기초 - 9

by 포항돼지 2021. 5. 24.

Sets

- Unordered : 순서가 없다. (Key값이나 Index값이 없다)(특정한 위치 값이 없으므로 어떤 값이 이 set안에 들어 있는가 안들어있는가 확인하는 이런 용도로 사용)

- Unique items : Set의 요소item 은 중복으로 존재할 수 없다. (Set에는 수정이 불가능한 값들이 들어와야 한다)

- Hashable : Set의 요소item은 hashable, 즉 immutable 값으로 number, string, tuples이 가능하다.(딕셔너리 X)

- { } 중괄호 사용: Dictionary와 같이 { } 중괄호 사용

- Mutable : Set의 요소item은 수정이 가능하다.

- 우리말로는 집합

 

 

 

중복이 존재 하는 값을 set을 만들어보자

 

이렇게 중복 되는 것들은 제거되고, 4가지 데이터만 남게 됨

 

if 문도 이렇게 set에다가 매칭시켜서 사용 가능

 

여기서 봐야 될꺼는, set으로 정의된 변수만 저렇게 걸러져서 나오지, 미리 정의된 devices_list를 프린트 하면 원래 값이 나옴

변수.add하면 set에 그 값이 추가가 됨

 

만약에 여러개의 값을 set에 추가 하고싶다면? 리스트 형태로 추가 가능

값을 삭제하려면 ... .remove하면 됨

 

즉 set은 어떠한 값을 중복을 판별하는 용도로 set자료 구조를 사용

 

 

데이터 자료형을 공부하면 프로그래밍 공부의 반정도가 끝났다라고 할만큼 데이터 자료형이 중요함

메모리에 저장된 데이터를 끄집어서 사용할때 어떻게 효과적으로 사용할수 있을까? 라는 관점으로 생각해서 공부 및 실습 해야함

 

Comparing Network Information

 

가장 많이 사용하는 작업은 Cisco 장비에 접속하여 명령어를 수행하고, 결과를 받아와서 그 결과의 값을 분석하고, 주어진 기준값과 비교하는 것이다.

예를들면 장비 100대의 sh version 결과값을 가져오려면, 하루정도 소요됨. 이것을 프로그래밍을 사용하면 엄청빨리 끝남.

이번 스크립트로 Device version 정보및 장비 이름을 가져올 것이다

 

현재 5.3.1 버젼이 아닌 장비들만 가져오기

 

이 각각의 Line을 리스트로 우선 만들기

 

 

이런 작업들을 가장 많이함. 리스트를 가져와서 거기서 맞지않는 정보들 출력 하는거라든지 그런거