Keunsik Works @givepro91

장근식 Keun-sik Jang

백엔드에서 출발해 AI 제품까지 만드는 엔지니어 · 서버가 토대, 제품이 방향

백엔드에서 출발해 AI 제품까지 만드는 엔지니어입니다.

10년간 서버·백엔드를 해왔습니다. 기능별로 서버를 나눠 운영하는 구조를 다뤘고, 응답을 기다리며 멈추지 않는 방식으로 처리량을 늘렸으며, 데이터를 모아 쌓는 파이프라인을 만들었습니다(Kotlin·Spring). 그 위에서 제품을 기획부터 운영까지 끌고 가는 일로 범위를 넓혔습니다. ‘어디까지가 내 역할인가’가 아니라 ‘이 문제를 풀려면 어디까지 가야 하는가’를 기준으로 일합니다.

① 제품을 처음부터 끝까지 만드는 일 — AI 부동산·건축 제품을 기획부터 화면(UI/UX)과 서버, 인프라, AI 모델을 서비스에 붙이는 일까지 직접 만들어 상품으로 내놨습니다.

② 조직이 AI와 안전하게 일하게 만드는 일 — 서버 접근 권한, 비밀번호·키 관리, 승인 절차, 참고할 지식의 기준, 인프라 비용을 회사 차원에서 하나의 기준으로 정리했습니다.

문제를 곧장 기능으로 옮기기보다 현업 흐름과 운영에서 깨지는 지점을 먼저 봅니다. 설계한 뒤에는 운영에서 검증하고, 다음에 다시 쓸 수 있게 패턴으로 정리합니다.

이력서와 함께 보면 좋은 자료 두 개를 같이 두었습니다 → 인터랙티브 포트폴리오 · 프로젝트를 왜 그렇게 판단했는지 중심으로 기록 — givepro91.github.io Fieldwork · 해본 것과 조사한 것을 글마다 구분해 밝히는 실행 필드가이드 — ax-field-guide.vercel.app

핵심 역량 · Highlights

  • 인증·결제·구독처럼 기능별로 나뉜 여러 서버를 개발·운영하며, 무엇을 한 번에 묶어 처리할지와 어디서 장애를 끊어낼지를 판단했습니다(Kotlin·Spring).
  • AI가 공간을 설계해주는 API(PlanNext.AI)를 기획부터 개발·배포까지 주도했고, 오래 걸리는 설계 요청은 대기열로 빼서 다른 요청이 밀리지 않게 한 뒤 AI 매장 설계 콘솔로 확장했습니다.
  • 건축 도면 규정 검토 서비스를 인프라부터 개발 전반까지 맡았습니다. 요청을 받는 서버와 실제 분석을 하는 서버를 대기열로 나눴고, 분석 서버가 도중에 죽어도 이미 만들어진 결과는 남도록 결과를 저장하는 일과 진행 상태를 알리는 일을 따로 뒀습니다.
  • 엔진이나 AI가 낸 결과를 원본으로 두고, 화면 쪽에서 그 결과를 고쳐 쓰지 못하게 선을 그었습니다. 건축 엔진·AI·공간 데이터·데이터 수집 네 곳에서 같은 판단이 반복됐습니다.
  • 사업성 분석에 간단 조회 경로를 따로 만들어 결과 확인 시간을 3분 이내로 줄였습니다.
  • 멈춰 있던 전국 부동산 데이터 수집을 다시 돌리고, 모자란 구간은 팀과 함께 새로 만들었습니다. 수집처가 접속을 막으면 잠시 쉬었다가 요청 간격을 늘려 다시 시도하고, 어디까지 모았는지를 행정동 단위로 저장해 중간에 끊겨도 그 지점부터 이어가게 했습니다.
  • AI가 어디서 멈추고 사람이 결정할지를 승인·되돌리기·기록으로 못박았고, 클라우드에서 회사 자체 서버로 옮기는 실행을 맡아 비용을 10분의 1 수준으로 줄였습니다.
  • 개인 제품 두 개를 혼자 기획·개발해 2026년 8월 App Store에 출시했습니다. 영유아 부모용 지도 앱은 무료로, 판타지 용병단 게임은 ₩3,300 유료로 내놓았고, 게임은 출시 열흘 뒤 유료 게임 전체 3위·롤플레잉 1위를 기록했습니다.

