yeonjun@portfolio:~
$ claude "서류 마감 3시간 전인데 포트폴리오가 없어. 만들어줘"
Claude 네, 알겠습니다. Astro + Cloudflare Pages로 구성하겠습니다.
$ wrangler pages deploy dist
Deployment complete!
$ echo "이게 되네"
이게 되네_

네, 이 포트폴리오는 AI가 만들었습니다

Claude Code에게 시키고, Cloudflare에 올리고, 커피 한 잔 마셨습니다.
하지만 뭘 시켜야 하는지 아는 것도 실력이니까요.

그래도 한번 보시겠습니까?
v v
$ cat about.json
{
  "name":      "김연준",
  "born":      "2002.03.26",
  "age":       23,
  "education": "고졸",
  "status":    "무직",
  "honest":    true
}
$ git log --oneline --all
~2020 코딩을 처음 만졌습니다
학교 다니면서 이것저것 건드려 봤습니다.
뭔가 만들어지는 게 재밌었고, 뭔가 안 되는 게 더 많았습니다.
2020-23 간헐적으로 개발했습니다
하다가 멈추고, 멈추다가 다시 하고.
체계적인 교육 없이 독학과 삽질의 반복이었습니다.
포기한 적은 없지만, 매일 한 것도 아닙니다. 솔직히.
2023~ LLM이 등장하고, 진짜 개발을 시작했습니다
ChatGPT가 나오고 세상이 바뀌었습니다.
혼자서 막혔던 벽을 AI와 함께 부수기 시작했고,
"이해는 되는데 구현을 못 했던 것들"이 실제로 만들어지기 시작했습니다.
도구가 바뀌니까 사람도 바뀌더라고요.
HEAD 백수입니다
학벌도 없고, 경력도 없고, 자격증도 없습니다.
있는 건 만들고 싶은 것들의 목록과,
그걸 실제로 만들어본 경험뿐입니다.
$ echo "이력서에 쓸 수 있는 건 별로 없습니다."
이력서에 쓸 수 있는 건 별로 없습니다.
$ echo "그래서 대신 이걸 만들었습니다."
그래서 대신 이걸 만들었습니다._
$ ls -la ./projects/
01 Soccer Field Macro
2021
Soccer Field Macro

제가 처음으로 완성시킨 프로젝트입니다. 작동하는 500줄의 코드를 만들기 위해 두 달이 걸렸습니다. StackOverflow를 헤매고, 웹에서 가져온 온갖 코드 조각들을 이어 붙이며 작동할 때까지 순서를 바꿔보고, 조각을 하나 더 추가해보고, 버그 메시지를 그대로 복사해서 구글 검색창에 붙여넣던 시절이었습니다. PyQt5로 만든 GUI 앱이었는데, 조기축구를 하는 지인분이 "다른 팀들이 매크로로 구장 예약을 독점한다"는 하소연에서 시작된 프로젝트입니다. 지금 코드를 다시 보면 끔찍하고 해괴하지만, 실전에서 원하는 스케줄의 구장을 모두 예약하는 데 성공했을 때 세상을 가진 듯한 성취감을 느꼈습니다. 이 프로젝트를 진행하면서 HTTP, REST API의 세계를 어렴풋이 알게 되었고, 크롤링을 통해 구장 정보와 예약 가능 시간대의 데이터를 처음으로 추출해본 경험이었습니다.

PythonPyQt5requestsBeautifulSoup4
02 StockPaste
2024
StockPaste

네이버증권, FnGuide 주식 정보 크롤링 & 가공 프로그램입니다. 한창 주식을 공부할 때, 매번 시장 동향과 종목 세부 정보를 손으로 복사해서 LLM 채팅창에 붙여넣던 번거로움을 해결하고 싶어서 시작했습니다. Playwright로 헤드리스 브라우저를 띄워 타겟 사이트에 무리를 주지 않는 속도와 간격으로 크롤링을 진행합니다. 유저가 입력한 종목 코드와 URL 쿼리 인자(기간, 페이지 수 등)를 바탕으로 선택된 URL에 한해 데이터를 추출하고, 거시 정보 / 미시 정보 / 재무 정보 / 차트 / 시세 등 각 도메인 카테고리에 맞게 가공·병합하여 마크다운 파일로 제공합니다. 하단의 'Copy for LLM' 입력 폼에서 원하는 프롬프트를 입력하면, 마크다운 파일 끝에 <user instructions> 태그로 프롬프트가 반영되어 정제된 문서를 LLM에게 바로 던질 수 있는 포맷으로 복사됩니다. 요즘 주식 공부하는 데 아주 요긴하게 쓰고 있습니다.

