김민기 · Python 백엔드 엔지니어

Python 서비스에서 API, 데이터흐름, 배치 작업을 개선하고 운영합니다.

백엔드 2인 팀에서 어드민 API 개편, 뉴스 수집·AI 요약 배치 장애 대응, 데이터 정합성 문제 해결을 맡았습니다.

Experience

경력

코박 (Cobak)

2026.04 ~ 현재

백엔드 엔지니어

암호화폐 시세·뉴스·커뮤니티를 제공하는 국내 가상자산 정보 플랫폼

  • Django
  • DRF
  • MySQL
  • Redis
  • MongoDB
  • Elasticsearch
  • Celery
  • FCM
  • AWS
  • Docker
  • Sentry
수집 · 배치 · LLM 연동

뉴스 수집·AI 요약 배치 장애 대응

보이지 않던 실패를 드러내고 수집 경로와 AI 요약 호출을 수정

배경 · 문제

뉴스 매체와 거래소 공지 수집, AI 요약 자동 발행이 멈춰 있었지만 예외를 출력만 하고 넘기는 코드 때문에 실패가 모니터링에 드러나지 않았습니다. 작업이 성공한 것처럼 보이는 상태에서 실제 수집·발행 경로를 확인해야 했습니다.

결정 · 구현

  • 실패를 볼 수 있도록 전환 — 예외를 삼키던 핸들러 130여 곳을 로깅으로 전환하고, 수집 회차 전체의 실패가 드러나도록 기록 기준을 정리했습니다.
  • 수집 경로 복구 — 뉴스 매체와 거래소 공지의 실패 원인을 각각 확인해 수정하고, 수집 회차 전체의 실패가 드러나도록 로깅 기준을 정리했습니다.
  • AI 요약 발행 경로 수정 — AI 요약 호출을 OpenAI Responses API로 이전하고 응답 형식을 JSON 스키마로 강제해 발행 경로를 다시 연결했습니다.

결과

뉴스 매체 수집 수정은 운영 배포 후 중단됐던 매체의 수집 재개를 확인했으며, 일부 기사 누락은 추가 대응 중입니다. 거래소 공지 2곳은 운영 서버의 정상 수집을 확인했습니다. AI 요약 자동 발행도 운영 재개했습니다.

  • Python
  • Django
  • Celery
  • Sentry
  • OpenAI Responses API
안정성 · 근본 원인 추적

후원 자동 댓글 유실 — 재현 안 되는 버그의 근본 해결

10개월간 소리 없이 사라지던 데이터, 원인을 끝까지 추적해 재발까지 차단

배경 · 문제

포인트 후원을 하면 후원 표시 댓글이 자동으로 달려야 하는데, 월 30~60%가 사라지고 있었습니다. 오류 알림 하나 없이 간헐적으로만 발생해 재현이 어려웠고, 기능이 출시된 2025년 8월 이후 10개월간 원인이 규명되지 않은 채 남아 있던 문제였습니다.

결정 · 구현

  • 원인 규명 — DB 복제 지연 — 후원 저장은 원본 DB에서, 댓글을 다는 백그라운드 작업의 조회는 읽기 전용 복제 DB에서 일어나고 있었습니다. 복제 반영이 조금이라도 늦으면 방금 저장된 후원을 찾지 못해 조용히 실패한다는 것을 코드와 로그 추적으로 규명했습니다.
  • 조회 경로 고정 — 후원 직후의 조회는 복제본이 아닌 원본 DB를 바라보도록 고정해, 복제 지연이 결과에 영향을 주지 못하게 했습니다.
  • 커밋 후 발송 보장 — 후원 저장을 트랜잭션으로 묶고, 댓글·알림 발송은 저장이 완전히 끝난 뒤에만 실행되도록 순서를 보장했습니다. 그래도 실패하는 경우를 대비한 자동 재시도 안전망도 더했습니다.

결과

2026.06 배포 후 2026.09까지 3개월간 재발 0건을 확인했습니다. 같은 원인으로 누락되던 라이브 공지글도 같은 진단을 적용해 해결했습니다.

  • MySQL 읽기 복제본
  • Django 트랜잭션
  • Celery
  • Sentry
