고세미

Frontend Engineer

semi8848@daum.netGitHubBlog

Work Experience

NHN Injeinc

2025.03 ~ 재직중

기술개발실

Cone Chain Portal

  • 프라이빗 클라우드 환경에서 Kubernetes 클러스터를 UI 기반으로 구축·설정·운영할 수 있는 통합 관리 플랫폼

TicketLink 글로벌/일본 서비스 프론트엔드 개발

  • 한국어 중심의 TicketLink 서비스를 글로벌 서비스로 확장하고, 일본 시장 대상 티켓 응모/당첨 관리자 시스템

TMAX GAIA

2023.09 ~ 2025.03

GA2-2-2

GAIA Docs

  • Google Docs(canvas 기반)/Sheets/Slides와 유사한 기능을 갖춘 웹 기반 오피스 제품
  • MS Office 및 한글 문서 포맷 호환, 실시간 다중 사용자 공동 편집 지원
  • Event-driven Architecture + Command Pattern 기반 아키텍처

담당 업무

  • Word / PowerPoint / Excel 세 개 모듈에서 사용하는 텍스트 관련 공통 기능 담당
  • 텍스트 모듈 캐럿/셀렉션, 복사&붙여넣기, 스타일, 공동 편집, 저장 기능 안정화 및 유지보수

재능교육/재능e아카데미

2017.01 ~ 2022.08

수학 콘텐츠팀

재능AI수학

  • 학습자에게 최적의 수학 콘텐츠를 제공하는 학습자 중심의 학습 프로그램

Open Source

Node.js
  • —base64 벤치마크 입력값이 잘못 구성돼 실제 디코딩 경로를 측정하지 못해 오류 발생#60841
  • —Inspector 도움말 URL이 잘못된 경로를 가리켜 dead link 발생#62745
  • —잘못된 using 구문 파싱 시 GetErrorSource()에서 크래시 발생#62770
  • —참조가 남아있는 DynamicLibrary가 GC에 의해 조기 수집돼 크래시 발생#63024
  • —sqlite3_step()/sqlite3_reset() 반환값을 확인하지 않아 SQLite 오류가 무시되는 문제#63319
  • —요청을 받지 않은 idle 소켓이 closeIdleConnections()의 처리 대상에서 빠져 서버가 종료되지 않는 문제#63470
  • —Blob.stream()의 wakeup 콜백이 정리되지 않아 소스 버퍼 참조가 계속 남아 메모리가 무한정 누수되는 문제#63577
  • —필터링된 Suite의 비동기 자식 등록이 끝나기 전에 postRun()이 호출돼 등록 중이던 테스트가 취소되는 문제#64208
Mantine
  • —Badge의 circle prop이 defaultProps.radius에 밀려 원형으로 렌더링되지 않는 문제#8466
  • —MCP 서버가 stdio 전송에 MCP 스펙과 다른 Content-Length 헤더 프레이밍을 사용해 VS Code 등 클라이언트의 initialize 핸드셰이크가 멈추는 문제#8792
  • —clearFieldError 등 폼 메서드의 path 인자에 TypeScript 자동완성 미동작#8810
  • —Scroller 컴포넌트 Styles API 문서 데이터 누락#8818
  • —RichTextEditor 빈 task list 항목에서 캐럿 미표시#8821
  • —SemiCircleProgress 컴포넌트 렌더링 안 되는 문제#8842
  • —offsetScrollbars="present" 설정 시 ScrollArea 스크롤바 미표시#8844
  • —RTL 페이지에서 dir="ltr"로 되돌린 Input에 dir prop이 전달되지 않아 좌우 섹션이 뒤집힌 채로 남는 문제#8905
  • —PasswordInput이 rest prop을 내부 input에 직접 스프레드해 #8905에서 고친 dir 처리가 적용되지 않는 문제#8936
TanStack Query
  • —타이머 ID가 0일 때 falsy로 평가돼 타이머가 정리되지 않는 문제#10401
  • —vue-query-devtools에서 마운트 전에 cleanup이 등록돼 정상 동작하지 않는 문제#10439
Vite
  • —?raw import 처리 시 불필요한 fallback sourcemap이 생성되는 문제#22148
  • —Deno workspace root를 감지하지 못해 프로젝트 루트를 잘못 판단하는 문제#22238
  • —optimizeDeps에서 사용자 설정 transform.target이 기본값에 덮어씌워지는 문제#22273
  • —의존성 스캔의 transformSync에 사용자가 설정한 oxc JSX 옵션이 전달되지 않아 커스텀 JSX 런타임 대신 react/jsx-runtime을 잘못 resolve하는 문제#22342
Wafflebase
  • —원격 편집 시 로컬 커서 위치가 절대 오프셋으로 저장돼 다른 사용자가 같은 블록을 편집하면 커서가 엉뚱한 글자를 가리키는 문제 — Yorkie Tree 위치 기반 앵커링 설계 노트와 구현 추가#257
  • —한글 IME로 한 글자를 입력해도 Undo 단위가 여러 개로 쪼개져 실행취소 시 글자가 지워지지 않고 토글되는 문제#332
  • —빈 리스트 항목에서 Backspace를 눌러도 리스트를 빠져나가지 않는 문제 (Enter로는 되던 동작)#339
  • —IME로 조합 중인 한글에 밑줄 표시가 없어 다른 에디터와 달리 조합 상태를 구분할 수 없는 문제#514
  • —표 안 셀에 캐럿이 있을 때 표를 붙여넣어도 아무 반응이 없던 문제 — 셀 컨텍스트가 인식되지 않아서 발생#531
  • —표 안에 중첩된 표를 붙여넣으면 안쪽 셀의 입력이 원본 표로 잘못 라우팅되는 문제의 설계 노트 확장#597
  • —IME 조합 완료 직후 Undo 시, 실시간 커서 발행기가 같은 presence 값을 덮어써 커서가 엉뚱한 곳으로 복원되는 레이스 컨디션#612
  • —폰트 크기가 서로 다른 텍스트를 함께 선택한 상태에서 +/- 버튼을 눌러도 아무 반응이 없는 문제의 설계 노트#616
  • —BigQuery 커넥터 추가 — 연결 CRUD와 쿼리 실행, 서비스 계정 자격증명 AES-256-GCM 암호화#811
Vite Plus
  • —vp format 입력 시 vp fmt로 이어지지 않고 파싱에 실패하는 문제 — format을 fmt의 별칭으로 추가#1727
  • —Windows에서 pnpm 모노레포 lint 실행 시 tsgolint 실행 파일 경로가 잘못 계산돼 찾지 못하는 문제#1758
  • —vp env list-remote에 설치/현재/기본 버전 표시가 없어 레지스트리 목록에서 구분이 안 되는 문제#1907
  • —패키지 매니저를 새로 내려받을 때 진행 상황이 전혀 표시되지 않아 느린 네트워크에서 멈춘 건지 알 수 없는 문제#2369
Rollup Plugins
  • —pluginutils의 dataToEsm이 예약어 키에 named export를 생성하지 못하고, 중복된 default export를 만들어내는 문제#2002