728x90

이 강의는 파이썬 강의 45강입니다.
이전 강의에서는 상태(state) 개념을 통해
프로그램이 어떻게 흐르는지 이해했습니다.
이번 강의에서는 그 상태를 어디에, 어떤 형태로 저장해야 하는지,
즉 데이터 구조를 설계하는 방법을 다룹니다.
왜 데이터 구조를 “다시” 설계해야 할까
초반에는 보통 이렇게 시작합니다.
name = "철수"
score = 90
하지만 프로그램이 커지면
이 방식은 바로 한계가 옵니다.
- 데이터가 많아진다
- 관련 있는 값들이 흩어진다
- 상태를 한눈에 파악하기 어렵다
이때 필요한 게
데이터 구조 설계입니다.
1️⃣ 데이터 구조의 역할
데이터 구조는
단순히 “값을 저장하는 통”이 아닙니다.
프로그램의 상태를 표현하는 틀입니다.
- 무엇이 중요하고
- 무엇이 함께 움직이고
- 무엇이 자주 바뀌는지
이걸 표현하는 것이 데이터 구조입니다.
2️⃣ 잘못된 구조의 예
다음 코드를 봅니다.
name1 = "철수"
score1 = 90
name2 = "영희"
score2 = 85
이 구조의 문제점은 명확합니다.
- 학생이 늘어날 때마다 변수 증가
- 반복 처리 불가능
- 상태 파악 어려움
3️⃣ 리스트로 묶기
관련 있는 값을
리스트로 묶어봅니다.
names = ["철수", "영희"]
scores = [90, 85]
이전보다는 나아졌지만
아직 문제가 있습니다.
이름과 점수의 관계가 코드로 드러나지 않습니다.
4️⃣ 딕셔너리로 구조 만들기
관계가 중요한 데이터는
딕셔너리가 잘 어울립니다.
scores = {
"철수": 90,
"영희": 85
}
이제 코드만 봐도
구조가 바로 이해됩니다.
- 이름 → 점수
- 상태 표현이 명확
5️⃣ 상태를 기준으로 구조를 정한다
데이터 구조를 고를 때
이 질문을 던지세요.
- 이 값들은 함께 움직이는가?
- 이 값들은 어떤 의미 관계가 있는가?
- 키(key)가 필요한가, 순서가 필요한가?
질문의 답이
자료구조 선택 기준입니다.
6️⃣ 리스트 vs 딕셔너리 선택 기준
아주 간단한 기준입니다.
- 순서가 중요하다 → 리스트
- 이름(의미)으로 접근한다 → 딕셔너리
# 리스트
items = ["칼", "방패", "물약"]
# 딕셔너리
player = {
"hp": 100,
"mp": 30,
"level": 1
}
7️⃣ 데이터 구조는 바뀔 수 있다
프로그램이 발전하면
데이터 구조도 바뀌는 게 정상입니다.
처음에는 리스트였다가
나중에 딕셔너리로 바꾸는 것도
전혀 이상하지 않습니다.
구조 변경은 성장의 증거입니다.
이번 강의 핵심 정리
- 데이터 구조는 상태를 표현한다
- 관련 있는 값은 묶어야 한다
- 관계가 있으면 딕셔너리가 어울린다
- 구조는 프로그램 성장에 따라 바뀐다
728x90
'⚙️ Python > 💻 Python 기초' 카테고리의 다른 글
| [Python] 47강 메뉴형 콘솔 프로그램 구조 만들기 (0) | 2026.01.13 |
|---|---|
| [Python] 46강 기존 코드 리팩토링하기 (고치지 말고 개선하기) (0) | 2026.01.13 |
| [Python] 44강 상태(state) 개념 이해하기 (0) | 2026.01.12 |
| [Python] 43강 프로그램 설계 사고방식 (코드보다 먼저 생각하기) (0) | 2026.01.11 |
| [Python] 42강 예외 처리 (try / except)로 프로그램 안전하게 만들기 (0) | 2026.01.11 |