개선 · 리팩토링

코박 어드민 전면 개편

기능마다 달랐던 운영자용 관리 도구 백엔드를 일관된 체계로 재설계

배경 · 문제

2018년부터 운영 요구에 맞춰 기능이 덧붙어 온 어드민(운영자용 관리 도구) 백엔드는 API 형식·시간 표기·권한 처리가 기능마다 달랐습니다. 같은 기능이 중복으로 등록돼 있고, 화면에 필요 없는 데이터까지 응답에 실려 나갔으며, 한국시간과 표준시(UTC)가 뒤섞여 시간이 잘못 표시되는 버그도 남아 있어, 새 기능을 붙일 때마다 같은 문제를 반복해 다뤄야 했습니다.

결정 · 구현

  • API 응답 형식 표준화 — 화면에 실제로 필요한 데이터만 내려보내도록 응답을 정리해 불필요·민감 정보 노출을 없애고, 오류 응답 형식을 하나로 통일했습니다.
  • 시간 표기 통일 — 모든 날짜·시간 값을 세계 표준시(UTC) 기준으로 통일하고, 한국시간으로 잘못 저장되던 데이터를 바로잡아 시간 오표시 버그를 제거했습니다.
  • 회원 조회 성능 개선 — 회원 조회 API를 항목별로 분리하고 페이지네이션과 N+1 쿼리 제거를 적용해 조회 성능을 대폭 개선했습니다.
  • 중복 · 레거시 정리 — 중복으로 등록돼 있던 레거시 관리자 API 경로 72개를 제거해 보안 위험과 혼선을 줄였습니다.
  • 신규 관리 기능 개발 — 본인인증(KYC) 관리, 멤버십 표시 개편, 신고 게시글 일괄 숨김(대량 처리 속도 개선), 이용 제한 단계별 자동 승급과 변경 이력 기록을 새로 구현했습니다.

결과

API 응답과 시간 표기를 통일하고 중복 관리자 경로 72개를 정리했습니다. 가장 느리던 회원 조회는 Postman 반복 호출에서 5초 넘게 걸리던 응답을 300ms 이내로 줄였습니다.

  • Django REST Framework
  • MySQL
  • AWS S3

그 외 담당 영역

텔레그램 KOL 채널 운영 체계

기존 수집 봇 위에 KOL 등록·목록·수정 API와 협업 문의 접수, 공개 디렉토리를 만들었습니다. 리액션과 원본 편집·삭제를 반영하고 댓글을 증분 수집하도록 확장했습니다. CSV 대량 등록은 전 행 선검증과 재실행 안전성을 갖추고 이미지를 등록 직전에 로드해 상주 메모리를 139MB에서 1.8MB로 줄였습니다.

  • Python
  • Django REST Framework
  • telethon
  • Celery

기존 게시판 위 스페이스 운영 체계

입사 전부터 운영되던 게시판 데이터를 유지하면서 스페이스 유형 체계, 유형별 화면 설정, 인기글·인기 스페이스 산정과 전용 관리 기능을 더했습니다. 기존 콘텐츠와 사용자를 유지한 채 유형별로 운영할 수 있는 기반을 마련했습니다.

  • Django REST Framework
  • MySQL
  • Redis
  • Celery

어드민 푸시 발송 기능 설계·구현

기존 FCM/APNS 인프라 위에 운영자용 푸시 발송 API를 설계하고 구현했습니다. 알림을 모두 끈 사용자 등 기존 토픽 발송의 예외 조건을 확인해 명세에 반영하고, 예약·즉시 발송과 관심사별·개인별 발송을 지원했습니다.

  • FCM/APNS
  • Celery
  • Django REST Framework

운영 지표 대시보드 백엔드 (개발 환경 배포)