Core Skills

AI · 에이전트 운영 AI 모델 API 연동 · AI가 일을 처리하는 흐름 설계 · 사람이 승인하는 지점 설계 · 결과를 검사해 통과시키는 절차 · 만드는 역할과 검사하는 역할 분리 · 운영 자동화
백엔드 Kotlin · Java · Ruby · PHP · Spring Boot · Spring Cloud · WebFlux · Coroutine · JPA · QueryDSL · R2DBC · MSA · Flyway
인프라 · 데이터 AWS · AWS EKS · Spot Ocean · Argo CD · Argo Workflows · Docker · Kubernetes · Linux · Kafka · Redis · PostgreSQL · PostGIS · MariaDB · MySQL · DynamoDB
신뢰성 · 운영 데이터 수집·적재의 신뢰성 · 아무 표시 없이 지나가는 실패 방지 · 작업 성공과 데이터 성공을 따로 확인 · 대시보드에서 불러오는 중 / 대체 표시 / 실패 구분 · 인덱스 설계 · 쿼리 최적화 · 성능 튜닝
검색 · 도구 ElasticSearch · OpenSearch · Meilisearch · Git · GitHub · Notion · Jira · Confluence · Slack · Google Workspace
리딩 · 협업 Agile/Scrum · 코드 리뷰 · 기술 의사결정 · 문서화 · 절차 문서로 정리

Experience

스페이스워크 (주) Technical Product Lead / 백엔드·제품팀 2023.01 – 2026.08 · 3년 7개월

백엔드 엔지니어로 입사해 팀 리딩과 Technical Product Lead로 역할을 넓혔습니다. 두 축으로 일했습니다.

① 제품을 처음부터 끝까지 만드는 일

  • 이미 기능별 서버로 나뉘어 있던 Landbook 백엔드(인증·결제·프리미엄·게이트웨이)에 합류해 개발·운영했습니다. 응답을 기다리며 멈추지 않는 방식으로 바꿔 병목을 줄였고, 하나씩 순서대로 보내던 매물 알림을 동시에 보내도록 바꿨습니다. 가로주택정비 서비스는 최다 기여자로 맡아, LH 공공기관 내부망에 설치해 쓸 수 있도록 보안 요건(프록시·방화벽·접근 제어)을 맞추고 회사 자체 서버로 옮기는 일까지 대응했습니다.
  • AI가 사무실 가구 배치를 설계해주는 API(PlanNext.AI)를 기획부터 개발·배포까지 주도했고, 그 자산을 AI 매장 설계 콘솔(PlanNext Retail)로 확장했습니다. 자리 분석과 전략 제안부터 2D·3D 자동 설계, 검증, 도면 파일(DXF) 내보내기까지 상품으로 만들었습니다.
  • PlanReview는 건축 도면(PDF)을 올리기만 하면 규정에 맞는지 자동으로 검토해주는 서비스입니다. 인프라부터 개발 전반을 맡아, 요청을 받는 서버와 실제 분석을 하는 서버를 대기열로 나눈 검토 흐름을 만들었습니다. 분석 엔진이 낸 결과를 유일한 원본으로 정해 화면에서 고치지 못하게 하고, 잘못된 배포를 막는 확인 절차를 만들었습니다(현재 자문).

