김민기 · Mingi Kim 백엔드 엔지니어

오래된 시스템은 다시 빠르고 안전하게, 새 제품은 0 → 1로 만드는 Python·Django 백엔드 엔지니어

가상자산 플랫폼 코박에서 Django 기반 어드민·커뮤니티·푸시 등 백엔드 핵심 도메인을 설계·운영합니다. 오래 쌓인 레거시를 다시 세우고, 요구사항만 있는 제품을 0 → 1로 만들며, 재현되지 않는 장애의 원인을 끝까지 추적합니다.

5초+ → 300ms
회원 조회 응답 (94% 단축)
60% → 0%
후원 자동 댓글 유실 (월 최대)
0 → 1
신규 커뮤니티 제품 (스페이스)
72개 제거
중복 관리자 API 경로 (보안)

Strengths

강점

채용 담당자가 실제로 궁금해할 질문을 놓고, 그 문제를 어떻게 풀었는지로 답했습니다. 자세한 내용은 각 항목의 링크에서 이어집니다.

몇 년째 쌓이기만 한 레거시, 구조를 다시 잡을 수 있을까

2018년부터 기능이 덧붙어 온 어드민 백엔드를 전수 분석해, 응답 형식과 시간 표기(UTC)를 하나로 통일하고 중복·미사용 경로를 걷어냈습니다.

어드민 전면 재설계 · 회원 조회 5초+ → 300ms · 레거시 경로 72개 제거

자세히 보기 →

요구사항만 있는 새 제품, 처음부터 만들어 낼 수 있나

참고할 기존 구조가 없는 상태에서 데이터 모델·권한 체계부터 홈 노출·검색·운영자 도구까지 백엔드 전반을 설계해 출시했습니다.

신규 커뮤니티 제품 백엔드 0 → 1 설계·출시

자세히 보기 →

가끔 조용히 나는 버그, 끝까지 파고들어 잡는 사람인가

읽기 전용 복제 DB의 반영 지연이 원인임을 규명하고, 조회를 원본 DB로 고정한 뒤 쓰기를 트랜잭션으로 묶어 재발을 막았습니다.

10개월간 원인 미상이던 유실(월 최대 60%) → 재발 0건

자세히 보기 →

기능 개발만이 아니라, 서비스 보안까지 챙겨줄 수 있을까

요청받지 않았지만 위험 지점을 직접 찾아, 원격 코드 실행 위험이 있는 코드를 제거하고 무인증 API에 인증을 걸었으며 하드코딩된 키를 비밀 관리 시스템으로 옮겼습니다.

원격 코드 실행 위험 제거 · 무인증 API 차단 · 하드코딩 키 이관

자세히 보기 →

Experience

경력 · 프로젝트

코박 (Cobak)

2026.04 ~ 현재

백엔드 엔지니어

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

  • Django 5.2
  • DRF
  • MySQL
  • Redis
  • MongoDB
  • Elasticsearch
  • Celery
  • FCM
  • AWS
  • Docker
  • Sentry
개선 · 리팩토링

코박 어드민 전면 개편

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

배경 · 문제

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

결정 · 구현

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

결과

흩어져 있던 어드민 백엔드를 하나의 일관된 체계로 재정비해 이후 기능 개발 속도와 유지보수성을 끌어올렸습니다. 특히 활동이 많은 회원 조회는 5초 이상 걸리던 응답을 300ms 이하로 줄였고(약 94% 단축), 응답 데이터 축소와 시간 표기 통일로 프론트엔드–백엔드 사이에서 반복되던 버그의 원인을 구조적으로 없앴습니다.

  • Django REST Framework
  • MySQL
  • AWS S3
신규 개발 · 0 → 1

스페이스(Space) — 신규 커뮤니티 제품

주제·브랜드(B2B) 단위 커뮤니티를 백엔드에서 처음부터 설계해 출시

배경 · 문제

게시판을 넘어, 특정 주제나 브랜드(B2B) 단위로 운영되는 커뮤니티 공간 “스페이스”를 새로 출시해야 했습니다. 홈 노출·탐색·검색·운영자 도구까지 백엔드 전반을 새로 설계했고, 인플루언서(KOL)·코인 프로젝트·기업(B2B) 등 유형마다 동작이 달라 이를 아우르는 데이터 모델과 권한 설계가 필요했습니다.

결정 · 구현

  • 커뮤니티 API 신규 설계카테고리별 스페이스 목록, 홈 배너, 인기글·추천 스페이스, 내가 참여한 스페이스, 게시글 검색 등 필요한 기능 전반을 새로 만들었습니다.
  • 목록 정확도 개선글 목록을 여러 페이지로 나눠 불러올 때 같은 시각에 올라온 글이 누락되거나 중복되던 문제를 정렬 기준을 바로잡아 해결했습니다.
  • 유형별 맞춤 로직코인 프로젝트 스페이스 글에 관련 코인 정보를 자동으로 붙이고, 인플루언서 스페이스의 기본 탭·작성 권한을 구분했으며, 텔레그램 봇으로 올라온 글을 자동 등록했습니다. 기업(B2B) 스페이스에는 외부 콘텐츠를 자동 수집해 채우는 기능을 더했습니다.
  • 다국어 · 운영 안정성영문 번역 제공과 자동 번역 실패 시 원문 노출 처리, 운영 추적을 위한 로그 정비, 스페이스 수정 시 변경 이력 기록을 더했습니다.

결과

