목록으로

프로그래밍 · Python

Python 입문 시리즈 #10: 딕셔너리로 이름표가 있는 데이터 관리하기

BeanCon
Python 입문자가 Dictionary Key Value와 JSON API 구조를 학습하는 과정을 표현한 대표 이미지

Python 입문 시리즈 10편입니다. 딕셔너리의 개념과 필요성, Key/Value 구조, 데이터 조회·수정·추가, 회원가입 정보 관리, JSON과 API 응답, 데이터베이스 조회 결과, KeyError와 get(), 반복문 items(), 실전 예제와 성장 포인트를 정리했습니다.

1. 딕셔너리 Dictionary란 무엇인가?

사람을 소개할 때 우리는 이름, 나이, 직업, 거주지처럼 항목 이름과 값을 함께 말합니다.

사람을 설명하는 데이터
  • 이름 : 김철수
  • 나이 : 28
  • 직업 : 개발자
  • 거주지 : 서울

이 정보를 리스트로 저장하면 다음처럼 작성할 수 있습니다.

person = ["김철수", 28, "개발자", "서울"]

하지만 두 번째 값이 나이인지, 직업인지, 주소인지 알기 어렵습니다. 그래서 Python은 데이터에 이름표를 붙이는 방법을 제공합니다. 그것이 바로 Dictionary입니다.

딕셔너리의 의미

Dictionary는 이름표를 붙여 데이터를 찾을 수 있게 해주는 Python의 핵심 자료구조입니다.

2. 왜 딕셔너리가 필요한가?

리스트는 위치로 데이터를 찾습니다.

student = ["이수", 20, "Python"]

나이를 가져오려면 다음처럼 위치 번호를 사용해야 합니다.

student[1]

하지만 데이터가 많아지면 student[17], student[23], student[45]가 각각 무엇을 의미하는지 기억하기 어렵습니다.

student[17]
student[23]
student[45]

반면 Dictionary는 이름으로 값을 찾을 수 있습니다.

student["age"]
자료구조데이터 접근 방식특징
List순서와 인덱스몇 번째 데이터인지 알아야 합니다.
DictionaryKey 이름무슨 데이터인지 이름으로 바로 알 수 있습니다.

3. Key와 Value 구조

실무에서 처음 만나는 Dictionary는 보통 다음과 같은 형태입니다.

student = {
    "name": "이수",
    "age": 20,
    "language": "Python"
}

구조를 보면 왼쪽은 Key, 오른쪽은 Value입니다.

name      → 이수
age       → 20
language  → Python
구성 요소의미예시
Key값을 찾기 위한 이름표입니다.name, age, language
ValueKey에 연결된 실제 데이터입니다.이수, 20, Python

자동차 키에 비유하기

자동차 키의 버튼 이름을 누르면 특정 동작이 실행됩니다. Dictionary도 Key를 사용해 Value에 접근합니다.

시동 버튼 → 엔진 시작
트렁크 버튼 → 트렁크 열림
잠금 버튼 → 문 잠금
car = {
    "brand": "Tesla",
    "model": "Model Y",
    "color": "White"
}

4. 데이터 조회, 수정, 추가

데이터 꺼내기

print(car["brand"])

결과입니다.

Tesla
print(car["color"])

결과입니다.

White

데이터 수정하기

car["color"] = "Black"

결과 구조입니다.

{
    "brand": "Tesla",
    "model": "Model Y",
    "color": "Black"
}

새로운 데이터 추가

car["year"] = 2026

결과 구조입니다.

{
    "brand": "Tesla",
    "model": "Model Y",
    "color": "Black",
    "year": 2026
}

5. 실무 이야기: 회원가입 시스템

회원가입 기능을 만든다고 가정하면 사용자 정보는 보통 Dictionary 형태로 저장됩니다.

user = {
    "id": "idaro",
    "email": "idaro@example.com",
    "name": "Lee Soo",
    "role": "admin"
}

실제 웹서비스에서는 거의 대부분 이런 구조로 사용자 정보, 권한, 프로필 데이터를 관리합니다.

회원 정보에서 자주 쓰는 Key
  • id
  • email
  • name
  • role
  • profile
  • created_at

6. JSON과 Dictionary

웹 개발자가 가장 많이 보는 데이터 형식 중 하나가 JSON입니다. JSON은 Python Dictionary와 매우 비슷합니다.

