비개발자로, 코딩 경험 1도 없이 AI Agent 만으로 나만의 주식 포트폴리오 관리 웹앱을 만듬.
꽤 오랫동안 주식을 했지만, 귀동냥으로 넣었다가 장투 가고, 또 여기저기 공모주 몇 주에, 해외주식, ETF/펀드, IRP/ISA 등 흩어져 있던 걸 이번 기회에 통합하는 게 1차 목표였고, 오늘 어느 종목의 변동으로 내 전체 포토폴리오가 변하였느냐를 한 눈에 보일 수 있 도록 하는 게 최종목표.
더불어, 하루에 정해진 4번의 시간에, 일정 이상 급등락시 텔레그램으로 알림을 받도록 진행하였다.
활용한 툴
처음에는 헤르메스에 연동한 codex로 진행하다가, 다른 계정으로 결재하였다가 구독 취소 대기 중인 Claude가 생각나서 급소환, cowork 로 진행.
어찌어찌 하다 보니, Next.js / Vercel(배포) / Supabase(DB) / 한국투자증권 KIS Open API(국내 시세) / Yahoo Finance API(미국 시세) / Telegram Bot API(알림) / GitHub(코드 관리) / cron-job (스케줄러) 까지 사용하게 되어.. 진행하면서 에러 fix와 수정을 통해서 각 프로그램들의 효용가치를 몸으로 체험 :)
진행 내용
Supabase에 보유 종목 데이터를 저장하고, KIS API로 국내 시세를 가져와 Next.js 대시보드에 표시
종목 카드 UI, 트리맵 비중 시각화, 탭 구조(개별종목 / ETF / 미국주식)를 단계적으로 구현
미국 주식은 처음에 KIS 해외주식 API를 시도했으나 404 오류로 전부 실패해 Yahoo Finance API로 전환하여 해결
매일 4회 알림 체크는 cron-job.org와 Telegram Bot으로 자동화
한국 증권 거래소 - 스크린샷
빨간색 배경의 한국 앱 스크린샷
시행착오
KIS API 속도 제한: 1초 제한으로 17개 종목 동시 호출 실패 -> 800ms 딜레이 + 순차 처리로 해결
Vercel 캐시 문제: 종목 편집 후에도 이전 데이터가 표시 -> Supabase 클라이언트에 cache: no-store 적용
cron-job 30초 타임아웃: 개별종목과 ETF를 분리, ETF는 클라이언트 사이드 lazy loading으로 전환
GitHub 인증: 비밀번호 대신 Personal Access Token 발급이 필요. 너무 오래 동안 방치하였던 거라 ㅠ
KIS 해외주식 API: 소형주는 DB 미등록으로 404 오류 -> Yahoo Finance API로 대체
배운 점
코딩을 몰라도 "무엇을 만들고 싶은지"를 명확히(정확하게는 좌충우돌 하면서 내가 구체화시켜 나가면서!) 얘기하면, 알아서 구현해 준다. 가끔씩은 주인장을 약간 무시하는 느낌이 들 때도 있고, 내가 더 요구하거나 의견을 제시하면 그때서야 알려 준다. 그리고 "하세요:" 많이 나온다... ㅜㅠ
무료 플랜의 제약(타임아웃, API 한도)을 피하려다 시간이 더 걸리는 경우도 있었다. AI와의 작업도 결국 원샷이 아니라 오류 -> 수정 -> 재배포의 반복.
결국 무료/저비용을 쓸려다 보니, 그만큼 시간 비용이 든다. 예를 들어, vercel 경우 서버리스를 사용하다 보니 새로 고침 하여도 이전의 인스턴스를 그대로 사용한다. 유료 로 가면 빠른 성능과 즉각적인 업데이트가.. (돈을 마니 벌자! 그럴려면 포토폴리오를 잘 만들어서 잘 굴려야 한다!! --> 결국 이번달 구독해지할려고 했던 claude 계속 사용키로... 돈이 돈을 번다!)