서비스 활동 지표를 미리 집계해 조회 부하를 줄이고, GA4 유입 지표와 서비스 DB 지표를 하나의 응답으로 합쳤습니다. 외부 집계가 실패해도 내부 지표 조회는 계속되도록 분리했습니다. 개발 환경에 배포했으며 운영 반영을 기다리고 있습니다.

  • Django
  • MySQL
  • Celery
  • GA4 Data API

보안 강화

소스에 남은 개인키와 사용자 입력 실행 코드, 인증 없이 변경 가능한 API 등 기존 코드의 위험 지점을 찾아 제거했습니다. 예외 모니터링으로 전송되던 자격증명도 전송 지점에서 이름과 값 기준으로 가려 실제 예외를 통해 검증했습니다.

  • Django REST Framework
  • Sentry

자금 경로 정합성

포인트 차감과 환전 기록을 한 트랜잭션으로 묶고, 잔액은 원본 DB에서 행 잠금으로 조회해 연속 요청의 이중 차감을 막았습니다. 보상 지급에서는 온체인 전송을 DB 트랜잭션 밖으로 분리해 롤백 이후 재전송될 위험을 줄였습니다.

  • Django 트랜잭션
  • MySQL
  • Celery

검색 · SEO 데이터

검색 유입 통계를 서비스 DB로 옮기고 운영자 권한 체계 안에서 조회할 수 있도록 API를 만들었습니다. 재수집 시 중복이 쌓이지 않게 저장하고 실행 이력을 남겨 마지막 성공 시점을 확인할 수 있게 했습니다. 추천 뉴스와 닉네임 검색의 누락 버그도 수정했습니다.

  • Elasticsearch
  • RSS
  • Celery
  • MySQL

테스트 · 배포 환경

레거시 저장소에 pytest 실행 환경을 처음 구축했습니다. 동작하지 않던 기존 테스트를 정리하고 서버 시작 시점의 DB 의존을 제거해 빈 환경에서도 테스트가 돌아가게 했습니다. Docker Compose로 배포 실행 환경을 통일했습니다.

  • pytest
  • Django Test
  • Docker Compose

담당 범위 — 2026.04~09 · 어드민 · 커뮤니티 · 푸시 · 검색 · 지표 집계 · 보안 · 안정성 · 테스트 환경

LG전자 (LG Electronics)

2022.09 ~ 2024.06

소프트웨어 엔지니어

webOS 기반 스마트 TV·기기의 시스템 소프트웨어를 개발하는 글로벌 전자 기업

  • C++
  • Python
  • MQTT
  • Linux
  • Shell
  • Jenkins
  • Node.js
임베디드 · 성능 개선2022.10 – 2023.12 · 4명

webOS OTA(무선 업데이트) 서비스 개발

TV·기기 펌웨어를 원격으로 안전하게 업데이트하는 서비스를 C++로 구현

배경 · 문제

webOS 기기의 펌웨어를 사용자가 USB나 서비스센터 없이 네트워크로 직접 업데이트(OTA)할 수 있어야 했습니다. 하지만 펌웨어 전체 용량이 약 2GB에 달해, 느린 가정용 네트워크에서는 다운로드에만 8시간가량 걸려 실사용이 어려웠습니다.

결정 · 구현

  • 델타(차등) 업데이트 도입 — 기존 펌웨어와 새 펌웨어의 차이만 계산해 최소 용량의 경량 펌웨어를 생성하는 모듈을 개발했습니다.
  • 펌웨어 보안 처리 — 암호화된 펌웨어를 기기에서 안전하게 복호화하는 모듈을 구현했습니다.
  • 서버 통신 설계 — MQTT로 기기가 주기적으로 서버와 통신하며 새 업데이트 여부를 확인하도록 설계했습니다.
  • 기존 자산 재활용 — 모바일 사업부의 델타 생성 도구를 webOS 환경에 맞게 이식해 개발 기간을 단축하고 범용성을 확보했습니다.

결과

업데이트 용량을 약 2GB에서 10MB 수준으로, 다운로드 시간을 8시간에서 20분 이내로 줄여, 느린 네트워크 환경에서도 안정적인 원격 업데이트를 가능하게 했습니다.

  • C++
  • Python
  • MQTT
  • Linux
  • Shell

