Quark's Outlines: Python 내장 메서드

발행: (2026년 1월 31일 오후 09:13 GMT+9)
5 min read
원문: Dev.to

Source: Dev.to

개요

Python은 len()·type()과 같은 내장 함수를 제공합니다.
내장 메서드는 이와 비슷하지만, 내장 객체에 붙어 있습니다.
예를 들어 append(list, x) 대신 list.append(x)를 호출합니다.

내장 메서드는 C로 구현되어 list, dict, str 같은 핵심 타입 내부에 존재합니다.
메서드를 호출하면 Python이 객체를 첫 번째 인수로 자동 전달하여 해당 C 함수를 실행합니다.

x = [1, 2]
x.append(3)
print(x)
# prints: [1, 2, 3]

append() 메서드는 list 타입의 일부이며 리스트를 제자리에서 변경합니다.

마찬가지로 문자열 메서드는 문자열 인스턴스에서 동작합니다:

word = "hello"
print(word.upper())
# prints: HELLO

여기서 upper()는 자유 함수가 아니라 문자열 객체의 메서드입니다.

Python 내장 메서드의 출처는 어디인가요?

내장 메서드는 핵심 객체 타입을 더 유용하게 만들기 위해 도입되었습니다. 초기 Python 버전은 대부분의 작업을 일반 함수로 처리했습니다. 언어가 발전하면서 list, dict, str 같은 타입에 자체 메서드가 추가되어 보다 자연스러운 객체‑지향 인터페이스를 제공하게 되었습니다.

연도이정표
1990len(x), type(x)와 같은 함수가 대부분의 작업에 사용되었습니다.
1991Python 0.9.1이 내장 타입(list, dict, str)과 연관 메서드를 추가했습니다.
1995Python 1.3이 문자열 메서드(find, replace, split)를 확장했습니다.
2001Python 2.2가 모든 내장 타입에 대해 새로운 스타일 클래스를 도입해 완전한 메서드 지원을 가능하게 했습니다.
2008Python 3.0이 일관된 객체 모델 아래 메서드 시스템을 통합했습니다.
2025최신 Python은 set, bytes, memoryview 등 다양한 타입에 수십 개의 메서드를 포함하고 있습니다.

Python 내장 메서드를 올바르게 사용하는 방법

리스트에 항목 추가하기

문제: 리스트에 새 항목을 제자리에서 추가해야 합니다.
해결: list.append() 메서드를 사용합니다.

fruits = ['apple', 'banana']
fruits.append('cherry')
print(fruits)
# prints: ['apple', 'banana', 'cherry']

append()는 리스트를 직접 변형하여 새로운 리스트를 만들지 않습니다.

딕셔너리 업데이트하기

문제: 키가 없을 경우에도 안전하게 값을 설정하거나 변경하고 싶습니다.
해결: dict.update() 메서드를 사용합니다.

scores = {'Alice': 3}
scores.update({'Bob': 5})
print(scores)
# prints: {'Alice': 3, 'Bob': 5}

update()는 키가 없으면 추가하고, 기존 키가 있으면 값을 업데이트합니다.

문자열의 공백 제거하기

문제: 사용자 입력에서 앞뒤 공백을 제거해야 합니다.
해결: str.strip() 메서드를 사용합니다.

name = "  Mike  "
print(name.strip())
# prints: Mike

strip()은 내부 공백은 그대로 두고 외부 공백만 제거합니다.

순서를 유지하면서 리스트 중복 항목 제거하기

문제: 리스트에서 중복된 항목을 제거하되, 각 요소의 첫 번째 등장 순서는 유지하고 싶습니다.
해결: dict.fromkeys()list()를 결합합니다.

nums = [1, 2, 2, 3, 1]
unique = list(dict.fromkeys(nums))
print(unique)
# prints: [1, 2, 3]

dict.fromkeys()는 첫 등장 순서를 보존하고; 다시 리스트로 변환하면 중복이 제거된 결과를 얻습니다.

문자열에서 부분 문자열 찾기

문제: 문자열에서 문자(또는 부분 문자열)의 첫 번째 위치를 찾거나, 존재하지 않을 경우를 판단해야 합니다.
해결: str.find() 메서드를 사용합니다.

text = "banana"
print(text.find("n"))
# prints: 2

find()는 첫 매치의 인덱스를 반환하고, 부분 문자열이 없으면 -1을 반환합니다.

Back to Blog

관련 글

더 보기 »