의료 IT 풀스택 개발자

안녕하세요, 오원준입니다.

연속혈당측정(CGM) 의료기기 기업에서 의료 데이터 기반 웹 서비스와 사내 실험 데이터 플랫폼을 프론트엔드부터 백엔드·인프라까지 담당하고 있습니다. 온프레미스 서비스의 AWS 무손실 이전, CI/CD 및 무중단 배포 체계 구축, 레거시 시스템 보안 정비를 주도했습니다.

오원준
경력2년 8개월UXN 재직 중
신규 구축3개혈당·센서·회의록 도구
무중단 배포3개 서비스배포 중 의료 서비스 중단 0건
AWS 무손실 이전2건의료 데이터 유실 0건
Experience

경력

이력서 보기
  1. (주)유엑스엔

    (주)유엑스엔

    풀스택 개발
    2026.03 ~ 재직중

    연속혈당측정 의료기기 웹 서비스·사내 데이터 플랫폼·IoT 플랫폼 6개 프로젝트 동시 담당 (개발부터 인프라·배포까지)

    개인용 연속혈당 모니터링 서비스 - AWS 이전·배포 전담, 관리자 콘솔 신규 구축
    • 온프레미스 → AWS(EC2·RDS) 이전: 수십만 행 전 테이블 일치 검증, 전환 다운타임 약 2.5분, 인증서 자동 갱신
    • 키를 서버에 두지 않는 CI/CD(GitHub Actions + OIDC + SSM)와 nginx blue/green 무중단 배포 - 배포 중 외부 점검 236회 실패 0, 추가 비용 0원
    • 관리자 콘솔 0→1 구축(사용자·기기·권한 관리, soft delete), 권한 문자열을 코드 기반 RBAC로 무중단 마이그레이션
    • React 화면을 서버 UTC 시각 → 사용자 현지 시간 표시로 전환(차트·목록·리포트), jest + jsdom 골든 테스트로 한국 화면 변화 0 검증
    • 리포트 조회 쿼리 29회 → 3회, 응답 8.0초 → 3.6초
    • 시간 저장을 UTC 기준(timestamptz)으로 무중단 전환 - 전환 구간 데이터 유실 0행, 골든 마스터 테스트로 화면 변화 없음 증명
    • 주기적 데이터 처리 스케줄러·FCM 푸시 출시, 처리 로직 교체 시 저장값 전수 재계산·일치 검증
    • 웹·앱 계산 결과가 다른 원인을 찾아 일치율 약 40% → 100%
    사내 센서 실험 데이터 분석 플랫폼 - 형상관리·보안·배포 체계 최초 구축
    • 레거시 Flask 플랫폼에 형상관리·코드 리뷰 체계 도입
    • 접근제어·세션 보안 체계 정비 - 관찰 → 차단 2단계로 업무 중단 없이 적용
    • CI/CD: 테스트 게이트 → 헬스체크 → 실패 시 자동 롤백, blue/green 무중단 배포, 테스트 0개 → 211개
    • 목록 조회 20초 → 0.6초(상관 서브쿼리를 CTE로 재작성)
    • 센서 데이터 가공 파이프라인과 시각화 화면 구축 - 그래프·CSV 결과 100% 일치 검증
    • ApexCharts 기반 데이터 비교 화면(최대 10개 선 겹쳐 보기·좌우 분할, 축 범위 직접 입력·축 비율 연동)
    • 해외 기기 시간대 처리 - 저장은 UTC, 화면은 보는 사람의 브라우저 시간으로(목록·차트·CSV 전체 적용)
    • 골든 마스터 테스트로 결과 동일성 유지하며 리팩터링(차트 함수 6→1, SQL 7벌→1, 미사용 코드 373줄 삭제)
    연속혈당 파생 서비스 - 단독 구축·AWS 이관·운영
    • 기존 서비스를 복제한 당일 저장소 분리·Docker 배포·HTTPS까지 라이브
    • 단일 세션과 10초 이내 실시간 강제 로그아웃, Google·Kakao OAuth, UTC 저장·현지 시간 표시
    • 온프레미스 → AWS 이관 단독 완료(전 테이블 일치 검증, DNS 전환), blue/green 첫 전환 점검 225회 실패 0
    • 중복 이메일 계정 방지(fail-closed 로그인 + DB partial unique index)
    • 단위 테스트 15개 → 119개, 작성 중 운영 코드 결함 8건 발견, 테스트 설계서 45개 항목
    고객사 IoT 기기 연동 웹 플랫폼 - 웹뷰·백엔드 개발
    • 기기 ↔ 서버 ↔ 웹뷰 실시간 통신(WebSocket) 구축
    • Tailwind 전환으로 인라인 스타일 167 → 31개(-81%), 접근성 수정 20곳(div → button), 다국어 지원
    센서 감도표 관리 도구 - 단독 개발
    • 저장소 생성부터 배포까지 단독 구축, 버전 이력·UPSERT 저장, CSV(RFC 4180)·엑셀 일괄 등록
    • 동시 업로드 중복 생성을 PostgreSQL ON CONFLICT 로 원자화, QA 12건 해결
    • 대량 갱신은 ROLLBACK 드라이런으로 먼저 검증 후 커밋, 전극별 감도표·모바일 화면 추가
    기타
    • 사내 회의록 정리 도구 신규 풀스택(FastAPI + React·Vite·TypeScript), 무중단 교체 중 연속 요청 3,298건 전부 성공
    • 팀 문서 저장소 신설(링크·비밀값 자동 검사), PR 컨벤션 정립 후 기존 PR 386개 정리, 6개 프로젝트 인수인계 문서 작성
    JavaPythonJavaScriptTypeScriptSpring BootFlaskReactNext.jsSpring SecurityJPATailwind CSSZustandApexChartsAWSDockernginxGitHub ActionsFCMPostgreSQL
  2. 상상스토리(주)

    상상스토리(주)

    웹개발 · 연구소 · 주임
    2022.05 ~ 2024.04

    Spring 기반 웹 시스템 3건 개발·운영 (포털, LMS, 시설물 관리)

    사내 포털 및 접근권한 관리 시스템 개발
    • eGovFramework 기반 포털 시스템 신규 구축
    • Spring Security 활용 RBAC 기반 권한 관리 및 인증 시스템 설계·구현
    • 시큐어 코딩 가이드 적용 및 보안 강화
    • Docker 기반 사내 서버 운영 환경 구축 및 최적화
    LMS 및 시설물 관리 시스템 고도화
    • 법무부 솔로몬로 포탈, LMS, 시설물 관리 시스템 개발 및 성능 최적화
    • 웹 접근성 WAX Scanner 70 → 90점 개선 (KWCAG 인증 획득)
    • SQL Injection, XSS 등 보안 취약점 60건 전수 점검·개선
    • N+1 문제 해결을 위한 쿼리 튜닝
    • RESTful API 설계 및 로그/통계 대시보드 구현
    • 서버 관리 자동화 및 장애 대응 프로세스 체계화
    JavaJavaScriptSpring FrameworkSpring BooteGovFrameworkJSPSpring SecurityMyBatisjQueryLinux(CentOS)DockerOracleMySQL
