지난 튜토리얼에 이어, 계속해서 파이썬 스크립트의 기본적인 개념에 대해 소개하도록 하겠습니다. 스크립트, 함수(function), 클래스(class) 그리고 기타 시스템 모듈(sys module)에 대해 진행합니다.


Python Skeleton Script:

아래의 코드는 파이썬을 처음 시작할 때 주로 사용하는 가장 기본적인 쉘 스크립트입니다. 먼저 운영체제에게 지금부터 사용하는 스크립트에 대한 인터프리터는 “/usr/bin/env python”이라는 것을 명시합니다. 그리고 메인 함수인 “def main()”을 선언하고, 가장 아래 2줄에 나와있는 것 처럼 main() 함수를 먼저 호출할 수 있도록합니다. 이렇게함으로써 소스코드의 가독성을 높이고, 쉽게 수정할 수 있습니다.


Functions:

함수(function)란, 코드의 일부분을 따로 떼어서 특정한 작업을 수행한 뒤에 그 결과값을 반환해주도록 하는 방식으로 프로그램의 효율성을 높입니다. 아래는 함수 개념에 대한 대략적인 예시를 설명해주고 있습니다.


Classes:

클래스 개념을 처음 들으시는 분이라면, 조금 생소하실겁니다. 이는 새로운 형태의 프로그래밍 패러다임이기 때문입니다. 클래스는 데이터(attribute)와 함수(function)들을 논리적으로 그룹화하여 표현합니다. 클래스를 정의한 후에 그것을 사용할 때는 해당 클래스의 객체(object)를 만들어서 사용하면 됩니다. 그렇게하면 대응되는 attribute와 method를 상속(inherit)받아서 가져옵니다. 이것이 대략적인 객체지향 프로그래밍(object-oriented programming)의 개념입니다.


아직 이 개념이 어려워서 헷갈리신다면, 괜찮습니다. 클래스를 통해 그저 코드의 지저분한 부분을 조금 더 간결하게 할 수 있다고 생각하시면 됩니다. 아래의 코드는 “Domain”이라는 이름의 새로운 클래스를 정의하는 것을 보여줍니다. 이때에는 “class”라는 키워드를 씁니다. 클래스 안에 다양한 함수들을 정의하였는데, 이것은 추후에 Domain의 객체를 생성했을 때 호출가능하게 됩니다.


Domain클래스로부터 domain이라는 인스턴스를 생성하였습니다. 해당 클래스에 포함되어있는 Method들을 그대로 가져와서 사용할 수 있습니다. 다시 말씀드리지만 이 개념은 처음에는 다소 혼란스러울 수 있으나, 파이썬과 프로그래밍 패러다임에 대해 조금 익숙하지신다면 금새 적응하실 것입니다. 직접 파이썬 스크립트로 클래스를 구현해보시고, 몇번 실행해보시는 것이 이해를 돕는 최선의 방법일 것입니다.


Handling CLI Arguments with “sys”:

이 강좌에서 마지막으로 설명드릴 개념은 sys module입니다. 이것은 CLI(Command line interface)를 통해 입력된 명령어를 가져와서 프로그램 코드 안에서 일종의 변수로 사용할 수 있게합니다. 문법은 아주 단순합니다. sys.argv[0]라 함은 현재 수행된 스크립트의 이름을 뜻합니다. 또한 각각의 인자(argument, parameter)들이 순서에 맞게 지정됩니다. 아래의 예제를 확인해보세요.

해당 스크립트를 아래와 같이 몇개의 parameter와 함께 전달하면 그 결과가 나타납니다.


지금까지 기초적인 부분들을 다루어보았습니다. 새로운 파이썬 모듈과 기타 여러 built-in function을 잘 활용하면 여러분이 당면한 문제들을 더욱 쉽고 빠르게 해결할 수 있습니다. 다음 튜토리얼에서는 파이썬을 사용하여 네트워크 연결상태를 점검하는, 포트 스캐너(port scanner)에 대해 학습하도록 하겠습니다. 수고하셨습니다.


Reference : 

CybraryPrimal Security - Python for InfoSec Professionals Part 1: Getting Started (continued)

CPUU님의 창작활동을 응원하고 싶으세요?