본문 바로가기

[Python] 45강 데이터 구조를 다시 설계하는 방법

@도마22026. 1. 12. 21:00
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
도마2
@도마2 :: 도마의 코드노트

초보자를 위한 코딩 강의를 정리합니다. 파이썬부터 C#, Unity 게임 제작까지 차근차근 기록합니다. — 도마

목차