새 커뮤니티 제품을 백엔드에서 처음부터 설계·출시해, 일반 사용자와 기업(B2B) 양쪽을 모두 운영할 수 있는 구조를 확보했습니다.

  • Django REST Framework
  • Elasticsearch
  • Redis
  • 크롤러
  • 텔레그램 봇
안정성 · 근본 원인 추적

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

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

배경 · 문제

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

결정 · 구현

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

결과

유실 원인을 구조적으로 제거해 배포 이후 재발 0건입니다. 이후 같은 원인으로 라이브 공지글 생성이 누락되던 문제가 발견됐을 때는 이 진단을 그대로 적용해 즉시 해결했습니다 — 한 번의 근본 해결이 같은 유형의 장애 대응 속도를 바꿨습니다.

  • MySQL 읽기 복제본
  • Django 트랜잭션
  • Celery
  • Sentry

그 외 담당 영역

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

기존 푸시 발송 인프라(FCM/APNS) 위에, 운영자가 사용자에게 보내는 푸시 발송 기능을 기획부터 API까지 구현했습니다. 예약·즉시 발송, 관심사(뉴스·라이브·이벤트 등)별 대량 발송과 개인 타깃 발송, 발송 대상 선택 기능을 만들고, 실제 발송·열람 수를 검증해 잘못된 발송을 방지했으며 이벤트·미션 기능과 연동했습니다.

  • FCM/APNS
  • Celery
  • Django REST Framework

보안 강화

오래된 코드에 잠재해 있던 보안 위험을 직접 찾아 제거했습니다. 사용자 입력이 그대로 실행될 수 있던 코드(원격 코드 실행 위험)를 없애고, 인증 없이 데이터 변경이 가능하던 API에 인증·권한을 적용했으며, 소스에 하드코딩돼 있던 외부 서비스 키를 비밀 관리 시스템으로 옮겼습니다. 본인인증(KYC) 처리 중 서버에 남던 개인정보 파일 정리까지, 서비스와 사용자를 지키는 개선을 이어갔습니다.

  • Django REST Framework
  • Secret Manager

안정성 · 운영 대응

오류 모니터링(Sentry)으로 다발성 오류를 추적·수정하고, 콜백 불일치로 반복 실패하던 백그라운드 작업을 정상화했습니다. 외부 API 장애 시 대체 응답(fallback)을 제공해 빈 화면을 방지하고, 영구 이용 제한이 해제되지 않던 문제 등 운영에 치명적인 버그를 수정했습니다.

  • Sentry
  • Celery
  • Redis

검색 · 뉴스 · SEO

검색 노출 개선(네이버 서치 어드바이저 연동 등 SEO)과 새 뉴스 매체 자동 수집(RSS)을 구현했습니다. 추천 뉴스가 데이터 형식 불일치로 전부 누락되던 버그, 닉네임 검색이 되지 않던 버그 등을 수정했습니다.

  • Elasticsearch
  • RSS
  • Celery

테스트 · 배포 환경

28,000커밋이 넘는 레거시 저장소에 자동화 테스트 실행 환경(pytest)을 처음 구축했습니다. 동작하지 않던 기존 테스트를 정리하고, 서버 시작 시점의 DB 의존을 제거해 빈 환경에서도 테스트가 돌아가게 만들었으며, 공통 기능을 표준화·정리해 중복 코드를 줄였습니다. 배포는 docker-compose로 구성해 실행 환경을 통일하고, 그 과정에서 드러난 문제들을 해결했습니다.

  • pytest
  • Django Test
  • Docker Compose

기여 규모 — 2026.04~07 · 기능 브랜치 130건 머지 · Jira 과제 83건 완료 · 커밋 608건 · 코드 +20,712 / −27,112 라인

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
  • C++
  • Django
  • Django REST Framework

데이터스토어

  • MySQL
  • Redis
  • MongoDB
  • Elasticsearch

인프라 · 도구

  • AWS (S3)
  • Celery
  • Firebase (FCM/APNS)
  • MQTT
  • Jenkins
  • Sentry
  • Docker

도메인

  • 대규모 백엔드
  • 어드민 시스템
  • 커뮤니티
  • 푸시
  • 검색
  • 보안
  • 임베디드 · OTA

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 서비스 개발 교육 과정

  • 아주대학교 컴퓨터공학

    학점 3.74 / 4.5

자격증

  • 정보처리기사

About

소개

LG전자에서는 webOS 기기의 OTA(무선 업데이트) 서비스를 C++로 개발했습니다. 느린 네트워크에서 몇 시간씩 걸리던 펌웨어 업데이트를 실용적인 수준까지 줄였지만, 그렇게 만든 개선이 실제 사용자의 기기에 닿기까지는 훨씬 긴 시간이 필요했습니다. 더 빠르게 움직이는 환경에서, 내가 만든 것이 사용자에게 바로 닿는 일을 하고 싶어 백엔드로 방향을 바꿨습니다.

방향을 바꾸며 AI 서비스 개발 교육 과정을 거쳐 웹 백엔드와 API 설계를 다시 다졌고, 가장 빠르게 변하는 업계 중 하나인 가상자산 플랫폼 코박에 합류했습니다.

지금은 배포한 것이 곧바로 사용자와 운영팀의 반응으로 돌아옵니다. 전환을 결정할 때 원했던 환경이고, 앞으로도 사용자에게 가까운 곳에서 백엔드를 만들고 싶습니다.

API 응답 형식 표준화, 시간·목록 처리의 정확성, 안정성·보안 개선처럼 “눈에 잘 띄지 않지만 오래 가는” 백엔드 품질에 집중합니다.

Contact

연락하기

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

pangshe10@gmail.com

이력서 PDF 다운로드 ↓