목차
1. 외부 라이브러리란?
2. pip
3. Faker
4. sympy
파이썬을 설치하면 기본적으로 함께 설치되는 라이브러리를 표준 라이브러리라고 한다.
반면 외부 라이브러리는 파이썬에 기본으로 포함되어 있지 않기 때문에 사용하기 전에 별도로 설치해야 한다.
표준 라이브러리
→ 파이썬 설치 시 기본 제공
→ 별도 설치 필요 X
외부 라이브러리
→ 기본 제공 X
→ pip 등을 이용해 설치 필요
예를 들어
Faker
sympy
requests
pandas
numpy
등이 외부 라이브러리에 해당한다.
외부 라이브러리는 필요한 기능을 직접 처음부터 만들지 않고 다른 사람이 만들어 둔 기능을 가져와 사용할 수 있게 해 준다.
pippip은 파이썬의 외부 패키지를 설치하고 관리하는 도구이다.
외부 라이브러리를 사용하려면 먼저 pip을 이용하여 설치하는 경우가 많다.
pip
↓
패키지 검색
↓
다운로드
↓
설치
또한 설치하려는 패키지가 다른 패키지를 필요로 한다면 필요한 패키지까지 함께 설치해 준다.
파이썬 패키지는 주로 PyPI(Python Package Index) 에 등록되어 있다.
쉽게 생각하면
PyPI
→ 파이썬 패키지가 모여 있는 저장소
pip
→ PyPI에 있는 패키지를 설치해 주는 도구
라고 이해하면 된다.
pip install패키지를 설치할 때는 다음과 같이 사용한다.
python -m pip install 패키지이름
예를 들어
python -m pip install Faker
처럼 사용할 수 있다.
구조는
python -m pip install SomePackage
└── 설치할 패키지
이다.
패키지 이름만 지정하면 기본적으로 최신 버전을 설치한다.
pip install에서 python -m은?python -m pip install Faker
여기서
python
→ 현재 사용하는 파이썬으로
-m pip
→ pip 모듈을 실행하고
install Faker
→ Faker를 설치한다.
라고 이해하면 된다.
특히 컴퓨터에 여러 파이썬 버전이 설치되어 있을 경우
pip install Faker
보다
python -m pip install Faker
처럼 작성하면 현재 사용하는 파이썬 환경에 설치되는 것을 더 명확하게 확인할 수 있다.
pip uninstall설치했던 패키지를 삭제할 때는 uninstall을 사용한다.
python -m pip uninstall 패키지이름
예를 들어
python -m pip uninstall Faker
처럼 사용한다.
install → 설치
uninstall → 삭제
특정 버전의 패키지를 설치하려면
==
을 사용한다.
python -m pip install SomePackage==1.0.4
의미는
SomePackage의
1.0.4 버전을 설치
이다.
예를 들어
python -m pip install Faker==37.0.0
처럼 사용할 수 있다.
버전을 지정하지 않으면
python -m pip install Faker
최신 버전이 설치된다.
패키지이름==버전
이미 설치되어 있는 패키지를 최신 버전으로 업데이트하려면
--upgrade
옵션을 사용한다.
python -m pip install --upgrade SomePackage
예를 들어
python -m pip install --upgrade Faker
처럼 사용한다.
설치된 이전 버전
↓
--upgrade
↓
최신 버전
현재 설치되어 있는 패키지를 확인하려면
python -m pip list
를 사용한다.
예시
Package Version
-------------- -------
Faker 37.0.0
pip 25.0
sympy 1.13.3
형태로
패키지 이름 + 버전
을 확인할 수 있다.
| 명령어 | 기능 |
|---|---|
python -m pip install 패키지 | 패키지 설치 |
python -m pip uninstall 패키지 | 패키지 삭제 |
python -m pip install 패키지==버전 | 특정 버전 설치 |
python -m pip install --upgrade 패키지 | 최신 버전으로 업데이트 |
python -m pip list | 설치된 패키지 확인 |
FakerFaker는 테스트용 가짜 데이터를 만들어 주는 외부 라이브러리이다.
예를 들어 회원가입 프로그램을 테스트하기 위해
이름
주소
전화번호
이메일
회사명
같은 데이터가 수십 개 필요하다고 해 보자.
직접 일일이 만드는 대신 Faker를 이용하면 자동으로 생성할 수 있다.
Faker는 외부 라이브러리이므로 먼저 설치해야 한다.
python -m pip install Faker
설치가 끝나면 파이썬에서 사용할 수 있다.
먼저 Faker를 불러온다.
from faker import Faker
Faker 객체를 생성한다.
fake = Faker()
가짜 이름을 만들어 보자.
print(fake.name())
실행할 때마다 임의의 이름이 생성된다.
예시
Matthew Estrada
기본 설정에서는 영어권 데이터가 만들어질 수 있다.
한국어 데이터를 사용하려면
fake = Faker("ko-KR")
처럼 한국 지역을 지정한다.
from faker import Faker
fake = Faker("ko-KR")
print(fake.name())
실행 예
김하은
실행할 때마다 다른 이름이 나올 수 있다.
print(fake.address())
실행하면 임의의 한국 주소가 만들어진다.
예시
경기도 성남시 분당구 강남대로
Faker에서 만들어지는 데이터는 실제 사람의 정보가 아니라 테스트를 위한 가상의 데이터이다.
from faker import Faker
fake = Faker("ko-KR")
data = (fake.name(), fake.address())
print(data)
예시
('김민수', '서울특별시 강남구 역삼로')
리스트 컴프리헨션을 사용하면 여러 개의 테스트 데이터를 쉽게 만들 수 있다.
from faker import Faker
fake = Faker("ko-KR")
test_data = [
(fake.name(), fake.address())
for i in range(30)
]
print(test_data)
구조를 보면
(fake.name(), fake.address())
로
(이름, 주소)
한 세트를 만든다.
그리고
for i in range(30)
을 사용하여 30번 반복한다.
결과적으로
[
(이름1, 주소1),
(이름2, 주소2),
...
(이름30, 주소30)
]
형태의 데이터가 만들어진다.
Faker에서는 이름과 주소 이외에도 다양한 가짜 데이터를 만들 수 있다.
| 함수 | 생성 데이터 |
|---|---|
fake.name() | 이름 |
fake.address() | 주소 |
fake.postcode() | 우편번호 |
fake.country() | 국가명 |
fake.company() | 회사명 |
fake.job() | 직업 |
fake.phone_number() | 전화번호 |
fake.email() | 이메일 |
fake.user_name() | 사용자명 |
fake.pyint() | 임의의 숫자 |
fake.ipv4_private() | 사설 IPv4 주소 |
fake.text() | 임의의 문장 |
fake.color_name() | 색상명 |
print(fake.email())
예시
minsu@example.org
print(fake.phone_number())
실행할 때마다 다른 전화번호 형태의 테스트 데이터가 생성된다.
print(fake.ipv4_private())
예시
192.168.10.24
print(
fake.pyint(
min_value=0,
max_value=100
)
)
0~100 사이의 임의의 숫자를 생성한다.
from faker import Faker
fake = Faker("ko-KR")
객체를 만든 뒤
fake.name()
fake.address()
fake.email()
fake.phone_number()
처럼 사용한다.
즉,
Faker
↓
테스트용 데이터 자동 생성
↓
이름 / 주소 / 이메일 / 전화번호 / IP 등
이라고 기억하면 된다.
sympysympy는 수학 기호와 방정식을 다룰 수 있는 외부 라이브러리이다.
예를 들어
x + 3 = 7
과 같은 방정식에서 x의 값을 파이썬을 이용해 구할 수 있다.
sympy 역시 외부 라이브러리이므로 설치해야 한다.
python -m pip install sympy
설치가 끝나면
import sympy
로 사용할 수 있다.
다음 문제를 생각해 보자.
가지고 있던 돈의
2/5를 사용했더니 사용한 돈이1,760원이었다. 원래 가지고 있던 돈은 얼마일까?
원래 가지고 있던 돈을 x라고 하면
x × 2/5 = 1760
이라는 방정식을 만들 수 있다.
먼저 sympy를 불러온다.
import sympy
x라는 미지수를 만든다.
x = sympy.symbols("x")
sympy.symbols()는 방정식에서 사용할 기호 또는 미지수를 생성한다.
즉,
x = sympy.symbols("x")
는
x를 일반 숫자가 아니라
수학적인 미지수 x로 사용
한다는 의미이다.
x, y = sympy.symbols("x y")
이렇게 작성하면
x
y
두 개의 미지수를 한 번에 생성할 수 있다.
Fraction정확한 분수 계산을 위해 파이썬 표준 라이브러리인 Fraction을 사용할 수 있다.
from fractions import Fraction
예를 들어
a = Fraction(1, 5)
print(a)
실행 결과
1/5
문자열로도 만들 수 있다.
a = Fraction("1/5")
문제의 방정식은
x × 2/5 = 1760
이다.
코드로 표현하면
from fractions import Fraction
import sympy
x = sympy.symbols("x")
f = sympy.Eq(
x * Fraction("2/5"),
1760
)
여기서
sympy.Eq(a, b)
는
a = b
라는 방정식을 의미한다.
즉,
sympy.Eq(
x * Fraction("2/5"),
1760
)
은
x × 2/5 = 1760
이라는 뜻이다.
만든 방정식의 답은 solve()를 이용해 구한다.
result = sympy.solve(f)
print(result)
실행 결과
[4400]
즉,
x = 4400
이다.
solve()의 결과가 리스트인 이유는 방정식에 따라 해가 여러 개 존재할 수 있기 때문이다.
따라서 첫 번째 값을 가져오려면
result[0]
을 사용한다.
원래 가진 돈은
4,400원
이고 사용한 돈은
1,760원
이므로
remains = result[0] - 1760
print(remains)
실행 결과
2640
이다.
from fractions import Fraction
import sympy
# 가지고 있던 돈을 x라고 한다.
x = sympy.symbols("x")
# x × 2/5 = 1760
f = sympy.Eq(
x * Fraction("2/5"),
1760
)
# 방정식의 해 구하기
result = sympy.solve(f)
# 남은 돈 계산
remains = result[0] - 1760
print(f"남은 돈은 {remains}원입니다.")
실행 결과
남은 돈은 2640원입니다.
sympy는 일차방정식뿐 아니라 여러 종류의 방정식을 풀 수 있다.
다음 방정식을 풀어 보자.
x² = 1
코드
import sympy
x = sympy.symbols("x")
f = sympy.Eq(
x ** 2,
1
)
print(sympy.solve(f))
실행 결과
[-1, 1]
왜 답이 2개일까?
(-1)² = 1
1² = 1
이므로
x = -1
x = 1
두 개의 해가 존재하기 때문이다.
다음 연립방정식을 풀어 보자.
x + y = 10
x - y = 4
먼저 두 개의 미지수를 만든다.
import sympy
x, y = sympy.symbols("x y")
두 개의 방정식을 만든다.
f1 = sympy.Eq(
x + y,
10
)
f2 = sympy.Eq(
x - y,
4
)
solve()에 두 방정식을 전달한다.
result = sympy.solve([f1, f2])
print(result)
실행 결과
{x: 7, y: 3}
즉,
x = 7
y = 3
이다.
확인해 보면
7 + 3 = 10
7 - 3 = 4
두 방정식 모두 만족한다.
solve() 결과 형태미지수 하나를 풀었을 때
sympy.solve(f)
예시
[4400]
처럼 리스트 형태가 될 수 있다.
반면 여러 미지수를 가진 연립방정식을 풀면
sympy.solve([f1, f2])
예시
{x: 7, y: 3}
처럼 딕셔너리 형태의 결과를 확인할 수 있다.
sympy 핵심 문법| 문법 | 설명 |
|---|---|
sympy.symbols("x") | 미지수 생성 |
sympy.symbols("x y") | 여러 미지수 생성 |
sympy.Eq(a, b) | a = b 방정식 생성 |
sympy.solve() | 방정식의 해 구하기 |
Fraction(1, 5) | 정확한 분수 표현 |
| 구분 | 표준 라이브러리 | 외부 라이브러리 |
|---|---|---|
| 설치 | 파이썬과 함께 설치 | 별도 설치 필요 |
| 설치 명령 | 필요 없음 | 주로 pip 사용 |
| 예 | os, random, json | Faker, sympy |
이번 장에서 가장 중요한 것은 크게 3가지이다.
1. pip
→ 외부 패키지를 설치하고 관리
2. Faker
→ 테스트용 가짜 데이터 생성
3. sympy
→ 수학 기호와 방정식 계산
pippython -m pip install 패키지
외부 라이브러리 설치
Fakerfrom faker import Faker
fake = Faker("ko-KR")
print(fake.name())
print(fake.address())
테스트용 가짜 데이터 생성
sympyimport sympy
x = sympy.symbols("x")
f = sympy.Eq(x + 3, 7)
print(sympy.solve(f))
실행 결과
[4]
방정식의 해 계산
pip install
→ 패키지 설치
pip uninstall
→ 패키지 삭제
pip list
→ 설치된 패키지 확인
패키지==버전
→ 특정 버전 설치
--upgrade
→ 최신 버전 업데이트
그리고 라이브러리의 역할은
Faker
→ 테스트 데이터가 많이 필요할 때
sympy
→ 방정식이나 수학 계산이 필요할 때
라고 기억하면 된다.
외부 라이브러리를 잘 활용하면 이미 다른 사람이 만들어 둔 기능을 가져와 사용할 수 있기 때문에 프로그램을 훨씬 빠르고 편리하게 만들 수 있다.