(주) 단비교육
유아학습 플랫폼 국내 윙크 및 글로벌(인도네시아) 서비스 백엔드 담당. 메인 서버·큐레이션·결제·인증·글로벌 등 6개 백엔드 서비스에 걸쳐 신규 개발과 레거시 개선·플랫폼 엔지니어링 병행.
주요 업무 및 성과
-
LCMS(학습 콘텐츠 관리 시스템) 신규 구축
- 도메인 모델링부터 배포 파이프라인까지 백엔드 신규 구축 주도
- 콘텐츠 배포/재배포, Export·Import 데이터 이관, CDN 캐시 전략까지 전체 사이클 설계
-
온라인 워크북 '꾹꾹' 신규 서비스 백엔드
- 회원 진입 → 수준진단 → 교재 배송 → 화상수업까지 백엔드 전 구간을 기존 윙크 흐름 위에 배선
-
윙크 서비스 로깅·관측성 인프라 구축
- JSON 구조화 로그 + trace_id 기반 요청 추적 체계를 윙크 전사 서비스로 이식
- 민감정보 마스킹 유틸 및 Datadog/Sentry 역할 분리 구축
- 결제 서비스는 PCI-DSS 기준 마스킹 적용, PG 4사 연동 에러 로깅 및 Grafana 수집 포맷 통일
-
인증·보안 강화 (3개 서비스 크로스)
- 통합어드민·큐레이션·인증서버에 걸친 중복 로그인 제한 (인증서버 JWT Session Payload 연계)
- 2차인증(2FA) 도입, 세션 만료 정책 수립, 로그아웃 쿠키 미삭제 등 보안 버그 수정
-
개인정보 보호·계정 보안 정책 구축 (ISMS 대응)
-
백오피스 응답 개인정보 마스킹 미들웨어 구축
- 원문 열람 권한 기반 판정, 마스킹 실패 시 원본을 반환하는 fail-open 설계로 조회 장애 위험 차단
- 개인정보취급자 비밀번호 정책(3종 조합·90일 만료)과 로그인 실패 잠금을 임직원 한정 차등 적용
- 메인 서버에서 설계·검증 후 큐레이션 서버로 이식하여 두 서비스에 일관 적용
-
백오피스 응답 개인정보 마스킹 미들웨어 구축
-
메인 윙크 서비스 Python/Django 메이저 버전업
- Python 3.9 → 3.11, Django 3.2 → 4.2 LTS 마이그레이션
- 유지보수가 어려웠던 단일 구조의 Dockerfile을 4-stage multi-stage 빌드로 재구성
-
개발 환경 현대화
-
requirement.txt 기반 패키지 관리를 Poetry, uv로 전환
- 운영 이슈(lock 에러, 호환성) 대응 및 롤백을 거쳐 무중단 정착
-
GitHub Actions 기반 테스트 자동화 파이프라인 도입
- PR 단계 회귀 검증 자동화, 배포 안정성 강화
-
requirement.txt 기반 패키지 관리를 Poetry, uv로 전환
-
백엔드 팀 개발 표준 플랫폼 구축
- 팀 공통 코딩 표준을 문서가 아닌 실행 가능한 플러그인으로 배포하는 사내 프라이빗 마켓플레이스 신규 구축
- 버전·예외 클래스·테스트 설정을 특정 레포에 하드코딩하지 않고 프로젝트에서 탐색하도록 설계해 여러 서비스에 공통 적용
- CI 구조 검증 스크립트, PR 템플릿, 합의 기반 CONTRIBUTING 등 거버넌스 정비
-
통합테스트 코드 개선
-
총 307개 파일 규모 미사용 테스트 정리 및 속도 최적화
- Fixture/Mock 중복 제거 및 구조 재정비, 유지 안 되는 레거시 테스트 제거
-
총 307개 파일 규모 미사용 테스트 정리 및 속도 최적화
-
성능 및 기술부채 해소
- 레거시 ORM N+1 쿼리 개선으로 DB I/O 10% 감소, API 응답 시간 Datadog APM 기준 최대 20% 개선
- 서비스 로직 분리·중복 코드 정리 등 점진적 리팩토링으로 개선
-
신규 API 개발 및 운영 대응
-
국내 및 글로벌(인도네시아 서비스) 양쪽에서 비즈니스 요구사항 기반으로 지속적으로 설계·개발
- 글로벌: 방문교사 오프라인 체험 신청 API, WhatsApp QR 전송 API 등 현지 채널 대응 기능 개발
- 운영(CS) 이슈 대응 및 데이터 추출 업무 수행, 4개 서비스 정기 배포 릴리즈 관리
-
국내 및 글로벌(인도네시아 서비스) 양쪽에서 비즈니스 요구사항 기반으로 지속적으로 설계·개발