PythonPlaywrightNaver FinanceFnGuide
03 Codebase Explorer
2025
Codebase Explorer 1Codebase Explorer 2
1/2

역시 개인적인 불편함 해소를 위해 탄생한 프로젝트입니다. Claude Code, Cursor 같은 LLM 기반 코딩 에이전트를 쓸 때, 매번 새롭게 관련 파일을 탐색하게 만드는 것이 토큰 소모와 정확도 저하를 유발한다고 느꼈습니다. 작업 전에 관련 파일들을 미리 찾아 나열해두면, 이 정보를 바탕으로 LLM에게 바로 온보딩 가능한 지시를 내릴 수 있겠다는 아이디어에서 시작했습니다. Electron으로 제작된 이 앱은 VS Code처럼 프로젝트 repo를 불러오면, 각 파일의 AST 기반 의존성 정보(import/export)와 시그니처 이름을 추출합니다. 핵심 코드 내용은 Gemini Flash API를 통해 역할과 기능을 간결하게 요약한 메타데이터로 변환됩니다. 정적 분석 결과와 AI 요약을 결합한 메타데이터 파일이 각 코드 파일마다 생성되고, 유저가 작업 내용을 요청하면 Gemini Flash가 부합하는 파일들을 높은 정확도로 찾아내 상대 경로와 코드를 복사 가능한 형태로 제공합니다. 최근까지 요긴하게 사용했으나, AI 에이전트의 자체 파일 탐색 기능이 눈부시게 좋아지면서 조용히 은퇴시켰습니다.

ElectronAST ParserGemini Flash APITypeScript
FLAGSHIP
04 Durian Chat
2025
Durian Chat

실제로 1인 창업을 해보자는 마음으로 진행한 프로젝트입니다. 국가 기반 랜덤 매칭 기능과 LLM 기반 실시간 자동 번역을 결합하여, 어떤 나라의 유저와도 모국어로 언어 장벽 없이 채팅할 수 있는 소셜 SaaS 앱입니다. 아이디어를 구현하기 위한 MVP 단계는 한 달 정도에 마무리되었지만, 실제 출시를 목표로 하면서 많은 접속자 수와 부하를 염두에 둔 설계, Rate Limit, 백엔드 Zod 검증, Supabase RLS 보안 설정까지 고려하며 시행착오를 반복한 끝에 최종적으로 두 달이 소요되었습니다. PayPal과 Paddle 결제 연동까지 마쳤습니다. 출시 후 Reddit에서 적극적인 홍보를 진행했지만, 소수의 인원만 잠깐 써보고 이탈하는 참담한 결과를 맞이했습니다. 접속자 부재와 서버비 부담으로 현재는 서버를 닫은 상태입니다. 회원가입을 강제하면 유저가 이탈한다는 것, 과도한 보안 강화와 스케일 확장보다 빠른 MVP로 피드백을 받는 것이 중요하다는 교훈을 준, 제 애정이 가득 담긴 프로젝트입니다.

Next.jsSupabaseCloudflare WorkersRedisAblyOpenRouter
$ ls -la ./team-projects/
01 Fun Pick
2024
Fun Pick

[새싹 x 코딩온] 웹 개발자 부트캠프 1차 팀 프로젝트입니다. "할인되는 편의점 제품을 한데 모아보면 어떨까?"라는 아이디어에서 출발한 웹 서비스로, CU·GS25·7ELEVEN의 식사 대용 제품과 할인 상품을 한 곳에서 조회할 수 있습니다. 5인 팀에서 저는 상품 목록 및 리뷰 페이지의 FE & BE를 담당했습니다. 상품 목록 렌더링, 리뷰 댓글 CRUD, Sequelize를 활용한 DB 연동을 구현했습니다. 2주간(2024.12.16 ~ 12.30) 주 3회 애자일 방식으로 진행하며 팀 협업의 기초를 경험한 프로젝트입니다.

Express.jsSequelizeMySQLHTML/CSS/JSAWS EC2
02 TeamFlow
2025
TeamFlow