② 조직이 AI와 안전하게 일하게 만드는 일

  • 사람마다 따로 들고 있던 서버 접속 키를 회사 계정으로 로그인해 들어가는 방식으로 바꾸고(Tailscale SSH·Google Workspace), 개인별로 어디까지 접근할 수 있는지를 정했습니다. 여기저기 흩어져 있던 비밀번호·API 키는 한곳에 모아(1Password) 팀별로 쓸 수 있는 범위를 나눴습니다.
  • AI가 서버 상태와 운영 문서를 읽고 스스로 원인을 진단하되, 실제로 무언가를 바꾸는 일은 사람이 승인해야만 되도록 운영 절차를 통일했습니다.
  • 흩어져 있던 인프라·운영 지식을 AI가 읽기 좋은 형태의 사내 위키 한곳으로 모으고, 팀마다 따로 쓰던 AI 사용법을 합쳐 조직 전체가 같은 기준으로 AI를 쓰게 만들었습니다.
  • 비용·서버·저장소를 한눈에 보는 사내 콘솔을 만들고, 클라우드에서 회사 자체 서버로 옮겨 안정성을 지키면서 AWS 비용을 10분의 1 수준으로 줄였습니다. 특정 시점으로 되돌릴 수 있는 스냅샷과 이중 백업을 걸어 사고가 나도 복구할 수 있게 했습니다.
  • 백엔드 팀을 이끌며 코드 리뷰 체계와 기술 문서화, 배포·운영 프로세스를 정립하고 신규 입사자 온보딩으로 팀의 반복 업무를 줄였습니다.

Kotlin · Spring Boot · WebFlux · Coroutine · Kafka · Redis · PostgreSQL · AWS EKS · ArgoCD · Python · FastAPI · Claude Code

(주) 피플리 Manager / Leader / Product 2021.03 – 2022.12 · 1년 10개월

전시 오디오 가이드 앱 '큐피커'와 전시 연계 커머스를 기획·개발·운영하고 소규모 팀을 리딩했습니다.

  • 큐피커 — 국내외 전시 오디오 가이드 앱 플랫폼 개발·유지보수(React Native 앱 + 관리자 백오피스), Firebase·PG 연동, 누적 다운로드 10만+·하리보 아시아 전시 계약 성사
  • 애프터뮤지엄 쇼핑몰 — 전시 연계 커머스 기획·개발, REST API 백엔드·결제 연동, 1개월 내 MVP 완성·AWS 배포까지 단독 수행
  • 개발 서버 환경 자동화 — Jenkins + Bitbucket 기반 CI/CD 구축
  • 소규모 팀(3~5명) 리딩 및 SI 외주 프로젝트 PM·기술 기획 주도

Spring Boot · Java · REST API · JWT · Jenkins · MariaDB · Firebase

태전약품판매 (주) 대리 / 디지털전략부 2020.06 – 2021.03 · 9개월
(주) 앞선그룹 IT 웹개발 / 전략기획부 2018.11 – 2019.12 · 1년 1개월
패스엔조이 주임 / 개발팀 2017.04 – 2018.01 · 10개월
(주) 청주교차로 사원 / 연구개발팀 2016.02 – 2016.11 · 10개월

AI 에이전트 운영 · 자동화 · 데이터 신뢰성 — 직접 설계·구현

AI에게 일을 맡길 때 필요한 검증과 통제(Nova·Ground Control), 운영에서 놓치기 쉬운 일의 감지(MIRIVA), 끊기지 않는 데이터 수집(Realty)까지 직접 설계·구현(일부 오픈소스 공개)

Nova AI가 짠 코드를 커밋 전에 검사하는 도구 (Claude Code 플러그인) 단독 · 공개 OSS · 2026

AI가 짠 코드를, 그 코드를 짠 AI가 아닌 별도의 평가자가 커밋 전에 검사하게 만드는 Claude Code 플러그인입니다. ‘코드 품질은 더 똑똑한 모델이 아니라, 만드는 역할과 검사하는 역할을 나누는 구조에서 나온다’는 생각으로 혼자 설계·구현했습니다.

  • 코드를 만든 AI가 자기 코드를 스스로 승인하지 못하게, 작성 역할과 검토 역할을 분리했습니다 — 누구나 자기 결과물에는 관대해지는 문제를 규칙이 아니라 구조로 막았습니다
  • 검토를 권장사항이 아니라 필수 절차로 만들었습니다 — 독립 검토를 통과하지 못한 코드는 커밋 자체가 되지 않게 Claude Code 훅으로 강제했습니다
  • 이전 작업 맥락을 별도 데이터베이스 없이 사람이 읽을 수 있는 텍스트 파일(상태 기록+로그)로 이어지게 했습니다 — 설치가 단순하고, 무엇이 기록되는지 그대로 열어볼 수 있습니다

Claude Code Plugin · MCP · TypeScript · Bash

