콘텐츠로 바로가기

소개

이 블로그는 일과 공부, 일상에서 남겨 두고 싶은 것을 적는 곳입니다. 개발·운영 메모와 함께 책을 읽으며 생긴 생각, 여행이나 생활에서 배운 것들도 같은 공간에 담으려 합니다.

Python과 Node.js로 백엔드를 만들고, 배포한 서비스의 상태를 확인하고 고치는 일을 해 왔습니다. 수어 접근성 서비스와 콘텐츠 제작 플랫폼, 재난 알림 시스템을 개발하며 클라우드·온프레미스 운영을 함께 맡았습니다.

일을 이어 온 방향

접근성 서비스 기업에서 2018년 5월부터 2024년 9월까지 API 개발, Kubernetes 배포, CI/CD, 모니터링과 장애 대응을 다뤘습니다. 기능을 추가하다 보면 데이터가 검색에 늦게 반영되거나, 외부 호출이 실패하거나, 안내가 잘못 발송되는 문제를 만나게 됩니다. 원인을 찾고 다음 대응에 필요한 기록을 남기는 일까지 제 업무였습니다.

그 전에는 공공 보건 연구기관에서 2014년 1월부터 2017년 3월까지 유전체 데이터를 분석했습니다. 연구와 서비스 개발은 다른 일이지만, 데이터를 전처리하고 결과를 확인하는 과정은 이후의 음성·STT 분석에도 이어졌습니다.

지금 공개해 두는 작업

홈 인프라는 hy-home.docker, 로컬 Kubernetes와 GitOps는 hy-home.k8s에서 관리합니다. hy-home.Learned에는 학습 노트와 실험 조건을 남깁니다. 최근에는 데이터 파이프라인, AI 도구, 웹 화면을 공부하고 있습니다.

경력에는 재직 기간과 담당 업무를, 프로젝트에는 구현 내용과 결과를 적었습니다. 기술에서는 업무에 쓴 도구와 개인적으로 익히는 도구를 구분했습니다. 공개 활동의 최근 내용은 GitHub 프로필에서도 볼 수 있습니다.

학력과 교육

  • 한양대학교 서울캠퍼스 생명과학 석사, 2015.03–2017.02.
  • 한양대학교 ERICA캠퍼스 분자생명과학 학사, 2007.03–2013.02.
  • 패스트캠퍼스 데이터 사이언스 School 6기, 2017.08–2017.12.

기술

실무·연구·개인 프로젝트·학습으로 나누어 기술을 사용한 맥락을 소개합니다.

클라우드·플랫폼

  • Azure / NCP / NHN Cloud실무 · VPC·서비스 연동·테스트 환경과 백엔드 배포를 구성했습니다.
  • Docker / Docker Compose실무·개인 프로젝트 · 사내 테스트 환경을 만들고, 홈랩에서는 include와 실행 프로필로 서비스 조합을 관리합니다.
  • Kubernetes / NKS실무 · NKS에서 마이크로서비스 배포, HPA·PDB·파드 분산 배치를 다뤘습니다.
  • NCP DevTools / GitHub Actions실무·개인 프로젝트 · 빌드·배포 흐름과 저장소 구조 검사를 자동화했습니다.
  • k3d / Helm / ArgoCD개인 프로젝트 · 로컬 다중 노드 클러스터와 App-of-Apps·ApplicationSet 구성을 관리합니다.
  • OpenBao / External Secrets개인 프로젝트 · 외부 비밀 저장소와 Kubernetes의 연결 설정을 다룹니다.

백엔드·데이터베이스

  • Python / Django / DRF실무 · 수어 콘텐츠의 생성·편집·검색·업로드·상태 관리 API를 개발했습니다.
  • Flask / FastAPI실무 · 음성·STT·수어 매칭 서버의 API와 서비스 연동을 개발·유지보수했습니다.
  • Node.js / Express.js / Sequelize실무 · 콘텐츠 API와 데이터 접근 로직을 구현하고 Django API를 리팩터링했습니다.
  • MySQL / MongoDB실무 · 콘텐츠·발송·서비스 데이터의 저장 모델과 조회·갱신 로직을 다뤘습니다.
  • Celery / Redis실무 · 제작 플랫폼의 비동기 작업과 캐싱에 사용했습니다.
  • OpenSearch실무 · 콘텐츠 검색과 데이터베이스·검색 인덱스의 동기화를 구현했습니다.

관측성·장애 대응

  • Prometheus / Grafana실무 · Azure·NCP·온프레미스의 수집 지표와 대시보드를 구성했습니다.
  • Node Exporter / Blackbox Exporter실무 · 호스트 상태와 외부에서 확인하는 서비스 응답을 함께 수집했습니다.
  • Alertmanager실무 · 모니터링 이벤트를 장애 알림과 대응 흐름에 연결했습니다.
  • Incident response / Runbooks실무 · SEV 분류, 탐지·선언·복구·개선 절차와 대응 매뉴얼을 작성했습니다.
  • OpenTelemetry / Loki / Tempo / Alloy개인 프로젝트·학습 · 로그·트레이스 수집 구성과 상관관계를 익히고 있습니다.
  • SLI / SLO / Error budget학습 · 사용자 여정의 성공 조건과 측정 창, 오류 예산을 공부합니다.