청년취업사관학교 부트캠프에서 5인 팀(FiveAct)으로 진행한 협업 플랫폼입니다. 워크스페이스 생성, 공유 가능한 Todo, WebSocket 기반 실시간 채팅(이모티콘·파일·코드블럭 지원), 카카오/이메일 기반 로그인 기능을 갖춘 개발자 협업 사이트입니다. 저는 Backend를 담당하여 Node.js 서버 구축, WebSocket 실시간 채팅 구현, OAuth 및 nodemailer를 활용한 인증 시스템, MySQL 데이터베이스 설계를 맡았습니다. AWS EC2/RDS를 통해 배포까지 완료했습니다. 약 3주간(2025.02.10 ~ 02.28) 진행되었으며, 처음으로 팀원들과 역할을 나누어 하나의 서비스를 완성한 경험이었습니다.

Node.jsWebSocketMySQLOAuthAWS EC2/RDSReact
$ cat ~/.self/README.md
[ 협업에 대하여 ]

부트캠프 교육을 시작하기 전까지, 저는 대부분 혼자만의 프로젝트를 진행해왔습니다.
그래서 솔직히 협업 능력이 굉장히 저조할 거라고 스스로 생각했습니다.

하지만 팀 프로젝트를 경험하면서 오히려 깨달았습니다.
남들과 협업하며 혼자서는 해낼 수 없는 규모와 범위의 프로젝트를 진행하는 것이
더욱 재미있고, 보람 있는 일이라는 것을.

내가 맡은 부분이 전체의 일부가 되고, 팀원의 작업과 맞물려 하나의 결과물이 완성되는 과정에서
팀원으로서의 책임감이란 것을 처음으로 진지하게 느끼게 되었습니다.

[ 역량에 대하여 ]

솔직히, 스스로 개발 역량이 뛰어난 사람이라고 말하지는 못하겠습니다.

개발을 처음 접한 지난 5년의 시간 동안
마무리 짓지 못한 프로젝트가 수두룩하게 많고,
강한 끈기를 가진 사람이라고 자신 있게 말할 수는 없습니다.

그래도 개발이라는 분야를 지속적으로 사랑해왔고,
애정을 가진 프로젝트에는 하나라도 더 좋은 기술을 사용하고
더 좋은 설계를 하고자 공부하고 찾아본 시간들이 분명히 있었습니다.

그 시간들을 회고해보면 —
실제 회사 업무에서도, 이런 저의 장점이 발휘될 수 있지 않을까 조심스럽게 생각합니다.

[ 기술적 경험 ]
- Python을 활용한 아이디어 프로토타입 구현 경험 다수
- 프로덕션 레벨 Web Service를 0부터 10까지 구현·출시한 경험
- Fullstack 개발자 부트캠프 수료 — 웬만한 Web Project 진행에 자신 있음
- Electron을 통한 Native App 개발 경험
$ cat commitment.txt

당장 저에게 익숙하지 않은 기술 스택을 요구하는 과제가 부여된다 해도,
저의 모든 역량과 시간을 동원하여
LLM을 비롯한 모든 도구의 도움을 적극적으로 활용하며
top-down 방식으로 해당 영역에 온보딩하기 위해
모든 노력을 다할 것임을 소명합니다.

$ echo "마지막으로,"

저는 고졸이고, 그렇다고 해서 혼자만의 길로 개발에 올인한 천재도 아닙니다.

모자랐고, 방황했지만, 이 길을 사랑했습니다.

기술의 발전에 은총을 입어 제 생각과 아이디어를 신속하게 세상에 만들어낼 수 있게 된 지금,
저는 혼자 컴퓨터 앞에 앉아 헤매며 막연히 새로운 목표를 만들어내어 작업하던 좁은 세계에서 벗어나,

진짜 사업을 일구고 길을 개척하는 귀사에서
한 명의 개발자로서, 직업인으로서
진지하게 일하게 될 수 있기를 간절히 소망합니다.

$ _
$ cat /etc/personnel/김연준.conf
김연준 증명사진
이름 김연준
생년월일 2002. 03. 26
연락처 010-2216-7343
이메일 kyj002002@naver.com
주소 서울시 도봉구
학력 창동고등학교 졸업
[ 약력 ]
- 군 복무 (만기 전역)
- 서울시 청년취업사관학교 Fullstack 개발자 코스 수료
[ 자격 / 수료 ]
YYYY. MM 내용을 기입해주세요
YYYY. MM 내용을 기입해주세요