Ground Control 인프라 관제 에이전트 (사람이 최종 판단) 단독 · 인프라 관제 · 2026

장애를 감지하는 데서 그치지 않고 원인까지 추론해 담당자에게 조용히 물어보는 인프라 관제 에이전트입니다. 주기적으로 서버 상태를 살펴 원인을 좁히고, 담당자에게 개인 메시지로 확인받은 뒤 그 답을 다음 판단에 반영하는 흐름을 혼자 설계·구현했습니다.

  • 원인을 하나로 단정하지 않고 의심 지점 몇 곳으로 좁혀서 알려줍니다 — 마지막 판단은 사람이 하도록 남겨뒀습니다
  • 진단 신뢰도를 퍼센트 대신 세 단계 말(확실·추정·가설)로만 보여줍니다 — 검증 안 된 숫자는 사람이 근거 없이 믿게 만들기 때문입니다
  • 알림 기본값을 공개 채널이 아니라 담당자 DM으로 두고, 공개 발신은 잠금을 여러 겹 걸어 막았습니다 — 오탐이 여러 사람 앞에 뜨면 다음부터 아무도 알림을 안 보기 때문입니다

Python · Claude Code CLI · FastAPI · Slack Bolt · AWS

MIRIVA 운영에서 놓치는 일을 막아주는 서비스 단독 · 실제 운영으로 검증 · 2026

전담 인프라·비용 담당자가 없는 소규모 팀이 놓치면 사고로 이어지는 항목(클라우드 비용 급증, SSL 인증서·도메인 만료, 담당자 공백)을 자동 감지해, 매주 결정이 필요한 3건만 추려 보여주는 서비스입니다. 혼자 기획·설계·구현했고, 제가 첫 사용자로 직접 쓰면서 다듬고 있습니다.

  • 기능을 만들기 전에 ‘이 사업이 틀렸을 가능성’부터 검증했습니다 — 기획 문서에 성공 확신 대신 ‘성공 확률 55%, 이런 조건이 확인되면 계속 진행’이라는 판단 기준을 그대로 적고, 그 기준을 통과해야 다음 단계로 가게 했습니다
  • 클라우드별 자동 연동 개발을 일부러 뒤로 미루고 수동 입력을 먼저 지원했습니다 — 연동을 만들지 않아도 어떤 클라우드든 바로 쓸 수 있어, 아이디어가 맞는지 빨리 확인할 수 있기 때문입니다
  • 고객 클라우드 계정은 읽기 전용 권한만 쓰고, 외부 서비스 없이 자체 서버에서 돌립니다 — 도구가 고객 인프라를 변경하거나 데이터를 밖으로 내보낼 수 없게 범위를 좁혔습니다

Python · FastAPI · boto3(read-only) · Next.js · SQLite

Realty Data Pipeline 서비스 중단 없는 부동산 데이터 수집 · 데이터 신뢰성 기여 · 크롤러 안정성·재개 · 2026

전국 부동산 데이터를 매월 서비스 중단 없이 갱신하는 데이터 수집·적재 파이프라인입니다. 저는 크롤러가 차단과 오류 속에서도 안정적으로 돌아가게 만드는 부분과, 중단된 지점부터 다시 시작하는 재개 로직을 맡았습니다.

  • 수집 대상 사이트가 접속을 제한하거나 오류를 반환하면 잠시 멈췄다가 요청 간격을 점점 늘려 다시 시도하고, 차단 신호가 일정 수준 이상 쌓이면 크롤러가 스스로 수집을 중단하게 했습니다 — 무리한 재시도로 아예 차단당하는 상황을 막기 위해서입니다
  • 진행 상황을 행정동 단위로 저장해, 수집이 중간에 끊겨도 처음부터 다시 도는 게 아니라 끊긴 지점부터 이어서 재개하게 했습니다
  • 진행 상태를 기록하는 테이블 구조를 바꾸면서 기존 기록 245행을 그대로 보존해 옮겼습니다 — 어디까지 수집했는지의 이력이 유실되지 않게 했습니다

Python · PostgreSQL · requests · Slack

개인 제품 · 직접 출시

회사 밖에서 혼자 기획·개발해 실제 사용자에게 내놓은 제품

