본문 바로가기
Python

[Python] 파이썬 라이브러리(Python Libraries)

by Henry Cho 2022. 9. 8.
728x90

파이썬 라이브러리 (Python Libraries)


포스트 난이도: HOO_Intern

 

[Notice] 포스트 난이도에 대한 설명

안녕하세요, HOOAI의 Henry입니다. Bro들의 질문에 대한 내용을 우선적으로 포스팅이 되다 보니 각각의 포스트에 대한 난이도가 달라서 난이도에 대한 부분을 작성하면 좋겠다는 의견을 들었습니다

whoishoo.tistory.com


# 프로그래밍 언어, 파이썬

 

기계어로 구성된 프로그램을 개발하고 보완하는데 손쉽게 다루고자 사용하는 언어가 바로 프로그래밍 언어이다. 한마디로 프로그래밍 언어는 개발자를 위한 언어일 뿐 기계가 바로 이해할 수 없는 형태의 언어이다. 다행히도 기계어로 변환하는 걸 걱정할 필요 없이 개발자는 편하게 프로그래밍 언어를 통해서 프로그래밍을 하면 된다.

 

라이브러리를 이해하기 위해서는 먼저 파이썬이 프로그래밍 언어라는 점을 인지하고 있어야 한다. 이 말인 즉슨 파이썬은 언어일 뿐이지 프로그래밍에 사용되는 기능들을 모두 다 의미하는 것은 아니다. 마치 한국어에서 한글이 존재하지만 문법이 없는 것과 같은 상태가 바로 파이썬만 있는 것이다. 한마디로 프로그래밍 언어인 파이썬도 사람이 사용하는 언어와 비슷하게 생각하다면 이해하기가 훨씬 수월하다.


# 패키지, 모듈을 모두 포함하는 라이브러리

 

프로그래밍 언어마다 라이브러리가 존재하지만 라이브러리가 가지는 범위나 의미는 조금씩 다르다. 마치 각 나라별 언어마다 비슷한 의미의 단어나 문법이 존재하지만 완전히 똑같지 않은 것과 유사하다. 파이썬의 라이브러리는 패키지와 모듈을 모두 포함한 형태를 의미한다. 조금 더 쉽게 설명하자면, 모듈을 모아서 패키지가 되고 패키지가 모아져서 라이브러리가 된다고 볼 수 있다.

위의 그림처럼 라이브러리는 모듈과 패키지가 합쳐져 있는 걸 의미하며 대표적인 라이브러리는 아래와 같다.

  • PyTorch
  • Matplotlib
  • TensorFlow
  • SciPy

가장 유명하고 많이 사용되는 파이썬 라이브러리들이기 때문에 한 번쯤은 들어봤을 것이다. 이처럼 라이브러리는 파이썬 프로그래밍에 있어서 꼭 필요하며 이미 익숙할 만큼 많이 사용하고 있다. 


# numpy는 라이브러리? 패키지?

 

솔직히 파이썬에서 패키지와 라이브러리의 구분이 명확하지는 않다. 개발자에 따라서 어떤 사람은 라이브러리라고 하고 어떤 사람은 패키지라고도 부른다. 그 이유는 패키지와 라이브러리의 기준이 명확이 구분되어 있지 않기 때문이다. 상대적으로 다소 복잡한 패키지의 경우에는 라이브러리라고도 부르는데 대표적인 예가 바로 Numpy이다. Numpy의 경우에는 다른 패키지들에 비해서 복잡하고 다양한 기능을 포함하고 있다 보니 라이브러리라고도 부른다.

 

반대로 위에서 언급한 라이브러리들은 그냥 패키지라고도 부르기도 한다. 라이브러리라는 명칭을 사용하지 않고 그냥 패키지를 비롯하여 파이썬의 라이브러리들도 모두 패키지라고도 부르는 것이다. 그렇다 보니 처음 파이썬을 배우는 개발자들에게 있어서는 헷갈릴 수밖에 없다. 프로그래밍 언어는 결국 기계를 위한 것이 아니라 사람이 개발을 편하게 하기 위해서 만들어진 언어이다. 코딩을 할때 사용한다고 하지만 결과적으로 언어적 특징을 가질 수 밖에 없다. 왜냐하면 프로그래밍 언어를 사용하는 주체가 외계인이나 동물이 아닌 사람이기 때문이다. 따라서 언어에서 완벽히 구분되는 경우가 없듯이 프로그래밍 언어에서도 이와 같은 경우가 나타난다고 볼 수 있다.


# 프레임워크와 라이브러리

 

파이썬 라이브러리에 대해서 배우다 보면 프레임워크(Framework)라는 걸 들어본 적이 있을 것이다. 프레임워크 또한 라이브러리처럼 모듈과 패키지를 모두 포함하고 있는 형태를 의미하지만 라이브러리와는 조금 다르다. 프레임워크는 단어에서도 유추할 수 있듯이 프로그래밍에 있어서 아키텍처인 요소도 포함하고 있다. 건물로 비교하자면 마치 뼈대나 틀 같은 것을 의미하는 것이 바로 프레임워크이다.

 

그렇다 보니 라이브러리보다도 더 복잡한 방식을 가지고 있는 것이 프레임워크에 해당한다. 대표적인 프레임워크로는 Django, Flask 등이 있다. 아마 Django나 Flask도 파이썬을 공부하다 보면 많이 용어일 것이다. 말로만 들어봤던 이 녀석들이 바로 프레임워크에 해당한다. 프레임워크와 라이브러리를 예시로 비교하자면, 프레임워크는 건물에서 뼈대나 틀과 같은 기초적인 부분을 담당한다면, 라이브러리는 건물 안에 들어가는 인테리어와 비슷하다고 볼 수 있다.

 

파이썬을 하다보면 이미 대부분 사용하고 기능들이지만 명확히 각각의 기능이나 용어들을 이해하지 못해서 혼란스러울 때가 있다. 하지만 막상 각 기능들이 하는 역할에 대해서 명확히 이해한다면 어렵지 않다.


 

728x90

'Python' 카테고리의 다른 글

[Python] 파이썬 \r, \n, \b  (0) 2022.09.28
[Python] 파이썬 변수명 규칙: snake_case, CamelCase  (2) 2022.09.24
[Python] 파이썬 웹기반 IDE: Jupyterlab, Colab  (0) 2022.09.03
[Python] Sets란?  (0) 2022.08.08
[Python] defaultdict  (0) 2022.08.04

댓글