의료·임상 분석 제품
의료·임상 분석 화면 개발
의료·임상 분석 제품의 화면 개발과 접근성·성능 개선, 개발 환경 개선과 백엔드 작업을 함께 맡고 있습니다.
- 긴 분석 과정에서 조건 설정부터 결과 확인까지 이어지도록 입력·실행·결과·리포트 화면과 ECharts·Plotly 기반 비교 차트를 개발했습니다.
- 화면 크기가 달라지거나 오류 후 재진입해도 사용자가 작업을 이어갈 수 있도록, 기획서에 없던 반응형·오류·재진입 동작을 제안하고 기획·디자인·백엔드 담당자와 정해 적용했습니다.
- 입력 항목이 많은 화면에서 반복 입력과 마우스 이동의 피로를 줄이기 위해 키보드 탭 이동과 import 기능을 추가했습니다.
- 이미지 요청과 UI 수정 범위를 줄이기 위해 이미지 기반 UI를 공통 컴포넌트로 바꾸고, 정적 이미지를 화면 크기별 WebP로 변환하는 빌드 작업을 추가했습니다. 빌드 기준 이미지 전송 용량은 계산상 약 95% 줄었고, 별도 Lighthouse 비교에서 LCP는 1.3초에서 1.0초, Speed Index는 3.4초에서 0.7초로 줄었습니다.
- 같은 질병 목록을 화면마다 다시 요청하지 않도록 직접 조회 코드를 공통 TanStack Query hook으로 바꾸고, 캐시와 재요청 기준을 한곳에서 관리했습니다.
AI 개발 도구 활용 경험
- AI가 의료·임상 용어와 화면 동작을 임의로 해석하지 않도록 프로젝트 지침, 작업별 Skill, 실행 Hook, PR 규칙을 저장소에 두고 Codex와 Claude가 참고하게 했습니다.
- 비개발 직군도 도메인 자료를 쉽게 이해할 수 있도록 기획·히스토리 문서를 Markdown으로 옮기고, Codex·Claude에서 검색할 수 있는 로컬 LLM Wiki 기반으로 MCP 서버를 만들어 배포했습니다.
개발 환경과 백엔드 운영
기술 스택
Next.js
React
TypeScript
Tailwind CSS
Radix UI
TanStack Query
Zustand
React Hook Form
ECharts
Plotly
Vitest
Playwright
axe-core
GitHub Actions
Husky
Docker
Python
Django
Django REST Framework
PostgreSQL
Codex
Claude
MCP
- Vite·Next.js Pages Router 기반으로 나뉘어 구조와 코드 작성 방식이 달랐던 프론트엔드 프로젝트 4개의 구조와 배포 흐름을 통일하고, 기존 코드를 공통 코딩 컨벤션에 맞춰 수정했습니다.
- 수동 Docker 배포를 GitHub Actions로 전환하는 작업을 주도했으며, 배포 후 백엔드 HTTP 응답과 컨테이너 상태에 이상이 있으면 Actions Summary와 로그를 남기게 했습니다.
- 타입·테스트·빌드 오류가 원격 브랜치에 올라가지 않도록 Husky pre-commit·pre-push에 typecheck·test·build를 연결했습니다.
- 서비스 오류를 제품·환경·요청 단위로 추적하기 위해 세 백엔드의 로그를 업무 DB와 분리해 환경·서비스·요청 ID별로 저장했습니다. Admin에는 로그 조회와 프론트엔드 오류 보고 API를 추가하고, 프론트엔드 오류 유형을 서버 로그와 연결할 수 있게 매핑했습니다.
