구름 핀테크 교육

[16일차] API를 활용한 데이터 수집

quqirium 2026. 5. 22. 09:28

0522 수업

17회차. API를 활용한 데이터 수집 — DART로 금융지주 비교 리포트 만들기

📌 핵심 내용 요약

Part 1. API란 무엇인가

API는 코드가 아니라 '약속'이다.

식당 비유로 이해하면 쉽다.

식당 API 세계
메뉴판 API (Application Programming Interface)
주방 서버 (DART의 데이터베이스)
음식 응답 데이터 (JSON 형식)
주문서 우리가 보내는 요청 (URL + Parameter)

 

API의 4가지 구성요소

  • URL — 어느 식당으로 갈 것인가 (주소)
  • Method — 무엇을 하러 왔는가 (GET: 보여주세요 / POST: 저장해주세요)
  • Parameter — 주문 옵션 (엑셀 필터 조건과 동일)
  • Response — 받은 음식 (JSON 형태로 반환)

오늘 우리가 쓸 것은 99% GET. 데이터를 "받아오는" 것이니까.


Part 2. JSON 문법 — 데이터의 모양

JSON을 못 읽으면 받은 데이터를 못 쓴다.

 

3가지 핵심 문법

  1. 키-값 쌍 (Key-Value) — "엑셀의 컬럼명: 값"
  2. { "회사명": "KB금융", "설립연도": 2008, "상장여부": true }
  3. 중첩 (Object 안의 Object) — "표 안에 또 표"
  4. { "회사": { "이름": "KB금융", "주소": { "시": "서울", "구": "영등포구" } } }
  5. 배열 (Array / List) — "엑셀의 여러 행"
  6. { "금융지주": ["KB금융", "신한지주", "하나금융지주", "우리금융지주"] }

JSON은 사실 중첩된 표. 키만 알면 값을 꺼낼 수 있다.


Part 3. Python 기초 5가지 — 엑셀·SQL과 매핑

"엑셀·SQL로 했던 것을 Python으로 다시 한다고 생각하세요. 새로운 언어가 아니라, 익숙한 개념의 '다른 표기법'입니다."

개념 엑셀 Python
변수 A1 셀에 2024 입력 year = 2024
딕셔너리 params = {"key": "value"}
함수 호출 =VLOOKUP(A1, B:D, 2, FALSE) requests.get(url, params=params)
반복문 수식을 아래로 드래그 for x in [...]
import "분석 도구 추가" import requests

Part 4. DART API 실습 — 셀 단위로

DART의 3가지 핵심 API

API URL 끝부분 무엇을 주나
공시검색 list.json 회사 공시 목록
기업개황 company.json 회사 기본 정보
재무제표 fnlttSinglAcntAll.json 수익·영업이익·자산 등 핵심 재무 ⭐

 

자주 발생하는 오류 코드

status 코드 의미 해결
"000" 정상 성공!
"010" 등록되지 않은 키 API Key 오타 확인
"011" 사용할 수 없는 키 일일 호출 한도 초과 → 다음날 재시도
"013" 조회된 데이터 없음 bgn_de / end_de 날짜 범위 확대
"020" 요청 제한 초과 time.sleep(1) 추가
"100" 필드 부적절한 값 corp_code 8자리 숫자 확인

Part 5. 금융지주 4사 비교 리포트 — 핵심 데이터 결과

분석 대상: KB금융 / 신한지주 / 하나금융지주 / 우리금융지주
분석 기간: 2023 ~ 2025 (최근 3개 사업연도)

 

회사별 요약 통계 (대표 수치)

회사명 평균_수익_억 최대_영업이익_억 평균_당기순이익_억 최근_자산총계_조
KB금융 543,333 68,000 49,747 780
신한지주 518,333 64,000 48,000 730
하나금융지주 378,333 51,000 37,333 605
우리금융지주 303,333 40,000 29,333 485

 

PM 관점 4가지 핵심 포인트

  1. 시장 1위는 KB금융, 2위는 신한지주, 격차는 좁음 — 2025 KB 580,000억 vs 신한 555,000억 (격차 4.5%). 2023~25 동안 1·2위 순서 변동 없음
  2. 영업이익률은 4사가 거의 동일 — 약 11~12%대
  3. 3·4위(하나·우리)는 KB·신한 대비 70%·55% 규모 — 단순 인수합병으로 1·2위에 도전하기 어려운 격차
  4. 시장 전체가 '완만한 우상향' — 4사 모두 매년 4~10% 성장

🗝️ 오늘 기억해야 할 가장 중요한 내용

"오늘 배운 것은 DART 사용법이 아닙니다."

오늘 진짜 배운 것:

  1. API라는 게 무엇인지 친구에게 설명할 수 있게 됐다
  2. JSON과 Python 코드를 '읽을 줄' 알게 됐다
  3. 외부 데이터를 가져와서 분석 리포트 1장 완성하는 패턴을 손에 익혔다

이 패턴은 DART뿐만 아니라 ECOS, 마이데이터, 카카오 API 등 모든 API에 동일하게 적용된다.


오늘의 산출물

# 산출물 형태
1 채워진 Colab 노트북 (셀 1~14 모두 실행) .ipynb
2 비교 분석 리포트 1장 노트북 안의 마크다운 셀
3 시각화 차트 3개 (영업수익/영업이익/성장률) 노트북 안 출력
4 CSV 데이터 파일 financial_holdings_2023_2025.csv

🔗 관련 링크