포트폴리오 & Google AI와 Cloud Run을 사용한 개발 일지 요약
Source: Dev.to
About Me
저는 교육 및 교육 설계 배경을 가진 소프트웨어 엔지니어입니다. 엔지니어링을 전업으로 전환하기 전까지 여러 해 동안 교사와 학습 자료 디자이너로 일했으며, 이를 통해 명확성, 구조, 그리고 사람들이 실제로 기술 정보를 어떻게 흡수하는지에 대한 사고 방식을 형성했습니다.
이 포트폴리오를 통해 소프트웨어 엔지니어링, 학습, 그리고 AI 기반 성찰의 교차점을 탐구하고자 했습니다—단순히 프로젝트를 보여주는 것이 아니라 시간이 흐름에 따라 제가 어떻게 배우고 시스템에 대해 사고하는지를 포착하고 싶었습니다. 이 포트폴리오는 기술 산출물이자 학습 일지이며, 모든 작업을 저장할 수 있는 플랫폼을 원합니다.
Portfolio
Google Cloud Run에 배포된 실시간 포트폴리오입니다:
배포 라벨 요구 사항을 위해 다음 명령으로 서비스를 배포했습니다:
--update-labels dev-tutorial=blog-devcommunity2026
How I Built It
Frontend
- React + TypeScript
- 섹션, 표, 리스트, 코드 블록 등 다양한 콘텐츠 형식을 지원하는 맞춤형 저널 스키마
- 세부 정보를 숨기고 핵심 요점을 강조하는 Review Mode UI
Backend
- Node.js + Express, 컨테이너화되어 Google Cloud Run에서 실행
- 저널 콘텐츠를 Google Gemini에 전송하고 응답을 정규화하는 맞춤형 요약 엔드포인트
Google AI
- 요약을 위해 Google Gemini (
gemini-2.5-flash) 사용 - 고정된 AI 응답 형식을 가정하지 않고, Gemini의 도움을 받아 여러 JSON 형태(섹션, 배열, 중첩 객체, 표 등)를 해석할 수 있는 탄력적인 추출 레이어를 구축했습니다. (참고: 무료 티어에서는 사용량 제한에 도달하면 요청이 429 (쿼터 초과) 오류를 반환할 수 있습니다.)
- 이는 AI 출력이 항상 예측 가능하지 않은 실제 상황을 반영합니다.
Design Decisions
- AI를 도우미로 간주했으며, 절대적인 진실 원천으로 보지 않았습니다.
- 요약을 자신 있게 생성할 수 없을 때 시스템이 우아하게 대체 동작을 수행하도록 설계했습니다.
What I’m Most Proud Of
- AI 통합 – 일관되지 않은 AI 출력에도 UI가 깨지지 않도록 처리한 것이 가장 어려우면서도 보람된 부분입니다.
- 학습 우선 설계 – 포트폴리오가 결과만 보여주는 것이 아니라 그 뒤에 있는 사고 과정을 포착합니다.
- 엔드‑투‑엔드 소유권 – 프론트엔드 디자인부터 백엔드 API, Cloud Run 배포, CI/CD까지 전체 스택을 직접 담당했습니다.
- 실용적인 AI 활용 – 화려한 데모 대신 AI 기능이 실제 개인 문제(복잡한 기술 지식의 복습 및 유지)를 해결합니다.