그 외 담당 영역

2023.10 – 2023.12 · 3명

업데이트 테스트 자동화

OTA 업데이트 도중 전원이 꺼지는 상황을 자동으로 재현하는 테스트 프로그램을 개발했습니다. 수동·무작위로 하던 검증을 패키지 단위 자동 테스트로 확장하고, 원격 명령 실행과 진행 현황 API를 구현했습니다. 이를 통해 기존에 발견하지 못했던 ‘업데이트 중 부팅 불가·리모컨 먹통’ 등 3가지 치명적 이슈를 찾아내 해결하고 안정성 검증 체계를 개선했습니다.

  • Python
  • SSH
  • Luna API
2024.04 – 2024.06 · 단독

팀 업무기록 백오피스

Jira API로 팀원별 업무 기록을 자동 수집·정리하는 백오피스 도구를 혼자 기획·개발했습니다. 일일 업무 입력과 자동 기록 등록, 이슈별 누적 업무시간 시각화를 제공해, 흩어져 있던 업무 기록 양식을 통일하고 주간 회의 시간을 평균 1시간에서 10분으로 약 80% 단축했습니다.

  • Node.js
  • Jira API

Skills

기술

언어 · 프레임워크

  • Python
  • Django
  • Django REST Framework
  • Celery
  • FastAPI
  • pytest

데이터 · 인프라

  • MySQL
  • Redis
  • MongoDB
  • Elasticsearch
  • AWS S3
  • Docker Compose
  • Linux

LLM · 도구

  • OpenAI API
  • FAISS
  • Sentry
  • telethon
  • Git

Activities

활동 · 교육

사이드 프로젝트

2024.11 – 2025.01 · 4명

리멤버미 — LLM 이미지 인식·알람 서비스

Microsoft AI School

이미지에서 정보를 자동으로 읽어 분류·저장하고, 의미 기반으로 검색·알림해 주는 서비스입니다. 기프티콘·승차권 등 유형별 유효기간 알림(푸시)과, ‘버스표’로 검색하면 ‘승차권’을 찾아주는 의미 기반 검색(벡터 검색)을 구현해 기존 OCR보다 문맥 인식 정확도를 높였습니다.

  • FastAPI
  • Python
  • OpenAI API
  • FAISS
  • SQLite
2019.05 – 2019.11 · 3명

요가마스터 — 실시간 자세 분석 서비스

소프트웨어 마에스트로

카메라로 사용자의 자세를 분석해 실시간으로 교정 피드백을 주는 요가 자세 분석 서비스입니다. 관절 좌표로 각도를 계산하고 동작 시점 차이를 보정하는 알고리즘(DTW)을 적용해 자세 판별 정확도를 높였으며, ‘왼쪽 팔을 더 올리세요’ 같은 음성 피드백을 제공했습니다.

  • Django
  • Python
  • OpenPose
  • TensorFlow

교육 · 학력

  • Microsoft AI School2024.09 – 2025.02

    AI 서비스 개발 교육 과정

  • 아주대학교 컴퓨터공학2020 졸업

    학사 · 학점 3.74 / 4.5

자격증

  • 정보처리기사 (2019)

About

소개

LG전자에서 webOS 기기의 OTA 서비스를 C++로 개발했습니다. 만든 개선이 사용자에게 닿는 주기가 더 짧은 환경에서 일하고 싶어 웹 백엔드로 방향을 바꿨고, AI 서비스 개발 교육 과정을 거쳐 코박에 합류했습니다.

지금은 서비스의 API와 배치 작업을 직접 운영하며 성능, 데이터 정합성, 장애 관측을 개선하고 있습니다. 새 기능을 더할 때도 기존 흐름이 어떻게 동작하는지 먼저 확인합니다.

Contact

연락하기

함께 일할 기회나 궁금한 점이 있으시면 편하게 연락 주세요. 보내주신 메일은 확인하는 대로 회신드리겠습니다.

pangshe10@gmail.com

이력서 PDF 다운로드 ↓