웹 화면·API 연동

  • React / Next.js / Zustand학습 · 컴포넌트·라우팅·클라이언트 상태를 나눠 화면을 구성하는 방법을 익힙니다.
  • TypeScript / Tailwind CSS학습 · 화면과 API 사이의 데이터 형식, 반응형 스타일을 다룹니다.
  • Swagger / OpenAPI실무 · 관리 API와 외부 연동 API의 요청·응답을 문서화했습니다.
  • Accessibility학습 · 키보드 흐름, 이름·역할·상태, 오류 안내를 화면의 동작과 함께 확인합니다.

AI 도구·에이전트 학습

  • Ollama / Open WebUI개인 프로젝트 · 홈 인프라의 로컬 AI 서비스 구성과 실행 조건을 관리합니다.
  • LangChain / LangGraph / MCP학습 · 검색·도구 호출·상태 흐름과 연결 권한을 공부합니다.
  • PyTorch / Hugging Face학습 · 모델 활용과 추론·서빙의 기초를 익힙니다.
  • Agent collaboration개인 프로젝트 · 요구사항·작업 범위·검증 결과를 문서로 연결하고 공급자별 진입점을 정리합니다.

데이터 분석·파이프라인

  • Pandas / Jupyter Notebook실무 · 음성·STT 결과와 발송 오류를 분석하고 보고서를 정리했습니다.
  • Python / cron / ETL실무 · 반복 수집·전처리·분석을 자동화하고 매칭 로직 개선에 연결했습니다.
  • Samtools / Linux연구 · 유전체 데이터를 전처리하고 변이 빈도와 어노테이션을 다뤘습니다.
  • NumPy / Polars활용·학습 · 배열·테이블 처리와 변환 방식을 비교하며 익힙니다.
  • Kafka / Airflow / dbt학습 · 스트리밍·스케줄링·변환 계층과 데이터 품질 검사를 공부합니다.

경력

접근성 서비스 기업의 백엔드·플랫폼 업무와 공공 보건 연구기관의 유전체 분석 경력을 정리했습니다.

  1. 2018.05–2024.09

    개발팀 책임 — 백엔드·플랫폼·DevOps접근성 서비스 기업

    • Django·Flask·FastAPI·Express.js 기반 REST API와 콘텐츠 관리 백엔드를 개발했습니다.
    • 클라우드·온프레미스 환경, Kubernetes 배포, CI/CD와 모니터링을 구성했습니다.
    • 음성·STT 데이터를 분석하고 수어 서비스를 유지보수하며 장애 대응 절차를 문서화했습니다.
  2. 2014.01–2017.03

    바이오과학정보과 일반연구원공공 보건 연구기관

    • Samtools·Linux·Python으로 DNA 염기서열 데이터를 전처리하고 분석했습니다.
    • 집단 내 유전변이 빈도와 인구집단 간 빈도 차이를 확인했습니다.
    • KRGDB 연구에서 공개 데이터베이스를 활용한 변이 어노테이션을 수행했습니다.

프로젝트

백엔드·배포·분석·장애 대응의 실무 프로젝트와 현재 공개 저장소를 소개합니다.

  1. 일반

    수어 콘텐츠 제작 플랫폼 개발

    콘텐츠 생성·편집·업로드·상태 관리와 외부 애니메이션 모듈을 연결했습니다.

    Python · Django · Django REST Framework · MySQL · AWS · Azure · Nginx · Linux

  2. 일반

    수어통 데이터 분석과 매칭 개선

    음성·STT·발송 결과를 비교해 오류를 분류하고 반복 분석을 자동화했습니다.

    Python · Pandas · Jupyter Notebook · Requests · cron · NCP · Linux

  3. 일반

    수어통 서비스 개선·유지보수

    음성 수집·STT·수어 매칭·알림톡을 연결한 서비스의 운영 개선입니다.

    Python · Flask · FastAPI · MySQL · Azure · NCP · SENS

  4. 일반

    웹 기반 아바타 수어번역 서비스

    공공 SaaS의 API부터 NCP Kubernetes 배포·인증 대응까지 맡았습니다.

    Python · Flask · Node.js · Express.js · MySQL · NCP · Kubernetes · Docker · Nginx

  5. 일반

    이용 장벽 없는 스마트 전시관

    수어·음성·점자 안내 키오스크의 콘텐츠 API와 외부 연동을 개발했습니다.

    Python · Django · Django REST Framework · Node.js · Express.js · MySQL · NHN Cloud · Prometheus · Alertmanager

  6. 일반

    장애 대응 프로세스 구축

    장애를 선언한 뒤 누가 판단하고 무엇부터 복구할지 정한 대응 절차입니다.

    Incident Response · Runbooks · SEV

  7. 일반

    청각장애인 재난안전 긴급 알림

    CAP XML 재난 정보를 수신·저장하고 수신 설정과 지역에 맞춰 전달했습니다.

    Python · Requests · Pandas · MySQL · MongoDB · Firebase Cloud Messaging · Azure · Nginx

  8. 일반

    콘텐츠 제작 플랫폼 고도화

    콘텐츠 상태·검색·비동기 처리를 함께 다듬은 백엔드 개선 작업입니다.

    Python · Django · Django REST Framework · Celery · Redis · MySQL · MongoDB · OpenSearch · Azure