파이썬을 처음 시작했을 때 라이브러리/패키지, 모듈, 함수/클래스 간의 개념이 머릿속에 정확하게 자리 잡히지 않아서 고생한 적이 있었습니다. 그래서 그 개념을 간략하게 설명하고 다음 포스팅에서 각각의 사용법에 대하여 설명하겠습니다.

FunctionModuleClass

라이브러리(Library)

라이브러리와 패키지는 둘다 다른 프로그램에서 포함하여 사용할 수 있는 일종의 코드 모음이라고 생각하면 쉽습니다.

패키지(Package)

일반적으로 패키지와 라이브러리 사이의 경계가 조금 모호한데, 사용중인 프로그래밍 언어마다 그 정의가 조금씩 달라질 수 있습니다. 파이썬에서는 패키지는 패키지 관리자를 사용하여 설치하기 위한 준비된 라이브러리입니다. 가끔은 라이브러리를 배포하는 메커니즘을 말하기도 합니다.

#참고: https://wikidocs.net/1418
#가상으로 game 패키지가 있다고 할 때의 structure 예

game/
    __init__.py
    sound/ 
        __init__.py 
        echo.py 
        wav.py 
    graphic/ 
        __init__.py
        screen.py
        render.py
    play/ 
        __init__.py
        run.py
        test.py

모듈(Module)

파이썬에서는 모듈의 기능을 활용하여 코드를 분리하고 공유합니다. 이때 여러 기능들(함수, 변수, 클래스 등)을 따로 구현하여 파이썬 파일(.py)을 모듈(module)이라고 합니다. 가끔 script라고도 부릅니다.

함수(Function)

함수는 하나의 기능성을 가진 코드의 집합을 말합니다. 그리고 함수를 사용하는 것을 흔희 함수를 호출한다라고 표현하고, 호출할 때 괄호 ( )내부에 매개변수를 넣어 최종적으로 리턴값을 부릅니다.

def 함수 이름():
    문장

클래스(Class)

python을 포함한 Java, Javascript, C#, C++, C등 제가 다룰 줄 아는 언어가 많지 않지만, 이들 중에서 C언어를 제외한 모든 프로그래밍 언어는 클래스(class)를 기반으로 객체(object)를 만들고, 그러한 객체를 우선으로 생각해서 프로그래밍을 한다는 의미로 객체 지향 프로그래밍 언어(Object Oriented Programming Language)라고 합니다.

위에서 간략하게 설명드린 라이브러리, 패키지, 모듈, 함수, 클래스에 대하여 다음 포스팅에서 조금 더 깊게 설명하겠습니다.