📝 한줄 요약
코딩을 업으로 하지 않던 제가, AI 코딩 도구(Claude Code)와 둘이서 약 일주일 동안 연구자를 돕는 웹 서비스를 만들었습니다. 흩어진 제 경력 자료 한 폴더에서 시작해, 자료를 올리면 프로필 → 연구 아이디어 → 실험 설계 → 장비 추천 → 논문 초안 → 연구계획서까지 이어주는 서비스의 골격을 세우고 공개 직전까지 왔습니다. 이 글은 그 전 과정을 한 편에 담은 기록입니다.
바쁘시면 이것만 읽어도 돼요:
손으로 한 번 돌려본 것이 그대로 서비스의 가능성 검증(PoC)이 됐다
"한 단계부터" 만들고 복제로 확장하니, 4단계 → 6단계까지 빠르게 커졌다
AI를 붙이면 호출마다 돈이 나간다 — "비쌀 것 같다"를 숫자로 재서 결정했다
막히면 땜질하다, 한계가 오면 구조를 바꿨다("답답하다, 비동기로 가자")
"테스트 다 통과 = 정상"이 아니다 — 따옴표 하나로 화면이 백지가 됐다
공개 직전 깨달음: 진짜 위험은 해킹이 아니라 비용이다
🎯 이런 분들께 도움돼요
흩어진 경력·실적을 정리해야 하는 전문직, 방향을 찾는 연구자·대학원생·과제 담당자, 커리어 전환자
AI로 혼자 서비스를 만들어보려는 1인 도전자 — "비용이 무섭다", "왜 어떤 날은 되고 어떤 날은 안 되지?", "공개해도 안전할까?"가 와닿는 분
😫 문제 상황 (Before)
저는 10년간 소재·전자현미경(TEM) 연구를 해온 공학 박사이고, 지금은 AI 개발자로 전환 중입니다. 진짜 목표는 연구자를 위한 자동화 서비스를 만드는 것이었습니다 — CV·자료를 정리해 프로필을 만들고, 그걸로 연구를 설계하고, 필요한 장비를 추천해주는 서비스요.
문제는 될지 확신이 없었다는 겁니다. 그리고 막상 만들기로 해도, 웹앱을 처음부터 끝까지 만들어본 적이 없었습니다. 그래서 거창한 계획 대신, AI와 둘이서 하나씩 부딪혀보기로 했습니다. 그 일주일의 기록입니다.
🛠️ 사용한 도구
도구명: Claude Code (터미널에서 쓰는 AI 코딩 도구)
모델: Claude Opus 4.8 (구현) / OpenAI gpt-4.1-mini (서비스의 생성 엔진)
방식: "만들어줘"가 아니라 대화로 설계 → 내 자료로 직접 써보고(dogfooding) → 막히면 같이 고치기
🔧 작업 과정
1막. 프로필 정리인 줄 알았는데, 서비스였다
시작은 소박했습니다. 제 경력 자료를 AI에게 통째로 주고 이렇게 말했죠.
현재 프로젝트 폴더의 파일들은 나의 정보를 가지고 있어
파일들을 깊이 있게 확인해서 나의 정보를 정리해서 프로필을 작성해줘
AI는 엑셀·PDF·워드를 하나씩 읽어 날짜·실적을 원본과 대조 검증하며 프로필 한 건으로 정리했습니다. 거기서 "내가 뭘 연구할 수 있는지"까지 진단받았죠. 그리고 제 진짜 의도를 밝히자, AI가 짚어준 한마디가 클라이맥스였습니다.
"오늘 손으로 한 프로필·연구 설계가, 사실 당신이 만들려던 서비스의 1~2단계를 그대로 돌려본 PoC였네요."
손으로 한 작업이 곧 서비스의 가능성 검증이었던 겁니다.
2막. 손으로 하던 걸 진짜 웹앱으로
이제 코드를 짜기로 했습니다. 단, 욕심을 잔인하게 줄였습니다.
서비스로서 도메인 특화부터 시작하고 싶어
Phase 1을 M1만으로 더 좁히자
가장 먼저 검증할 한 단계(자료→ 프로필)부터 만들고, 같은 패턴을 복제해 아이디어·실험설계·장비추천까지 4단계로 늘렸습니다. 그 과정에서 1인 개발자의 첫 현실과 부딪혔습니다.
클로드 코드로 하면 파일을 읽어들여서 잘 정리하는데,
api로 연결해서 하면 잘 안 되는 이유가 뭐야?
구독으로 쓰던 AI와, 서비스에 붙이는 유료 API는 분량·비용이 달랐습니다. "비쌀 것 같다"는 감을 실제로 재서(한 번에 약 1센트) 결정했습니다.
3막. 때우기를 멈추고, 구조를 바꾼 날
이 무렵 가장 끈질긴 적은 30초 안에 응답 못 하면 끊기는 제한이었습니다. 입력 줄이기, 미리 데우기, 출력 토막 내기 — 다 임시방편이었죠. 결국 제가 말했습니다.
아니 비동기로 가자 답답하다
"그 자리에서 기다리다 끊기는" 구조를, "번호표 받고 뒤에서 처리, 다 되면 알림" 구조로 바꿨습니다. 벽을 우회한 게 아니라 벽이 있던 자리를 없앤 겁니다. 더불어 AI가 "TEM"이라 부르는 장비를 "투과전자현미경"으로 번역(40종)해 한국 장비 포털에서 실제 검색되게 만들고, 결과물을 학술지풍으로 다듬었습니다.
4막. 자료만 넣었는데 논문·연구계획서까지
라이프사이클의 정점입니다. 앞 단계 산출물을 모아 논문 초안 9섹션과 연구계획서 6문항을 자동으로 써냈습니다. 가장 만족스러웠던 건 연구계획서의 '수행역량' 칸이 내 프로필 업적으로 저절로 채워진 것이었습니다.
이 막에서 잊지 못할 교훈도 얻었습니다. 따옴표 하나를 잘못 써서 화면 전체가 백지가 됐는데, 자동 검사(테스트) 156개는 전부 통과한 상태였습니다.
(테스트는 전부 통과인데 화면은 백지)
테스트는 제가 시킨 것만 검사할 뿐, 화면이 진짜 뜨는지는 직접 띄워봐야 안다는 걸 배웠습니다.
5막. 도구를 바꾸자 고생이 사라졌다
배포 환경을 바꾸다(netlify→Vercel) 예상 못 한 일이 벌어졌습니다. 3막에서 힘들게 만든 비동기 구조의 유일한 이유가 30초 제한이었는데, 새 플랫폼엔 그 제한이 없었습니다. 비동기 우회가 통째로 불필요해지고 코드가 오히려 줄었죠.
출력까지 시간이 걸리니 출력을 스트리밍 방식으로 하는 건 어때?
그리고 깜깜이 대기를 실시간 타이핑으로 바꿨습니다. 단, 사람이 읽는 글만 타이핑하고 내부 데이터는 진행 카운터로 — "부분만 봐도 의미 있나?"를 기준으로요.
6막. 진짜 위험은 해킹이 아니라 비용이었다
공개 배포만 누르면 되는 순간, 손을 멈췄습니다. 점검해보니 진짜 위험은 데이터 유출이 아니었습니다. 인증 없이 열린 AI 통로로 누군가 무제한 호출하면, 그 비용이 고스란히 제게 청구됩니다. "Origin(출처) 검증이 있잖아?" 싶었지만 — 그건 위조 가능합니다. 명찰만 확인하는데 명찰은 누구나 위조할 수 있는 셈이죠. 그래서 비용 폭탄을 막는 4겹 방어(예산 상한 → 호출 제한 → 카운터 → Origin)를 설계했습니다.
✅ 결과 (After)
전체 Before → After
항목
시작
지금
형태
손으로 돌려본 아이디어
자료→6단계 자동 웹 서비스
작동
사람이 매번 수동
자료 올리면 자동
산출물
프로필·연구설계(수동)
+ 아이디어·장비·논문·연구계획서
속도 경험
깜깜이 대기
실시간 타이핑
공개 준비
막연
비용 방어 설계 완료, 배포 직전
💬 이 과정에서 배운 AI 활용 팁
효과적이었던 것
손으로 한 번 돌려보기 — 그게 곧 서비스 가능성 검증이 된다
"한 단계부터" — 한 단계가 되면 나머지는 복제로 빨라진다
비용을 숫자로 재기 — "비쌀 것 같다"를 AI에게 실제로 재달라고 하면 결정이 쉬워진다
감이 아니라 실측으로 디버깅 — "원인을 나눠서 측정해줘"라고 시키면 진짜 범인이 잡힌다
"이 문제 진짜 풀어야 해?"를 의심 — 도구를 바꾸면 문제가 사라지기도 한다
"내 경우"가 아니라 "모두의 경우"로 일반화 — 내 자료에만 맞추지 말자
이렇게 하면 안 돼요
땜질을 무한히 쌓지 않기 — "조금만 더"가 반복되면 구조를 바꿀 신호다
"테스트 통과 = 끝"이라고 믿지 않기 — 직접 화면을 띄워 확인하라
"보안 = 데이터 유출"로만 좁게 보지 않기 — AI 서비스의 1순위 위험은 비용일 수 있다
🌍 다른 업무에 적용한다면?
반복 업무 자동화: 가장 자주 하는 한 단계부터 자동화 → 옆 단계로 복제
보고서·지원서: 한 번 만든 프로필·정리 자료를 여러 양식의 칸으로 재활용
유료 API를 쓰는 모든 서비스: 공개 전 "무제한 호출 시 비용"을 계산하고 상한을 건다
느린 작업의 UX: 진행 표시·실시간 출력으로 "일하고 있음"을 보여주기
🚀 앞으로의 계획
손으로 시작한 PoC가 일주일 만에 "공개 직전"까지 왔습니다. 남은 건 설계한 비용 방어를 적용하고 배포 버튼을 누르는 것. 공개하고 나면 그 이야기로 또 찾아오겠습니다. 코딩 전문가가 아니어도, AI와 함께라면 진짜 문제를 하나씩 풀며 여기까지 올 수 있었습니다.
📋 재사용 가능한 프롬프트 (일주일의 핵심 모음)
1) 흩어진 자료로 프로필 만들기
이 폴더의 파일들은 나의 정보를 담고 있어.
깊이 있게 확인해서 내 정보를 정리해 프로필을 작성해줘.
날짜·실적은 원본끼리 대조해서 검증하고, 부풀려진 표현 없이 정확하게.
2) 욕심을 줄여 '한 단계부터' 만들기
[만들고 싶은 것]을 한 번에 다 만들지 말고, 가장 먼저 검증할 핵심 한 단계로 좁혀줘.
그 한 단계를 작은 작업들로 쪼개 계획을 세우고, 코드 전에 설계부터 보여줘.
3) AI 사용 비용을 미리 재보기
이 기능에 AI를 붙이면 한 번 호출에 비용이 얼마나 나오는지 [방식 A]와 [방식 B]로 비교해 재줘.
그 결과로 어느 방식을 기본으로 쓸지 추천해줘.
4) 땜질 대신 구조를 바꾸기
[기능]을 [임시방편]으로 버텨왔는데 한계에 부딪혔어.
임시방편 말고 구조 자체를 바꾸는 방법(예: 기다리며 처리 → 맡겨두고 알림)을 제안하고, 장단점·전환 순서를 알려줘.
5) "될 때도 안 될 때도" 문제를 실측으로 잡기
[기능]이 어떤 때는 되고 어떤 때는 안 돼. 조건은 같아.
추측하지 말고 원인을 나눠서 직접 측정해(예: 처음 켤 때 vs 데워진 뒤, 입력·출력 크기별), 진짜 원인을 분리해줘.
6) 공개 전 보안·비용 점검
이 서비스를 공개하기 전에, 이대로 열면 무슨 일이 벌어지는지 점검해줘.
AI(유료 API) 호출 부분이 인증 없이 열려 있는지, 무제한 호출 시 비용이 어떻게 청구되는지 짚고,
그럴듯한 방어(예: 출처 검증)가 우회 가능한지까지 냉정하게 검토해줘.