Frontend Engineer
서비스에서 발생하는 문제를 지속적으로 관찰하고 문제의 원인을 찾아서 개선합니다. 사용자가 더 편리하고 정확한 웹 서비스를 사용할 수 있도록 기여하고 싶습니다.
TypeScript와 React 기반 서비스에서 실시간 정보 갱신, 문서 생성의 진행 상황 안내와 대시보드 표시값을 개선하고 인증 문제를 해결했습니다. 배포 후에도 화면과 조작을 지속적으로 확인해 왔습니다.
2025 — Present
인공지능팩토리
Frontend Engineer
공공기관용 웹 서비스의 프론트엔드를 담당하며 표시 정보의 정확성, 문서 생성의 진행 상황 안내, API 응답 처리 중 화면 반응성과 배포 안정성을 개선했습니다.
대시보드 데이터 표시 오류와 전송 효율 개선
대시보드에서 시간에 따른 측정값이 누락되거나 잘못 표시되는 문제를 해결해 사용자가 서버 상태를 정확히 확인할 수 있도록 했습니다. 지표 이름과 라벨을 실제 응답에 맞추고 비율 계산을 바로잡았으며, 측정값이 잘못 합쳐지는 원인을 찾아 식별 기준을 수정했습니다.
마지막 요청 시각 이후의 값만 가져오도록 조회 방식을 바꿔 10분 동안의 전송량을 96.5 MB에서 41 KB로 줄였습니다. 브라우저에서 Prometheus를 직접 호출하지 않도록 Next.js API를 설계하고 구현했습니다. 배포된 대시보드의 표시값과 실제 응답을 대조해 정확성을 확인했습니다.
운영 환경에서 확인/Next.js, Prometheus, Recharts
문서 생성 중 진행 상황 안내와 상태 표시 개선
사용자가 5~10분 걸리는 문서 생성의 진행 단계와 경과 시간을 지속적으로 확인할 수 있도록 프론트엔드를 설계하고, 페이지 이동이나 취소 전에 사용자가 한번 더 확인하도록 안내 UI를 구성했습니다.
SSE 이벤트 뒤 서버 상태를 다시 확인하도록 해 이벤트 순서가 바뀌거나 연결 오류가 발생해도 화면이 실제 처리 상태를 기준으로 갱신되게 했습니다. 문서 생성 상태를 확인하는 API 요청은 150~200회에서 30회 이하로 줄였습니다. 배포 후 문서의 생성 및 취소 상태가 화면의 진행 상태와 일치하는지 확인했습니다.
문서 생성 5~10분/React, SSE, Next.js
대용량 응답 처리 중 화면 반응성과 실시간 차트 연속성 개선
API 응답 크기가 최대 330 MB인 상황에서 최대 프레임 갱신 시간 간격을 1,316.6 ms에서 16.8 ms로 줄였습니다. API 요청, JSON 분석과 표시값 변환을 Web Worker로 분리하는 모듈을 설계하고 여러 화면에 적용해 응답 처리 중에도 화면을 조작할 수 있도록 개선했습니다.
새로고침 뒤의 과거 값과 새로 들어오는 값을 같은 시간 기준으로 합쳐 차트가 끊기거나 중복되지 않도록 했습니다. 나뉘어 도착한 JSON도 다음 청크와 합쳐 처리해 실시간 표시가 이어지도록 했습니다.
응답 크기와 형식 유지/Web Worker, REST, Server Sent Event
70개 이상 주요 절차 검증과 인증 복구 일원화
로그인 사용자의 주요 절차를 70개 이상의 E2E 시나리오로 반복 검증할 수 있게 해 배포 전에 주요 동작과 인증 문제를 확인할 수 있도록 했습니다. 이 과정에서 브라우저에 남은 인증 정보와 만료된 서버 세션이 일치하지 않는 문제를 재현했습니다.
로그인이 필요한 페이지에 접속하기 전과 화면 사용 중에 발생한 인증 실패를 같은 방식으로 복구하도록 해 사용자에게 일관된 동작을 제공했습니다. 원인 분석부터 공통 복구 방식의 QA 배포까지 맡았습니다.
배포 전 검증/Playwright, Authentication, QA
다른 앱에 통합할 수 있도록 프론트엔드를 라이브러리로 구성
단독 실행하던 프론트엔드를 다른 앱에서도 사용할 수 있도록 Vite 라이브러리 빌드를 구성했습니다. 사용하는 앱에서도 UI와 동작을 일관되게 제공하도록 타입 선언, CSS와 Provider 연결을 정리했습니다.
타 앱 통합/Vite, TypeScript, React, CSS
2022 — 2024
크러스트유니버스 / Quarkonix
Frontend Engineer
사용자의 요청 결과를 화면에 바로 보여주고, 첫 화면이 뜨는 시간을 줄였으며, 실시간 정보가 표시되지 않던 문제에 대응했습니다. 초기 로딩을 개선한 방법은 다른 프로젝트에서도 참고할 수 있게 문서로 남겼습니다.
요청 결과를 즉시 정확하게 보여주도록 개선
사용자가 특정 기능을 요청할 때 서버 응답을 기다리지 않고 요청 결과를 웹 페이지에 바로 보여주도록 했습니다. 화면에 보이는 여러 정보가 서버와 어긋나는 문제에 대응하고, 중복 요청을 제거하여 요청 수를 절감했습니다.
서비스 운영/React, TypeScript, Optimistic Update
초기 로딩 단축과 적용 방법 재사용
페이지가 사용자에게 보이기까지 걸리는 시간을 단축했습니다. 다른 프론트엔드 프로젝트에서도 같은 방법으로 개선할 수 있도록 적용 순서를 문서로 남겼습니다.
서비스 배포/Vite, React, Lazy Loading
실시간 정보 갱신 복구
간헐적인 WebSocket 연결 중단 원인을 Chrome DevTools로 찾아 수정해 실시간 정보 갱신이 멈추는 문제를 해결했습니다.
서비스 운영/WebSocket, Chrome DevTools
v7.13.1
React Router
선택적 URL parameter가 `/` 구분자 없는 주소까지 잘못 매칭되는 문제를 수정했습니다.
주소 끝에 "."으로 시작하는 부분이 붙는 경우도 기존처럼 처리되는지 확인할 수 있도록 관련 테스트를 추가했습니다.
v1.2.0
Outline
인라인 이미지 앞의 마지막 글자를 Delete 또는 Backspace로 지울 수 없는 편집기 문제를 수정했습니다.
표 안팎의 삭제 동작과 일반 텍스트 삭제가 유지되는지 확인했습니다.
AI Agent Workflow
요구사항과 조사 결과, 결정과 계획을 구분해 AI 에이전트가 구현의 근거와 변경 이유를 확인하도록 저장소 규칙과 스킬을 만들고 여러 저장소에 적용했습니다.
문서를 저장하기 전에 모호한 한국어 표현을 찾아 문맥에 맞게 다듬도록 검사 절차를 구성했습니다. 검사기는 Unicode 정규화로 한글의 표기 형태 차이를 처리하고, 변경 파일과 지정 파일 및 표준 입력을 검사할 수 있도록 만들었습니다.
2026 — 현재/Node.js, Repository Rules, Text Validation
AI 에이전트에 같은 지침을 반복 입력하고, 실행 조건마다 명령어 메모를 따로 만드는 불편 때문에 시작했습니다. 여러 메모에서 필요한 지침을 골라 순서를 정해 함께 복사하고, 명령어는 입력 파일명처럼 달라지는 값만 바꿔 다시 쓸 수 있도록 했습니다.
원본 메모를 보존하면서 복사할 문구와 순서를 바꿀 수 있도록 데이터 구조를 설계했습니다. 직접 사용하며 메모와 복사 항목의 순서 변경을 개선하고, 모바일 기기에서도 필요한 문구를 선택하고 편집할 수 있도록 복사와 편집 조작을 나눴습니다.
2026 - 현재/TypeScript, React, Next.js, IndexedDB
Offline Translation Web App
미리 저장한 언어 모델로 네트워크 연결 없이 한국어와 영어, 한국어와 일본어 사이를 번역하고, 모델 실행 중에도 페이지 입력을 계속할 수 있도록 했습니다.
브라우저 캐시와 IndexedDB로 필요한 파일과 정보를 저장하고 GitHub Actions로 배포를 자동화했습니다.
2025/Web Worker, IndexedDB, Offline, GitHub Actions
- 단국대학교
- 응용컴퓨터공학과
- 2016 — 2022
- 정보처리기사
- 한국산업인력공단
- 2022
- TOEIC Speaking
- IH
- 2025