파이썬 공부
들어가며
지난 글에서는 def 키워드를 사용하여 우리만의 함수를 만드는 방법을 배웠습니다. 함수를 통해 특정 코드 뭉치를 재사용하고, 프로그램의 구조를 더 깔끔하게 만들 수 있었습니다.
하지만 만약 우리가 직접 만들기에는 매우 복잡한 기능, 예를 들어 임의의 난수를 생성하거나, 복잡한 수학 계산을 하거나, 웹 페이지의 정보를 가져오는 기능이 필요하다면 어떨까요? 이 모든 것을 처음부터 직접 만드는 것은 비효율적이며 때로는 불가능에 가깝습니다.
다행히도 파이썬의 가장 큰 강점 중 하나는 바로 ‘풍부한 생태계’입니다. 전 세계의 수많은 개발자가 만들어 놓은 유용하고 강력한 코드 묶음을 우리는 손쉽게 가져다 쓸 수 있습니다. 이러한 코드 묶음을 모듈(Module)이라고 부릅니다.
이번 글에서는 이미 만들어진 도구 상자를 활용하는 법, 즉 모듈을 어떻게 가져와서 사용하는지에 대해 알아보겠습니다.
모듈이란 무엇일까?
모듈(Module)은 간단히 말해, 파이썬 함수나 변수, 클래스 등을 모아놓은 하나의 파이썬 파일(.py 파일)입니다. 연관 있는 기능들을 하나의 파일에 정리해 둔 것이라고 생각하면 쉽습니다.
우리가 레고로 무언가를 만들 때, 필요한 모든 브릭을 직접 만들지 않고 이미 만들어진 다양한 모양의 브릭을 가져다 쓰는 것과 같습니다. 모듈은 프로그래밍 세계의 ‘레고 브릭’과 같아서, 우리는 이 브릭들을 가져와 조립하여 원하는 프로그램을 더 빠르고 쉽게 만들 수 있습니다.
파이썬을 설치하면 기본적으로 내장된 수많은 유용한 모듈들이 함께 설치되는데, 이를 파이썬 표준 라이브러리(Python Standard Library)라고 합니다. 이 라이브러리만 잘 활용해도 굉장히 다양한 작업을 수행할 수 있습니다.
모듈 가져와 사용하기: import
다른 파일에 있는 모듈의 기능을 현재의 코드에서 사용하려면, “이 모듈을 사용하겠다”고 파이썬에게 알려주는 과정이 필요합니다. 이 역할을 하는 명령어가 바로 import입니다.
가장 대표적인 두 가지 모듈, math와 random을 예로 들어 사용법을 알아보겠습니다.
1. 수학 계산을 위한 math 모듈
math 모듈은 이름 그대로 제곱근, 원주율(π), 삼각함수 등 다양한 수학 계산과 관련된 기능들을 제공합니다.
1
2
3
4
5
6
7
8
9
10
11
# 'math'라는 이름의 모듈을 가져옵니다.
import math
# math 모듈 안에 있는 원주율(pi) 변수를 사용합니다.
print("원주율(pi):", math.pi)
# math 모듈 안에 있는 제곱근(sqrt) 함수를 사용합니다.
print("16의 제곱근:", math.sqrt(16))
# math 모듈 안에 있는 올림(ceil) 함수를 사용합니다.
print("3.14를 올림:", math.ceil(3.14))
import 모듈이름으로 모듈을 가져온 뒤에는 모듈이름.변수 또는 모듈이름.함수() 형태로 해당 모듈에 포함된 기능을 사용할 수 있습니다.
2. 무작위 선택을 위한 random 모듈
random 모듈은 임의의 숫자(난수)를 생성하거나 리스트에서 무작위로 요소를 선택하는 등 무작위성과 관련된 기능들을 제공합니다.
1
2
3
4
5
6
7
8
9
10
11
# 'random' 모듈을 가져옵니다.
import random
# 1부터 6 사이의 임의의 정수 하나를 생성합니다. (주사위 던지기)
dice_num = random.randint(1, 6)
print("주사위 눈:", dice_num)
# 리스트의 요소 중 하나를 무작위로 선택합니다.
fruits = ['사과', '바나나', '딸기', '오렌지']
today_fruit = random.choice(fruits)
print("오늘의 과일:", today_fruit)
모듈을 가져오는 다양한 방법
모듈을 import하는 방법에는 몇 가지 다른 방식이 있습니다.
1. from 모듈이름 import 함수이름
모듈 전체가 아니라 그 안의 특정 함수나 변수만 가져오고 싶을 때 사용합니다. 이 방법을 사용하면 모듈이름.을 붙이지 않고 함수를 바로 사용할 수 있습니다.
1
2
3
4
5
# math 모듈에서 pi 변수와 sqrt 함수만 직접 가져옵니다.
from math import pi, sqrt
print("원주율:", pi)
print("16의 제곱근:", sqrt(16))
2. import 모듈이름 as 별명
모듈의 이름이 너무 길거나 다른 이름과 겹칠 경우, as를 이용해 별명을 붙여서 사용할 수 있습니다.
1
2
3
4
5
# random 모듈을 rd라는 별명으로 가져옵니다.
import random as rd
dice_num = rd.randint(1, 10)
print("임의의 숫자:", dice_num)
어떤 방법을 사용하든 기능은 동일하지만, 일반적으로는 첫 번째 방법인 import 모듈이름 형태가 가장 많이 사용됩니다. 코드의 다른 변수나 함수와 이름이 충돌할 가능성이 적고, 어떤 모듈의 기능인지 명확하게 보여주기 때문입니다.
마무리하며
이번 글에서는 파이썬의 강력한 기능인 모듈에 대해 배웠습니다. 모듈은 미리 만들어진 코드의 묶음이며, import 키워드를 통해 필요한 모듈을 불러와 그 안의 함수와 변수들을 사용할 수 있다는 것을 알게 되었습니다. math와 random 모듈을 통해 실제 활용법도 익혔습니다.
이제 우리는 바퀴를 다시 발명할 필요 없이, 이미 검증된 훌륭한 도구들을 가져와 우리의 프로그램을 더 강력하고 풍부하게 만들 수 있게 되었습니다.
지금까지 우리가 만든 프로그램들은 실행이 끝나면 변수에 저장했던 데이터가 모두 사라졌습니다. 만약 프로그램의 실행 결과를 파일로 저장하거나, 파일에 저장된 데이터를 읽어와서 처리하려면 어떻게 해야 할까요? 다음 글에서는 프로그램의 데이터를 영구적으로 보관할 수 있게 해주는 파일 입출력(File I/O)에 대해 알아보겠습니다.