import는 외부 파일(모듈)이나 폴더(패키지)에 작성된 코드를 가져와 사용하는 기능입니다.
동작 과정
import는 코드가 실행되는 런타임에서, import 줄을 만났을 때 실행됩니다. 그래서 코드를 실행하기 전 까지는 모듈을 가져오지 않습니다.

import를 통해 가져오는 코드들도 caching의 대상이 될 수 있습니다. 만약 처음 import 하는 모듈(또는 패키지)라면, sys.path를 참고하여 해당 모듈이 위치한 경로를 따라 코드를 가져옵니다. 첫 import가 완료되면, sys.module라는 dictionary 객체에 해당 모듈 코드를 저장합니다. 이후에 같은 모듈을 import 하면, sys.module에서 그 모듈이 존재하는지 확인합니다. 존재한다면 저장된 객체 주소를 불러와 사용합니다.
작성법
| 방식 | 특징 | 예시 |
| import [모듈 이름] | 함수 앞에 모듈 이름을 붙여 주어야 함 | import math math.sqrt() |
| from [모듈 이름] import [함수 이름] | 모듈 이름 없이 함수를 호출할 수 있으나, 다른 모듈에 같은 이름의 함수가 있으면 충돌 위험이 있음 | from math import sqrt() sqrt() |
| from [모듈 이름] import * | 함수를 선택에 가져오지 않고 모든 함수를 가져옴. 마찬가지로 이름 충돌의 위험이 있음 | from math import * sqrt() |
의도치 않은 실행 방지
import를 하면 해당 모듈의 코드가 실행됩니다. 그렇기 때문에 아래와 같이 의도치 않은 동작이 발생할 수 있습니다.
# module_A.py
print("module_A is loaded.")
def func_A():
print("func_A is called.")
func() # import만 해도 이 함수가 자동으로 호출됨
이런 문제를 방지하기 위해, 해당 파일이 직접 실행될 때만 코드가 실행된다는 조건을 붙일 수 있습니다.
# module_A.py
if __name__ == "__main__":
func() # 이제 import 시에는 실행되지 않고, 직접 실행할 때만 실행됩니다.728x90
'Language > Python' 카테고리의 다른 글
| [Python] Syntax | 03. Decorator(@) (0) | 2026.02.16 |
|---|---|
| [Python] Event Loop (0) | 2026.02.16 |
| [Python] Library | 08. asyncio (0) | 2026.02.15 |
| [Python] Closure (0) | 2026.02.15 |
| [Python] Garbage Collection (0) | 2026.02.15 |