02 / Career · 언제 · 어디서

Career

2026.06 — 현재● now

AX 리더

·메디솔브 AI

사내 AX 전환 프로젝트 리더, B2B AX 솔루션 개발

FastAPINextJSAI
2026.02 — 2026.06

백엔드 개발자

·메디솔브 AI

의료 상담 자동화 제품(Charty·Linky) 백엔드 — 실시간 STT·다국어·AI 파이프라인

PythonFastAPIPostgreSQLRedisRabbitMQWebSocketLLM
2025.08 — 2026.02

백엔드 개발자

·퀀터스

퀀트시스템 개발, 뉴스공시 수집파이프라인 개발

PythonFastAPIMySQLRedisRabbitMQWebSocketELKAirflowLangGraphAWSAzure
2020.01 — 2023.12

토목 설계

·도화 엔지니어링

상하수도분야 토목 설계

AutoCADCivil 3D
2024.12 — 2025.03

풀스택 엔지니어 심화과정

·멋쟁이사자처럼

2개 프로젝트, 자바 및 인프라 심화과정

SpringELKPostgresKubernetesReact
2024.06 — 2024.12

풀스택 엔지니어 과정

·비트캠프

풀스택 클라우드 엔지니어 기초과정

JavaSpringMyBatisMySQLNCPJavaScript
2026.06 — 현재● now서울

AX 리더

·메디솔브 AI

메디솔브 AI 의 AX 리더로, 4인 팀에서 기술 전반을 맡아 두 방향의 AI 전환을 이끈다.

사내 AX 전환 — 흩어진 문서·회의·의사결정·업무를 하나의 워크스페이스(Mediness)로 모으는 사내 제품을 주도했다. 60여 개 기능 명세와 100여 개 작업 단위를 문서로 먼저 확정하고 구현하는 방식으로, 백엔드(FastAPI·PostgreSQL·Redis)부터 MCP 서버·에이전트 데몬까지 아키텍처를 설계하고 직접 구현한다.

B2B AX 솔루션 — 고객사의 업무 흐름 개선과 파편화된 데이터 취합을 AI 로 푸는 솔루션을 개발한다. 현재 고객사 The SC 와 함께 업무 플로우를 진단하고 데이터를 통합하는 초기 단계를 진행 중이다.

문제 정의와 스펙 작성을 코드보다 앞세우고, LLM 실행을 서버에서 분리하는 등 「모델·에이전트가 바뀌어도 서버를 다시 짜지 않는」 구조를 지향한다.

// 만든 것
Medinesslive자세히 ↗

문서·회의·의사결정·업무를 통합 사내 AX 워크스페이스

// 해결한 문제
승인형 워크플로마다 오케스트레이터를 복붙하던 구조 — 커널·조각·선언 조립 엔진으로 일반화@ Mediness

「AI가 초안을 내고 사람이 승인해야 실행된다」는 흐름이 회의 예약·장애 대응·의사결정에서 되풀이되는데, 구현은 워크플로마다 전용 오케스트레이션 코드를 다시 짜고 있었다. 구조가 완전 동형인 게이트 두 개가 코드 공유 0인 독립 구현이었고, 이 방식으로는 60여 개 워크플로 확장이 감당되지 않았다. 뼈대를 둘로 세워 일반화했다 — 게이트 커널은 결재 카드의 생명주기(FSM·승인 멱등·감사)를 소유하되 도메인 타입 분기 0(전부 정의 레지스트리 조회, grep으로 검증 가능한 불변식), 스테이지 그래프 엔진은 「스테이지 = 재사용 조각 + 파라미터, 전이 = 엣지 선언」을 읽어 구동한다. 조각은 다음 스테이지를 모르게 설계해 어느 워크플로에나 꽂히는 부품으로 만들었다. 새 워크플로 추가 = 패키지 1개 + 등록 1줄. 실측으로 판정을 닫았다 — AI 재생성 게이트 조각 1벌이 세 게이트에 재작성 0으로 3회 재사용됐고, 두 번째 도메인 착지에서 공용층 기존 시그니처 변경 0, 엣지 어휘 추가 0이었다.

프레임워크 없이 tool calling을 직접 조립 — LLM을 순수 함수로 격리하고 실행권은 서버가 소유@ Mediness

서버측 LLM 드라이버가 SDK가 아니라 서버가 스폰하는 CLI라, 기성 에이전트 프레임워크의 tool calling을 얹을 수 없었다. 직접 조립해야 했고 문제가 겹쳐 나왔다 — CLI는 추론 엔드포인트가 아니라 에이전트여서 발화만 넘긴 호출이 서버 계정의 도구를 스스로 실행했고, 모델이 이미 실행된 툴 결과를 "기다리는 중"으로 착각해 산문을 뱉으면 파서가 죽어 발화 전체가 실패했으며, 조회 결과에 섞인 제3자 자유 텍스트가 모델 지시로 읽힐 수 있었다. LLM을 「프롬프트 in → JSON 한 덩어리 out」의 순수 함수로 격리하고 루프를 서버가 소유하는 구조로 조립했다. 매 턴은 tool_calls(제안) XOR final을 스키마로 강제하고, 실행은 화이트리스트 dict 조회 — 밖의 이름은 아무것도 실행되지 않고, write 툴은 사람 승인 바인딩 뒤에서만 돈다(4단 검문: 접근·게이트·바인딩·스키마, 거부도 감사 기록). 실행 이력은 "이미 제공된 결과" 라벨 블록으로 되먹여 착각을 정조준했고, CLI는 허용 목록 env + 도구 등록 0 세션으로 격리(실측: 등록 도구 NONE), 제3자 텍스트는 모델용 receipt/사람용 원문 2축 봉투로 분리했다. 루프가 실패해도 실패 표식이 붙은 degrade 산출로 진행 — AI가 죽어도 결재 카드는 반드시 태어난다.