JSON 예시

{
  "name": "Kim",
  "age": 30,
  "city": "Seoul"
}

Python Dictionary 예시

{
    "name": "Kim",
    "age": 30,
    "city": "Seoul"
}
핵심 이해

JSON과 Python Dictionary는 사실상 형제라고 봐도 좋습니다. 웹 API 응답을 Python에서 다룰 때 Dictionary 이해가 필수입니다.

7. API와 데이터베이스 연결

API가 Dictionary를 좋아하는 이유

날씨 API 응답은 보통 다음처럼 Key와 Value 구조를 갖습니다.

{
  "city":"Seoul",
  "temperature":31,
  "humidity":72
}

Python에서 받아오면 다음과 같은 Dictionary로 다룰 수 있습니다.

weather = {
    "city":"Seoul",
    "temperature":31,
    "humidity":72
}

온도 출력입니다.

print(weather["temperature"])

결과입니다.

31

데이터베이스와의 연결

MySQL 테이블에서 데이터를 조회한다고 가정해보겠습니다.

idnameage
1Kim30

조회 결과는 보통 다음과 같은 Dictionary 형태로 반환됩니다.

{
    "id": 1,
    "name": "Kim",
    "age": 30
}
Database → Dictionary
Dictionary → JSON
JSON → API

Database, Dictionary, JSON, API는 서로 긴밀하게 연결되어 있습니다.

8. KeyError와 반복문

존재하지 않는 Key 접근

user = {
    "name":"Kim"
}

print(user["age"])

결과입니다.

KeyError

존재하지 않는 Key에 접근하면 오류가 발생합니다. 안전하게 접근하려면 get()을 사용할 수 있습니다.

print(user.get("age"))

결과입니다.

None

반복문과 함께 사용하기

user = {
    "name":"Kim",
    "age":30,
    "city":"Seoul"
}
for key, value in user.items():
    print(key, value)

결과입니다.

name Kim
age 30
city Seoul

9. 실전 예제와 성장 포인트

간단한 게임 캐릭터 정보

character = {
    "name":"Warrior",
    "level":15,
    "hp":1200,
    "attack":180
}

출력합니다.

print(character["name"])
print(character["hp"])

결과입니다.

Warrior
1200

Python 개발자의 성장 포인트

Dictionary를 이해하는 순간 프로그램, 웹 개발, API, 데이터베이스, AI 개발로 가는 문이 열리기 시작합니다.

초급 개발자

scores = [90, 80, 70]처럼 리스트로 단순 값을 관리합니다.

중급 개발자

student = {"name":"Lee", "scores":[90,80,70]}처럼 구조화된 데이터를 다룹니다.

고급 개발자

user, profile, country처럼 중첩된 Dictionary 구조를 이해하고 API·DB 데이터와 연결합니다.

scores = [90, 80, 70]
student = {
    "name":"Lee",
    "scores":[90,80,70]
}
{
    "user":{
        "id":"idaro",
        "profile":{
            "name":"Lee Soo",
            "country":"KR"
        }
    }
}

10. 정리와 다음 편 예고

오늘 배운 내용을 한 문장으로 정리하면 리스트가 순서로 찾는 데이터 창고라면, 딕셔너리는 이름표를 붙여 찾는 데이터 창고입니다.

핵심 정리
  • Dictionary는 Key와 Value로 데이터를 저장합니다.
  • List는 순서로 찾고 Dictionary는 이름으로 찾습니다.
  • 값 조회, 수정, 추가가 쉽습니다.
  • 존재하지 않는 Key 접근은 KeyError를 발생시킵니다.
  • get()을 사용하면 더 안전하게 값을 조회할 수 있습니다.
  • items()를 사용하면 Key와 Value를 반복 처리할 수 있습니다.
  • JSON, API, Database와 매우 밀접하게 연결됩니다.

현대 소프트웨어는 웹사이트, 모바일 앱, API 서버, AI 시스템, 데이터베이스, 클라우드 서비스까지 거의 모두 Dictionary와 유사한 구조를 기반으로 데이터를 주고받습니다.

Python 입문 연재 11 예고
  • 튜플 Tuple 이해하기
  • 절대 변하지 않는 데이터를 저장하는 방법
  • 리스트와 튜플의 차이점
  • 성능 차이와 실무 활용법

댓글

0

댓글을 불러오는 중입니다.