파이썬 점(.)의 비밀 — 모듈·함수·메서드, 외우지 않고 정복하기
random.sample()에서 점(.)은 왜 쓸까요? 함수와 메서드는 무엇이 다를까요?
파이썬 입문자가 가장 많이 헷갈리는 이 세 가지 개념을 실제 예제와 함께 단번에 정리해 드립니다.
🔍 점(.)의 진짜 의미 — 도구함과 도구
파이썬에서 점(.)은 "~안에 있는"이라는 뜻입니다. 아래 코드를 예시로 살펴볼게요.
import random # 1~45 사이에서 중복 없이 6개 뽑기 lotto = random.sample(range(1, 46), 6) print(lotto) # 예) [3, 17, 22, 31, 38, 45]
이 한 줄을 구조로 쪼개면 이렇습니다.
| 부분 | 역할 | 비유 |
|---|---|---|
random | 무작위 관련 도구들의 모음 | 도구함 (모듈) |
. | "~안에 있는" | 도구함 뚜껑 열기 |
sample() | 중복 없이 뽑아주는 기능 | 도구 (함수) |
random 도구함 안에는 sample() 외에도 randint() (임의의 정수), choice() (리스트에서 하나 선택), shuffle() (섞기) 등 다양한 도구들이 들어 있습니다.
⚙️ 함수 vs 메서드, 무엇이 다른가요?
파이썬을 배우다 보면 함수(Function)와 메서드(Method)라는 두 단어가 자주 등장합니다. 둘 다 ()괄호가 붙어 있어 헷갈리기 쉬운데, 차이는 단 하나입니다.
| 구분 | 사용 방식 | 예시 | 특징 |
|---|---|---|---|
| 함수 | 이름만 바로 호출 | print("안녕") | 누구나 쓸 수 있는 공용 도구 |
| 메서드 | 데이터.메서드() 형식 | lotto.sort() | 특정 데이터 전용 도구 |
lotto_numbers = [38, 3, 22, 17, 45, 31] # sort()는 '리스트'라는 데이터에만 달라붙은 전용 메서드 lotto_numbers.sort() print(lotto_numbers) # [3, 17, 22, 31, 38, 45]
마찬가지로 날짜·시간 데이터(now)에도 전용 메서드가 있습니다.
import datetime now = datetime.datetime.now() # 현재 날짜+시간 데이터 result = now.strftime("%Y년 %m월 %d일") # 글자 형식으로 변환하는 메서드 print(result) # 2025년 07월 15일
strftime은 str(문자열) + f(format, 형식) + time(시간)의 줄임말입니다. "시간을 원하는 모양의 글자로 바꿔줘!"라는 뜻이죠.
✂️ 이름 두 번 쓰기 싫을 때 — from … import
datetime.datetime.now()처럼 이름이 두 번 겹칠 때, from … import를 쓰면 깔끔하게 줄일 수 있습니다.
# datetime 도구함에서, datetime 도구만 콕 집어서 가져오기 from datetime import datetime # 이제 앞에 'datetime.' 안 붙여도 됩니다 now = datetime.now() print(now.strftime("%Y년 %m월 %d일"))
인터넷 코드에서 import datetime과 from datetime import datetime이 섞여 있는 이유가 바로 이 때문입니다. 이름을 두 번 쓰기 번거로울 때 후자를 선택하는 것뿐이에요.
🔭 도구함 안을 들여다보는 4가지 방법
현업 개발자들도 모든 함수 이름을 외우지 않습니다. 대신 아래 4가지 방법으로 그때그때 확인합니다.
STEP 01
엑스레이: dir() 함수
도구함 안의 모든 도구 이름을 리스트로 쏟아냅니다. Directory(목록)의 줄임말입니다.
import random print(dir(random)) # ['choice', 'choices', 'randint', 'sample', 'shuffle' ...]
STEP 02
사용 설명서: help() 함수
이름은 찾았는데 사용법을 모를 때, 파이썬이 영문 설명서를 바로 보여줍니다.
help(random.sample) # sample(population, k, ...) — 중복 없이 k개 뽑기
STEP 03 ⭐
주피터 최강 꿀팁: Tab 자동완성
주피터 노트북에서 random.을 입력하고 Tab 키를 누르면 사용 가능한 함수 목록이 팝업으로 뜹니다. 실전에서 가장 빠른 방법!
STEP 04
가장 현실적인 방법: 구글 검색
"파이썬 랜덤 숫자 뽑기"처럼 기능 중심으로 검색하면, 선배 개발자들이 어떤 모듈·함수를 쓰는지 예제 코드와 함께 수백 개가 나옵니다.
🧠 외우지 않아도 되는 이유
10년 차 개발자도 모든 함수 스펠링을 외우지 않습니다. 뇌는 논리와 흐름(뼈대)을 짜는 데 써야 하고, 세부 명령어는 구글·Tab 키·공식 문서에 맡기는 것이 프로의 방식입니다.
단, 아래 3가지 큰 규칙만은 몸으로 기억해 두세요.
① 점(.)을 찍으면 그 안의 전용 도구를 꺼내 쓰는 것
② if / for 아래는 무조건 들여쓰기(4칸)
③ 남의 도구를 빌릴 때는 맨 위에 import
이 규칙들만 익히면 모르는 함수는 그때그때 검색해서 붙여넣으면 됩니다. 영어 회화를 할 때 문법 구조만 알면 모르는 단어는 사전을 찾으면 되는 것과 똑같습니다.
❓ 자주 묻는 질문 (FAQ)
Q모듈(도구함)과 라이브러리는 다른 건가요?
개념적으로 비슷합니다. 모듈은 .py 파일 하나, 라이브러리는 여러 모듈을 묶은 패키지를 가리킵니다. 입문 단계에서는 동의어로 이해해도 무방합니다.
Qimport random을 매번 써야 하나요?
네, 파이썬 파일(또는 노트북) 상단에 한 번만 써두면 됩니다. 코드를 새로 실행할 때마다 한 번씩 import가 필요합니다.
Q함수를 직접 만들려면 어떻게 하나요?
def 함수이름(): 으로 시작하면 됩니다. 파이썬이 제공하는 내장 함수와 동일한 방식으로 동작합니다. 자주 반복되는 코드를 함수로 만들어두면 훨씬 편리합니다.
Q메서드는 리스트에만 있나요?
아닙니다. 문자열(str), 딕셔너리(dict), 날짜·시간 등 모든 자료형에 전용 메서드가 있습니다. 데이터 뒤에 점(.)을 찍고 Tab을 누르면 확인할 수 있습니다.


댓글 쓰기