Projects

포트폴리오

전체 보기
Activity

기록

모든 글
GitHub Contributions
3272건(개인 + 회사 계정 합산)
10월12월1월2월3월4월5월6월7월8월9월10월2025-10-19 - 0건2025-10-20 - 1건2025-10-21 - 0건2025-10-22 - 0건2025-10-23 - 0건2025-10-24 - 0건2025-10-25 - 0건2025-10-26 - 0건2025-10-27 - 0건2025-10-28 - 0건2025-10-29 - 0건2025-10-30 - 0건2025-10-31 - 1건2025-11-01 - 0건2025-11-02 - 0건2025-11-03 - 8건2025-11-04 - 6건2025-11-05 - 2건2025-11-06 - 7건2025-11-07 - 0건2025-11-08 - 0건2025-11-09 - 0건2025-11-10 - 0건2025-11-11 - 0건2025-11-12 - 0건2025-11-13 - 0건2025-11-14 - 0건2025-11-15 - 2건2025-11-16 - 0건2025-11-17 - 0건2025-11-18 - 0건2025-11-19 - 0건2025-11-20 - 0건2025-11-21 - 0건2025-11-22 - 0건2025-11-23 - 0건2025-11-24 - 0건2025-11-25 - 1건2025-11-26 - 1건2025-11-27 - 12건2025-11-28 - 1건2025-11-29 - 1건2025-11-30 - 0건2025-12-01 - 0건2025-12-02 - 0건2025-12-03 - 3건2025-12-04 - 0건2025-12-05 - 14건2025-12-06 - 0건2025-12-07 - 3건2025-12-08 - 2건2025-12-09 - 0건2025-12-10 - 0건2025-12-11 - 0건2025-12-12 - 7건2025-12-13 - 3건2025-12-14 - 0건2025-12-15 - 5건2025-12-16 - 4건2025-12-17 - 2건2025-12-18 - 0건2025-12-19 - 2건2025-12-20 - 4건2025-12-21 - 0건2025-12-22 - 0건2025-12-23 - 14건2025-12-24 - 5건2025-12-25 - 0건2025-12-26 - 0건2025-12-27 - 0건2025-12-28 - 0건2025-12-29 - 1건2025-12-30 - 21건2025-12-31 - 0건2026-01-01 - 0건2026-01-02 - 2건2026-01-03 - 0건2026-01-04 - 2건2026-01-05 - 2건2026-01-06 - 7건2026-01-07 - 0건2026-01-08 - 6건2026-01-09 - 7건2026-01-10 - 1건2026-01-11 - 3건2026-01-12 - 4건2026-01-13 - 6건2026-01-14 - 20건2026-01-15 - 33건2026-01-16 - 0건2026-01-17 - 0건2026-01-18 - 0건2026-01-19 - 8건2026-01-20 - 6건2026-01-21 - 0건2026-01-22 - 2건2026-01-23 - 0건2026-01-24 - 0건2026-01-25 - 0건2026-01-26 - 1건2026-01-27 - 2건2026-01-28 - 1건2026-01-29 - 3건2026-01-30 - 8건2026-01-31 - 0건2026-02-01 - 4건2026-02-02 - 0건2026-02-03 - 4건2026-02-04 - 12건2026-02-05 - 9건2026-02-06 - 8건2026-02-07 - 4건2026-02-08 - 0건2026-02-09 - 5건2026-02-10 - 0건2026-02-11 - 0건2026-02-12 - 2건2026-02-13 - 5건2026-02-14 - 0건2026-02-15 - 2건2026-02-16 - 0건2026-02-17 - 11건2026-02-18 - 4건2026-02-19 - 3건2026-02-20 - 0건2026-02-21 - 0건2026-02-22 - 0건2026-02-23 - 0건2026-02-24 - 1건2026-02-25 - 0건2026-02-26 - 0건2026-02-27 - 4건2026-02-28 - 0건2026-03-01 - 2건2026-03-02 - 1건2026-03-03 - 0건2026-03-04 - 0건2026-03-05 - 0건2026-03-06 - 7건2026-03-07 - 6건2026-03-08 - 1건2026-03-09 - 0건2026-03-10 - 0건2026-03-11 - 0건2026-03-12 - 2건2026-03-13 - 6건2026-03-14 - 0건2026-03-15 - 0건2026-03-16 - 0건2026-03-17 - 0건2026-03-18 - 2건2026-03-19 - 0건2026-03-20 - 0건2026-03-21 - 0건2026-03-22 - 0건2026-03-23 - 0건2026-03-24 - 0건2026-03-25 - 0건2026-03-26 - 1건2026-03-27 - 0건2026-03-28 - 0건2026-03-29 - 1건2026-03-30 - 0건2026-03-31 - 0건2026-04-01 - 0건2026-04-02 - 0건2026-04-03 - 0건2026-04-04 - 0건2026-04-05 - 0건2026-04-06 - 0건2026-04-07 - 0건2026-04-08 - 0건2026-04-09 - 0건2026-04-10 - 0건2026-04-11 - 4건2026-04-12 - 0건2026-04-13 - 0건2026-04-14 - 0건2026-04-15 - 2건2026-04-16 - 0건2026-04-17 - 0건2026-04-18 - 0건2026-04-19 - 0건2026-04-20 - 0건2026-04-21 - 20건2026-04-22 - 18건2026-04-23 - 20건2026-04-24 - 12건2026-04-25 - 0건2026-04-26 - 0건2026-04-27 - 18건2026-04-28 - 17건2026-04-29 - 21건2026-04-30 - 18건2026-05-01 - 0건2026-05-02 - 0건2026-05-03 - 0건2026-05-04 - 10건2026-05-05 - 0건2026-05-06 - 14건2026-05-07 - 10건2026-05-08 - 14건2026-05-09 - 0건2026-05-10 - 0건2026-05-11 - 6건2026-05-12 - 64건2026-05-13 - 26건2026-05-14 - 10건2026-05-15 - 6건2026-05-16 - 0건2026-05-17 - 0건2026-05-18 - 4건2026-05-19 - 27건2026-05-20 - 10건2026-05-21 - 18건2026-05-22 - 4건2026-05-23 - 4건2026-05-24 - 0건2026-05-25 - 4건2026-05-26 - 16건2026-05-27 - 16건2026-05-28 - 6건2026-05-29 - 2건2026-05-30 - 0건2026-05-31 - 0건2026-06-01 - 0건2026-06-02 - 12건2026-06-03 - 0건2026-06-04 - 11건2026-06-05 - 0건2026-06-06 - 0건2026-06-07 - 4건2026-06-08 - 12건2026-06-09 - 24건2026-06-10 - 19건2026-06-11 - 12건2026-06-12 - 3건2026-06-13 - 0건2026-06-14 - 6건2026-06-15 - 15건2026-06-16 - 7건2026-06-17 - 28건2026-06-18 - 25건2026-06-19 - 9건2026-06-20 - 0건2026-06-21 - 0건2026-06-22 - 14건2026-06-23 - 20건2026-06-24 - 30건2026-06-25 - 46건2026-06-26 - 9건2026-06-27 - 0건2026-06-28 - 0건2026-06-29 - 15건2026-06-30 - 27건2026-07-01 - 30건2026-07-02 - 44건2026-07-03 - 8건2026-07-04 - 13건2026-07-05 - 0건2026-07-06 - 44건2026-07-07 - 20건2026-07-08 - 7건2026-07-09 - 7건2026-07-10 - 24건2026-07-11 - 0건2026-07-12 - 0건2026-07-13 - 24건2026-07-14 - 6건2026-07-15 - 9건2026-07-16 - 8건2026-07-17 - 3건2026-07-18 - 0건2026-07-19 - 12건2026-07-20 - 6건2026-07-21 - 27건2026-07-22 - 16건2026-07-23 - 18건2026-07-24 - 7건2026-07-25 - 21건2026-07-26 - 0건2026-07-27 - 32건2026-07-28 - 3건2026-07-29 - 3건2026-07-30 - 9건2026-07-31 - 18건2026-08-01 - 3건2026-08-02 - 0건2026-08-03 - 12건2026-08-04 - 34건2026-08-05 - 30건2026-08-06 - 21건2026-08-07 - 16건2026-08-08 - 0건2026-08-09 - 0건2026-08-10 - 9건2026-08-11 - 10건2026-08-12 - 9건2026-08-13 - 14건2026-08-14 - 0건2026-08-15 - 0건2026-08-16 - 0건2026-08-17 - 2건2026-08-18 - 16건2026-08-19 - 3건2026-08-20 - 19건2026-08-21 - 3건2026-08-22 - 0건2026-08-23 - 0건2026-08-24 - 42건2026-08-25 - 15건2026-08-26 - 16건2026-08-27 - 26건2026-08-28 - 16건2026-08-29 - 0건2026-08-30 - 39건2026-08-31 - 42건2026-09-01 - 48건2026-09-02 - 26건2026-09-03 - 19건2026-09-04 - 7건2026-09-05 - 29건2026-09-06 - 0건2026-09-07 - 32건2026-09-08 - 17건2026-09-09 - 36건2026-09-10 - 14건2026-09-11 - 16건2026-09-12 - 0건2026-09-13 - 0건2026-09-14 - 15건2026-09-15 - 39건2026-09-16 - 45건2026-09-17 - 70건2026-09-18 - 89건2026-09-19 - 0건2026-09-20 - 0건2026-09-21 - 58건2026-09-22 - 42건2026-09-23 - 2건2026-09-24 - 0건2026-09-25 - 0건2026-09-26 - 0건2026-09-27 - 0건2026-09-28 - 74건2026-09-29 - 27건2026-09-30 - 17건2026-10-01 - 66건2026-10-02 - 83건2026-10-03 - 0건2026-10-04 - 0건2026-10-05 - 10건2026-10-06 - 32건2026-10-07 - 0건2026-10-08 - 86건2026-10-09 - 0건2026-10-10 - 0건2026-10-11 - 4건2026-10-12 - 60건2026-10-13 - 44건2026-10-14 - 43건2026-10-15 - 42건2026-10-16 - 83건2026-10-17 - 0건2026-10-18 - 48건
LessMore
Contact

함께 이야기 나눠요

궁금한 점이나 제안이 있다면 편하게 연락 주세요.

© 2026 WonJun. All rights reserved.