본문으로 건너뛰기

교육 ·

비전공자 파이썬 딕셔너리 배우는 법, 언제 써야 하나요

리스트만으로 부족함을 느끼는 순간

비전공자 파이썬 딕셔너리 배우는 법을 찾아보셨다면, 아마 리스트로 데이터를 다루다가 뭔가 불편함을 느끼셨을 것입니다. 예를 들어 직원 이름과 부서, 연락처를 리스트로 관리하면 “세 번째 값이 뭐였지”를 매번 순서로 기억해야 합니다. 딕셔너리는 값에 이름(키)을 붙여서 저장하기 때문에, 순서 대신 이름으로 데이터를 찾을 수 있게 해줍니다.

비전공 사무직을 위한 코딩 입문 로드맵에서 다룬 것처럼, 코딩 학습은 배울 문법을 정하기보다 내 업무의 어떤 반복을 줄일지에서 출발하는 게 효율적입니다. 딕셔너리도 마찬가지입니다. “직원 정보를 정리할 때”, “설정값을 저장할 때”, “API 응답을 받을 때” 같은 구체적인 상황을 먼저 떠올리면 훨씬 빨리 익숙해집니다.

딕셔너리가 왜 필요한가요

리스트는 순서로 데이터를 관리하지만, 딕셔너리는 키(key)와 값(value)을 짝지어 저장합니다. “이름”이라는 키로 “홍길동”이라는 값을 찾는 방식이라, 데이터가 많아져도 몇 번째인지 셀 필요가 없습니다. 실무에서는 엑셀의 한 행을 딕셔너리 하나로 표현한다고 생각하면 이해가 쉽습니다.

간단한 예시를 보겠습니다.

employee = {
    "이름": "홍길동",
    "부서": "총무팀",
    "연락처": "010-1234-5678"
}

print(employee["부서"])  # 총무팀

리스트였다면 employee[1]처럼 위치로 접근해야 하지만, 딕셔너리는 employee["부서"]처럼 의미가 드러나는 키로 접근합니다. 코드를 나중에 다시 봤을 때도, 혹은 동료가 봤을 때도 훨씬 읽기 쉬운 코드가 됩니다.

리스트와 딕셔너리, 언제 어떤 걸 써야 하나요

같은 종류의 값이 순서대로 나열될 때는 리스트를, 각 값에 이름(의미)을 붙여야 할 때는 딕셔너리를 씁니다. 예를 들어 “월별 매출 12개”는 리스트가 자연스럽고, “직원 한 명의 이름·부서·연락처”는 딕셔너리가 자연스럽습니다. 실무 데이터는 대부분 이 둘을 함께 씁니다.

직원 여러 명을 관리해야 한다면 리스트 안에 딕셔너리를 넣는 구조를 씁니다.

employees = [
    {"이름": "홍길동", "부서": "총무팀"},
    {"이름": "김영희", "부서": "영업팀"},
    {"이름": "이철수", "부서": "총무팀"}
]

for emp in employees:
    print(emp["이름"], emp["부서"])

이 구조는 파이썬 반복문(for문)과 함께 쓰면 힘이 생깁니다. 명단이 100명, 1000명이 되어도 코드는 그대로이고 데이터만 늘어나기 때문입니다. 실제로 이런 구조는 엑셀 반복 업무를 파이썬으로 자동화할 때 가장 많이 등장하는 패턴이기도 합니다. 엑셀에서 pandas로 읽어온 데이터가 내부적으로 이런 딕셔너리 목록과 비슷한 형태로 다뤄지기 때문입니다.

파이썬 딕셔너리, 이것만 기억하세요

실무에서 자주 쓰는 딕셔너리 패턴 세 가지

첫 번째는 “조건별 값 매칭”입니다. 부서명을 코드로 바꿔야 할 때, 여러 개의 if문 대신 딕셔너리로 한 줄에 처리할 수 있습니다.

dept_code = {"총무팀": "A01", "영업팀": "A02", "개발팀": "A03"}
print(dept_code.get("영업팀", "코드없음"))  # A02

get() 메서드를 쓰면 키가 없을 때 에러 대신 기본값을 반환하게 만들 수 있어, 실무 데이터처럼 값이 빠진 경우에도 스크립트가 멈추지 않습니다.

두 번째는 “집계”입니다. 부서별 인원수를 세야 할 때, 딕셔너리에 값을 하나씩 쌓아 올리는 방식을 씁니다.

count = {}
for emp in employees:
    dept = emp["부서"]
    count[dept] = count.get(dept, 0) + 1

print(count)  # {'총무팀': 2, '영업팀': 1}

이 패턴은 엑셀의 피벗 테이블이 하는 일을 코드로 옮긴 것과 비슷합니다. 엑셀 피벗 테이블 새로고침으로도 처리할 수 있는 일이지만, 데이터가 여러 파일에 흩어져 있거나 매번 형식이 조금씩 다르다면 파이썬 쪽이 더 유연합니다.

세 번째는 “API 응답 다루기”입니다. 요즘 업무 자동화에서 API를 호출하면 결과가 대부분 딕셔너리(정확히는 JSON) 형태로 돌아옵니다.

response = {"status": "success", "data": {"name": "홍길동", "age": 32}}
print(response["data"]["name"])  # 홍길동

이 부분은 JSON 입문 가이드API 입문 가이드에서 조금 더 자세히 다뤘습니다. JSON을 이해하고 나면 딕셔너리는 이미 익숙한 개념이라는 걸 알게 되실 겁니다.

어떤 순서로 학습하면 좋을까요

딕셔너리는 리스트, for문 다음에 배우는 것이 자연스럽습니다. 리스트로 데이터를 순서대로 다루는 법을 익히고, for문으로 반복 처리하는 감을 잡은 다음, 딕셔너리로 “이름이 붙은 데이터”를 다루는 법을 배우면 막힘없이 넘어갈 수 있습니다. 그다음 단계로는 pandas로 엑셀 데이터를 다루거나, API를 호출해 JSON 응답을 처리하는 실습으로 이어가는 것을 권합니다.

처음에는 딕셔너리의 중괄호 {}와 콜론 : 문법이 낯설게 느껴질 수 있습니다. 그럴 때는 에러가 나도 당황하지 말고 메시지를 차근차근 읽어보시면 됩니다. 에러 메시지 읽는 법에서 다뤘듯, 대부분의 에러는 어디가 잘못됐는지를 그대로 알려줍니다.

딕셔너리를 익히고 나면 리스트 안에 딕셔너리, 딕셔너리 안에 딕셔너리처럼 데이터를 겹겹이 담는 구조도 자연스럽게 읽을 수 있게 됩니다. 이는 실무 자동화 스크립트, 설정 파일, API 연동 어디서나 반복해서 만나는 형태이기 때문에, 한 번 제대로 익혀두면 이후 학습이 훨씬 수월해집니다.

픽셀앤코드는 이런 비전공자 대상 코딩·자동화 교육을 실제 업무 데이터와 사례로 진행하고 있습니다. 리스트와 딕셔너리처럼 기초 문법이 막막하게 느껴지실 때, 혼자 자료를 찾아가며 헤매기보다 실무 맥락에 맞춘 커리큘럼으로 익히면 훨씬 빠르게 다음 단계로 넘어갈 수 있습니다.