놀곳 영유아 부모용 지도 · App Store 출시 단독 · 출시 · 2026.08

0~3세 아이를 데리고 오늘 어디에 갈 수 있는지를 30초 안에 찾게 해주는 지도 앱입니다. 기획·개발·데이터 수집부터 앱 심사 대응과 출시까지 혼자 했고, 2026년 8월 App Store에 무료로 배포했습니다.

  • ‘어디에 무엇이 있나’가 아니라 ‘18개월 아이가 오늘 실제로 갈 수 있나’를 기준으로 만들었습니다 — 낮은 미끄럼틀, 그늘, 무료 여부, 그리고 공공데이터에는 없는 실내 대안(호텔 로비·몰·도서관)을 직접 모았습니다
  • 확인한 정보와 추정한 정보를 같은 칸에 섞지 않았습니다 — 근거의 종류를 데이터에 함께 저장해 ‘항공사진으로 추정한 값이에요’라고 화면에 밝히고, 사람이 직접 가서 확인한 제보가 들어오면 그 값이 추정을 덮어쓰게 했습니다
  • ‘로고를 눌러 메인으로 가는 게 느리다’는 사용자 제보를 재현해 원인 세 가지를 찾아 고쳤습니다 — 첫 화면 응답 시간이 2,289~4,415ms에서 18~29ms로 줄었습니다

Next.js · TypeScript · Supabase · Capacitor(iOS) · Vercel

탑과 용병단 판타지 용병단 경영 게임 · App Store 출시 단독 · 유료 출시 · 전체 3위 · 2026.06 – 2026.08

용병단을 꾸려 탑을 오르는 자동 전투 관전 게임입니다. 기획·개발부터 개발자 등록, 앱 심사, 가격 책정, 출시 후 알리기까지 혼자 진행했고, 2026년 8월 18일 App Store에 ₩3,300으로 출시했습니다.

  • 출시 열흘 뒤 App Store 유료 게임 전체 3위·롤플레잉 1위를 기록했습니다. 같은 시점 하루 다운로드 115회·평가 2개라는 실제 규모도 함께 확인했습니다
  • 자동 전투 결과를 같은 조건에서 다시 확인할 수 있도록 전투 난수에 기준값을 두고, 밸런스를 수치로 확인하는 도구를 개발 초기에 먼저 만들었습니다
  • 출시 후에는 판매량보다 사람들이 제품을 발견하게 하는 것을 먼저 목표로 정하고, 광고비 없이 1~10층 무료 웹 데모와 랜딩 페이지를 공개했습니다

TypeScript · Vite · React · Zustand · Tauri · iOS

스페이스워크 · 제품 백엔드 (부동산 × AI)

PlanReview 건축 도면 규정 검토 자동화 서비스 2026

건축 도면(PDF)을 올리면 규정에 맞는지 자동으로 검토해주는 서비스입니다. 초기 분석 엔진을 제외한 인프라부터 개발 전반에 참여했고, 후반에는 자문 역할로 참여했습니다.

  • 요청을 받는 웹 서버와 실제 도면 분석을 수행하는 작업 서버를 대기열(큐)로 분리해, 오래 걸리는 검토 작업이 쌓여도 웹 서비스는 느려지지 않게 만들었습니다
  • 분석 엔진이 낸 결과를 유일한 원본으로 정하고, 화면 쪽에서 결과를 임의로 고치거나 재분류하지 못하게 규칙을 세웠습니다 — 보는 화면마다 검토 결과가 달라지는 문제를 원천 차단하기 위해서입니다

TypeScript · Hono · Prisma · Redis · Next.js · Python · Docker

PlanNext Retail · PlanNext.AI AI 매장 설계 콘솔 · AI 기반 설계 API 2025.03 – 2026.07

