파이썬을 공부하다 보면 모듈, 패키지, 함수라는 말이 나오는데 이 부분이 나처럼 잘 모르는 사람은 그게 뭔지, 또 어떻게 다른지 헷갈리는 부분이다. 여기에 더불어 명령어라는 말도 자주 쓰이는데 이 부분에 대해 개념적으로 이해할 필요가 있다. 참고로 파이썬은 대소문자를 구분하기 때문에 염두에 두어야 한다. A = 1, a = 1은 대문자와 소문자를 다른 것으로 인식하여 두 개의 변수를 생성한 것이다.
함수란 무엇인가?
먼저 함수는 우리가 결과를 확인하기 위해 썼던 것들 중 print(), max()와 같은 것들이 함수이다. 그렇다면 함수란 어떤 작업들을 실행하기 위해 정의한 것이다. 함수는 print(), max()와 같이 누군가가 만들어 둔 것들이 있고, 기본으로 탑재된 함수들은 그냥 사용할 수 있는 것이다. 그리고 추가적으로 누군가가 만들어 둔 함수를 사용하기 위해서는 모듈이나 패키지를 불러와 사용하기도 한다. 마지막으로는 내가 직접 필요한 함수를 만들어 사용할 수도 있다. 이번에는 개념적인 설명을 위한 것이니 직접 함수를 만드는 방법은 나중에 다뤄보도록 한다.
모듈이란 무엇인가?
모듈은 파이썬의 확장자인 '.py'로 만들어져 있으며 함수, 클래스, 전역 변수 등을 모아둔 것을 말한다. 확장자를 예를 들면 엑셀의 경우는 'xls', 'xlsx'와 같이 끝나는데 파이썬은 'py'로 끝나야 파이썬 파일로 인식하는 것 같다. 여기서 클래스니 전역 변수니 하는 잘 모르는 용어들이 또 나오는데 차근차근 알아가도록 하고, 단순하게 설명하자면 함수들의 모음이 모듈이라고 생각하면 편하다. 또한 모듈은 import를 통해서 불러와 사용할 수 있다. 모듈을 사용하기 위해서는 반드시 import를 해야 사용 가능하다. 지난번 math와 같은 경우가 모듈을 import 한 것이다.
- 모듈 사용을 위한 import 예시 : import math
자, 여기서 지난 번 사용한 걸 떠올려보면 불러온 모듈의 함수를 사용할 때는 '모듈명.함수명'으로 썼다. 'math.floor' 와 같이 말이다. 모듈에 있는 여러 가지 명령어를 쓸 때는 앞부분과 같이 쓰는 게 맞지만 floor만 쓰려고 할 때는 매번 앞에 'math.'이라는 부분을 써야 해서 불편하다. 이 경우는 다음과 같이 사용하면 모듈명 없이 활용 가능하다.
- from 모듈명 import 함수명 → from math import floor
- 실행 시는 floor(3.5) → 결과는 3
위와 같이 하나가 아니라 모듈 내 여러 가지 함수를 사용해야 하는데 함수명이 긴 경우에는 매번 쓰기 불편하다. 그럴 땐 다음과 같이 모듈명을 별칭으로 바꾸어 짧게도 사용 가능하다.
- import 모듈명 as 별칭 → import math as m
- 실행 시는 m.floor(3.5), m.ceil(3.5)로 사용 가능
패키지란 무엇인가?
패키지는 여러 모듈을 한 폴더 안에 넣어 둔 것을 패키지라고 한다. 아까 모듈은 확장자가 '.py' 파이썬 파일이라고 했다면 '.py' 인 파일을 여러 개 모아둔 것을 패키지라고 생각하면 된다. 개념만 다를 뿐 파이썬 내에서 활용은 모듈과 마찬가지로 import로 불러오면 되는 것 같다.
그 외 라이브러리라는 용어도 있는데 찾아보니 패키지와 모듈을 모아둔 것이라고 한다. 패키지도 어떤 사람이 자신이 필요한 모듈을 만들어 둔 것이라면 라이브러리는 그 모듈을 모아둔 패키지 외 추가로 필요한 기능이 있어 그걸 한 데 모아둔 것을 만든 것으로 생각된다.
결국 파이썬을 잘하기 위해서는 본인이 엄청난 코딩 실력과 아이디어가 있다면 혼자 처음부터 다 만들어서 사용해도 되겠지만 남들이 잘 만들어 둔 게 있으면 그걸 잘 알아두고 사용하는 게 실력의 일부라 생각된다.
'방구석코딩 > 파이썬 기초문법' 카테고리의 다른 글
[파이썬 기초] 문자열의 인덱싱과 슬라이싱 (0) | 2022.05.02 |
---|---|
[파이썬 기초] 자료형 - 숫자형/문자형 자료 사용법 (0) | 2022.04.29 |
[파이썬] Random함수, 문자열 줄 바꾸기 (0) | 2022.04.27 |
[파이썬] 기초문법(2) - 기초 연산자/함수 사용 (0) | 2022.04.25 |
[파이썬] 기초문법(1) - 변수 및 결과출력 (0) | 2022.04.22 |
댓글