WooLam

벡터 검색만으로 AI의 기억을 만들 수 있을까: OpenHuman의 Memory Tree

AI 에이전트와 RAG, 세컨드 브레인을 공부하면서 한 가지 의문이 생겼다. AI가 현재 대화만 이해하는 데서 그치지 않고, 내가 이전에 남긴 기록과 작업 맥락까지 계속 기억하게 만들 수 있을까? 처음에는 개발자가 학습 기록, 에러 해결 과정, 설계 판단을 남기면 문서를 청킹하고 임베딩해 다시 찾아주는 서비스를 생각했다. 정확한 키워드를 몰라도 상황...

배포 준비와 다음 기능 개발을 병렬로 진행하기 위한 Git 브랜치 전략

4명의 백엔드 개발자가 함께 만든 1차 MVP가 배포를 앞두고 있었다. 기능 구현은 대부분 끝났지만 Docker와 Nginx, GitHub Actions, 환경 변수, AWS 설정은 실제 환경에서 맞춰 봐야 했다. 동시에 팀은 2차 확장 기능 개발도 시작해야 했다. 처음 든 생각은 단순했다. 배포할 코드가 develop에 있으니 먼저 main에 병합...

.env에 넣으면 안전할까? 비밀값 관리와 1Password·Bitwarden

팀 프로젝트에서 Kakao Local API와 YouTube Data API를 연동하면서 API 키를 발급받았다. 기능을 구현하는 것보다 먼저 막힌 부분은 의외로 단순했다. 이 값을 나머지 세 명에게 어떻게 전달해야 할까? 처음 생각한 방법은 익숙했다. Slack으로 키를 전달하고, 각자 .env 파일이나 IntelliJ 환경 변수에 저장한다. .e...

AI 에이전트는 어떻게 판단하고 행동할까: LLM, 도구, 관찰, 반복 구조

AI 에이전트라는 말을 자주 듣지만, 정확히 무엇을 가리키는지는 선뜻 설명하기 어려웠다. 처음에는 ChatGPT보다 조금 더 자율적이고 성능이 좋은 AI 모델 정도로 생각했다. 질문에 답하는 데서 그치지 않고 알아서 여러 일을 처리하니, 모델 자체에 특별한 능력이 더해진 것처럼 보였다. 그런데 구조를 하나씩 살펴보니 관점이 달라졌다. AI 에이전트를...

Spec-kit만으로는 부족했다: 팀 병렬 개발을 위한 SDD 문서 구조 설계

최근 백엔드 개발자 4명이 모여 유튜버가 방문한 맛집 탐색 서비스의 MVP를 개발하기로 했다. 이 서비스의 핵심 기능은 다음과 같다. 맛집 목록 조회 및 맛집 이름 검색 지역별, 유튜버별, 음식 카테고리별 필터링 맛집 상세 조회 및 방문한 유튜버 정보, 관련 영상 링크 확인 관리자의 맛집·유튜버·영상 정보 등록 프로젝트를 시작할 ...

RAG 청킹 전략 비교: 문서를 길이로 자를까, 의미로 자를까?

RAG를 정리하면서 검색 파이프라인 전체 구조와 RAG가 학습이 아니라 검색이라는 점까지는 짚었는데, 그때마다 청킹은 “문서를 검색 가능한 단위로 나누는 과정” 정도로 뭉뚱그리고 넘어갔다. 마침 『AI 에이전트 개발 완벽 입문』의 RAG·청킹 부분을 다시 보다가, 정작 청킹 방식에 따라 검색 결과가 어떻게 달라지는지는 제대로 짚고 넘어간 적이 없다는 ...

MVP는 기능을 줄이는 것이 아니라 가설을 줄이는 과정이다

오늘은 여행, 데이트 코스, 장소 추천, 예약을 연결한 서비스를 구상했다. 아직 어떤 서비스를 만들지는 정하지 못했다. 대신 아이디어를 구체화하면서 기능보다 먼저 정해야 할 것이 있다는 점을 배웠다. 처음에는 사용자 취향에 맞는 장소를 추천하고, 여러 장소를 하나의 동선으로 연결한 뒤, 숙소나 체험 상품의 예약과 결제까지 이어지면 좋겠다고 생각했다....

클린 코드를 읽고, 읽기 쉬운 코드의 기준이 달라졌다

나는 이전부터 다른 사람이 쉽게 이해할 수 있는 코드가 좋은 코드라고 생각했다. 실행 결과가 올바른 것은 기본이고, 이후에 코드를 읽을 사람에게 의도가 잘 전달되어야 한다고 보았다. 그래서 변수명과 메서드명을 가능한 한 구체적으로 짓고, 긴 메서드는 작은 단위로 나누려고 했다. 클래스와 DTO도 역할에 따라 분리하고, 하나의 코드가 너무 많은 책임을...

실무에서 PostgreSQL을 선택하는 이유: 데이터 정합성과 JSONB를 중심으로

지금까지 Spring Boot 프로젝트에서 데이터베이스가 필요하면 자연스럽게 MySQL을 선택했다. 벤치마크를 비교해서 내린 결론은 아니었다. 이미 연결 방법과 설정에 익숙했고, 일반적인 CRUD 서비스를 만드는 데 부족함을 느끼지 못했기 때문이다. 그런데 실무 사례를 찾아볼수록 PostgreSQL을 선택하는 팀이 자주 보였다. 처음에는 단순히 Po...