매장 자리를 고르면 입지를 분석해 전략을 제안하고, 매장 내부를 2D·3D로 자동 설계해 도면 파일까지 뽑아주는 서비스입니다. 회사의 AI 기반 설계 API(PlanNext.AI)를 토대로 확장했고, 기획부터 화면(UI/UX)·서버·인프라·AI 모델 서빙까지 전 과정을 주도했습니다.

  • AI와 대화하는 부분과 실제 설계 수치 데이터(구역·집기·치수)를 분리했습니다 — 도면의 원본 데이터를 하나로 유지해, 2D·3D 화면과 도면 파일(DXF)이 항상 같은 결과를 보여주게 했습니다
  • 입지와 참고 사례를 분석해 매장 전략을 여러 안으로 근거와 함께 제시하고, 사람이 고른 안을 평면도·3D·실사풍 이미지로 이어지게 만들었습니다

Kotlin · Spring Boot · Coroutine · Kafka · Redis · LLM Serving · Argo Workflow · AWS EKS

Landbook · 가로주택정비 프롭테크 설계·사업성 분석 플랫폼 백엔드 2023 – 2026

땅에 어떤 건물을 지을 수 있고 사업성이 얼마나 나오는지 분석해주는 프롭테크 플랫폼입니다. 인증·결제·구독·필지·게이트웨이로 나뉜 여러 서비스(MSA)에 합류해 개발·운영했고, 가로주택정비 분석 서비스는 최다 기여자로 주도했습니다.

  • 한 서비스가 느려지면 연결된 다른 서비스까지 같이 멈추는 문제를, 응답을 기다리지 않는 호출 방식(WebFlux·Coroutine 비동기)으로 바꿔 해결했습니다 — 순차 처리되던 매물 알림 발송도 병렬로 바꿔 지연이 옆 서비스로 번지지 않게 했습니다
  • 필지 번호(PNU) 하나만 입력하면 규제·시세·수익성까지 자동 산출하는 가로주택정비 분석을 만들었고, LH 공공기관 내부망에 설치형으로 넣기 위해 프록시·방화벽·접근 제어 등 보안 요건을 맞춰 운영했습니다

Kotlin · Spring Boot · WebFlux · Coroutine · Ruby on Rails · PostgreSQL · PostGIS

Education

한국교통대학교 학사 / 소프트웨어학과 2009 – 2016

Learning · 학습과 공유

온라인 강의로 익히고, 기술 블로그·Fieldwork로 정리·공유합니다 — 학습을 자산으로 바꾸는 루프.

  • 실무까지 한 번에 끝내는 DevOps를 위한 Docker & Kubernetes (강의)
  • AWS(Amazon Web Service) 입문자를 위한 강의
  • 스프링 MVC — 백엔드 웹 개발 핵심 기술 (강의)
  • Spring Cloud로 개발하는 마이크로서비스 애플리케이션(MSA) (강의)
  • Spring Cloud + Kafka 기반 메시징 아키텍처 (강의)
  • GitOps 환경에서 ArgoCD 운영 자동화 (강의)

일하는 방식 · Working Principle

AI 도입의 핵심은 모델을 붙이는 데 있지 않습니다. 사람이 어디서 판단하고 시스템이 어디까지 실행할지를 구조로 정하는 일이라고 봅니다.

비정상 상황을 먼저 설계합니다 — 다시 시도해도 결과가 같은지, 되돌릴 수 있는지, 무슨 일이 있었는지 나중에 볼 수 있는지 — 백엔드 10년 동안 늘 먼저 던진 질문입니다. AI 자동화도 결국 여러 조각이 나뉘어 돌아가는데 그중 하나가 매번 다르게 답하는 시스템이라, 잘 될 때보다 실패할 때를 먼저 설계합니다.

문제 정의가 기능보다 먼저입니다 — 문제를 기능으로 바로 번역하지 않고, 현업 흐름·운영 실패 지점·사람의 판단 경계를 먼저 정의한 뒤 AI와 자동화를 설계합니다.

판단과 근거를 기록합니다 — 무엇을 만들었나보다 왜 그렇게 판단했고 무엇을 포기했는지를 남깁니다. 검증된 사실만 쓰고, 통한 결정은 다음 사람이 그대로 따라 할 수 있는 절차 문서로 정리합니다.

서비스는 사람을 연결하는 일입니다 — 기술보다 사용자·팀·서비스의 연결을 먼저 고민합니다. 자동화가 사람을 대체하는 게 아니라, 사람이 판단에 집중하게 만드는 도구가 되도록 설계합니다.