전체 글 127

에이전트가 20단계째 무너지는 이유: 신뢰성은 분산 시스템 문제다

에이전트에게 작업을 맡기고 다른 일을 하다 돌아오면, 19개의 단계를 흠잡을 데 없이 처리하다가 20번째에서 엉뚱한 파일을 건드려 앞의 19개를 무너뜨리는 장면을 본다. 능력이 부족해서가 아니다. 각 단계는 정확했다. 무너진 건 전체를 끝까지 끌고 가는 신뢰성이다. AI를 잘 쓰는 법이라고 하면 보통 프롬프트를 잘 쓰는 기술을 떠올린다. 하지만 모델이 이미 사람보다 빠르게 코드를 짜는 지금, 진짜 문제는 워딩이 아니다.혼자서는 20단계를 못 버티는 모델을, 어떻게 200단계를 버티는 시스템으로 감싸느냐. 이건 프롬프트의 영역이 아니라 설계의 영역이고, 백엔드 엔지니어에게는 낯설지 않은 종류의 문제다. 1. 코드는 풀렸다, 남은 건 신뢰성이다모델의 코딩 능력이 실용 단계를 넘었다는 건 이제 체감이 아니라 ..

AI Agent 2026.05.31

MCP: AI가 도구를 쓰는 방식의 표준

AI한테 "지금 서버 CPU 좀 확인해줘"라고 말하면 어떻게 될까. 보통은 "저는 실시간 데이터에 접근할 수 없습니다"라는 답이 돌아온다. MCP는 이 한계를 무너뜨린다. AI가 직접 Grafana 대시보드를 조회하고, 메트릭을 읽고, 이상 패턴을 짚어주는 것이 가능해진다. 1. MCP가 뭔가MCP(Model Context Protocol)는 Anthropic이 만든 오픈 프로토콜이다. AI 모델이 외부 도구, 데이터 소스, 서비스와 통신하는 방식을 표준화한다. 비유를 하자면 USB-C 포트와 비슷하다. 과거엔 기기마다 다른 충전 단자를 썼지만, USB-C 하나로 노트북도, 폰도, 모니터도 연결된다. MCP 이전에는 AI가 외부 시스템과 연동할 때마다 각각 다른 방식으로 통합을 구현해야 했다. MCP는 ..

AI Agent 2026.03.10

코드는 완성됐다, 이제 믿을 수 있는가

배포 직전이었다. 테스트는 전부 통과했고, 프론트엔드와 백엔드는 API 스펙대로 정확하게 통신했다. 남은 건 배포 명령 하나였다.그런데 손이 멈췄다. 이 코드를 아무도 리뷰하지 않았다. AI가 짰고, 내가 동작을 확인했을 뿐이다. 동작하는 코드와 믿을 수 있는 코드는 다르다. 그 간극을 메우지 않은 채 배포 버튼을 누르는 건 다른 문제다. 그래서 파이프라인을 두 단계 더 추가했다. 코드리뷰 AI, 그리고 보안검증 AI. 1. AI가 짠 코드를 AI가 리뷰한다처음엔 이상하게 느껴졌다. 같은 AI가 짠 코드를 같은 AI가 리뷰하면 무슨 의미가 있는가. 결과를 보고 생각이 바뀌었다.코드리뷰 AI는 구현 편향이 없다. 개발 세션의 AI는 기능을 만들면서 수많은 트레이드오프를 결정한다. 빠르게 동작하는 방향으로 ..

AI Agent 2026.03.08

개발 속도는 AI가 해결했다, 이제 남은 건 컨텍스트

3시간 동안 코드를 한 줄도 직접 쓰지 않고 Next.js 프론트엔드, Spring Boot + JPA 백엔드, Security, 캐시 서버, 데이터베이스, Prometheus 모니터링 그리고 클라우드 배포를 위한 helm chart 다듬기까지 모두 끝이 났다.로컬 데이터베이스 및 캐시 서버도 코드 한 줄 없이 생성됐다. 물론 이 프로세스는 테스트 컨테이너를 포함한 100개가량의 단위 테스트 코드 위에서 동작한다.Claude Code 하나로. 이상하게 "신기하다"는 감각보다 "이제 뭘 해야 하지"라는 감각이 먼저 왔다. 이 글은 그 감각에서 출발한다.1. 속도는 이미 충분하다AI가 코드를 빠르게 짠다는 건 이제 새로운 이야기가 아니다. 하지만 실제로 체감하면 다르다.기능 개발, Spring Securit..

AI Agent 2026.03.06

n8n & Claude로 만드는 장애 자동 복구 파이프라인

서비스 장애가 발생했을 때, 온콜 담당자가 새벽 3시에 일어나 로그를 뒤지는 장면은 낯설지 않다. AI가 그 역할을 대신할 수 있을까? 단순히 알림을 보내는 수준이 아니라, 분석하고 코드까지 수정하는 자동화 파이프라인이다. 다만 AI를 믿고 자율주행처럼 맡겨두는 것과, 사람이 개입하는 지점을 명확히 설계하는 것은 전혀 다른 이야기다. 1. 전체 흐름: n8n 오케스트레이터이 파이프라인에서 n8n은 각 단계를 연결하는 워크플로우 엔진 역할을 한다. AI 분석, GitHub 연동, Telegram 메시지 전송이 모두 n8n 노드로 이어진다. 전체 흐름은 세 단계로 나뉜다. 에러 감지 → 로그 분석 → [승인] → 코드 분석 → [승인] → PR 생성 및 배포 → 결과 알림 각 단계 사이에 사람이 개입하는 A..

AI Agent 2026.03.03

CLAUDE.md부터 Subagent까지: Claude Code 컨텍스트 관리와 워크플로우 설계

Claude Code를 처음 접하면 "터미널에서 쓰는 ChatGPT" 정도로 인식하기 쉽다. 실제로 대부분의 사용자는 질문하고 답변 받는 수준에 머문다. 하지만 Claude Code는 파일을 읽고, 코드를 수정하고, 명령어를 실행하며 자율적으로 작업을 완수하는 에이전트다. 그 능력을 제대로 끌어내려면 내부 동작 방식을 이해해야 한다.1. CLAUDE.md: Claude의 장기 기억 설계Claude Code는 세션이 끝나면 대화 내용을 기억하지 못한다. 이 문제를 해결하는 것이 CLAUDE.md다. 프로젝트 루트에 두면 매 세션 시작 시 자동으로 로드된다. 단순히 "이렇게 코드 짜줘"를 적어두는 README가 아니다. Claude가 프로젝트에서 작업할 때 항상 참고하는 운영 매뉴얼이다.CLAUDE.md는 ..

AI Agent 2026.02.28

Tailscale은 어떻게 NAT 뒤의 기기를 연결하는가: WireGuard, DERP, NAT Hole Punching

공인 IP가 없는 서버에 외부에서 SSH로 접속하려면 어떻게 해야 할까? 대부분은 포트 포워딩이나 점프 호스트를 떠올린다. 하지만 Tailscale은 라우터 설정을 건드리지 않고, 공인 IP 없이도 두 기기를 직접 연결한다. 그 안에는 WireGuard, NAT Hole Punching, DERP라는 세 가지 핵심 기술이 맞물려 있다.1. WireGuard: Tailscale의 데이터 플레인Tailscale은 자체 프로토콜이 아니라 WireGuard를 데이터 전송 계층으로 사용한다. WireGuard는 OpenVPN 대비 코드량이 100배 이상 적고(~4,000 LoC), 현대 암호화 기법만을 고집한다. 핵심 설계 원칙: Noise 프로토콜 프레임워크WireGuard의 핸드셰이크는 Noise_IKpsk2..

Architecture 2026.02.27

JPA는 SQL Injection을 어떻게 방어하는가?

이번 글에서는 JPA 가 SQL Injection을 어떻게 방어 하는지 알아 본다.1. SQL Injection이란SQL Injection은 사용자 입력값이 SQL 쿼리에 그대로 삽입되면서, 공격자가 의도하지 않은 쿼리를 실행시키는 공격이다.가장 고전적인 예시를 보자.SELECT * FROM users WHERE username = '' OR '1'='1' --' AND password = 'anything' 로그인 폼에 ' OR '1'='1' -- 를 입력하면, WHERE 조건이 항상 참이 되어 인증 없이 모든 사용자 데이터를 조회할 수 있다. -- 이후는 주석 처리되므로 비밀번호 검증도 무력화된다.이런 공격이 가능한 근본 원인은 사용자 입력을 문자열 그대로 SQL에 이어 붙이기 때문이다.// 절대 이..

Spring Data 2026.02.27

Docker Compose에서 K3s로 홈서버 마이그레이션과 네트워킹(라우터) 보안 강화

기존에 Docker Compose로 운영하던 홈서버 환경을 Kubernetes(K3s)로 마이그레이션하면서 겪은 과정을 정리했다.단순히 컨테이너를 올리는 것뿐 아니라, 볼륨 관리 방식을 hostPath 에서 PVC(Local-Path Provisioner)로 전환하고, 보안 컨텍스트를 정리하는 과정까지 다룬다. 이동한 애플리케이션은 n8n을 포함해 총 여섯 개 였지만, Spring Application을 중점으로 연관된 서비스와 함께 설명한다.Spring boot 프로젝트 2개MySQL 데이터베이스VUE(Nginx) 프로젝트 1개먼저 기본적인 Secret 부터 설정을 시작했다.1. Docker Hub Secret 및 API 인증 토큰 전환프로젝트의 소스는 Docker Hub의 private 저장소에 등록..

DevOps 2026.02.26

Helm Chart로 Spring Boot 프로덕션 배포하기, 선언적 배포

쿠버네티스에 Spring Boot 애플리케이션을 처음 올릴 때 막막한 것 중 하나가 "설정을 어디에, 어떻게 써야 하는가"다.이번 글에서는 Helm Chart를 기준으로 Spring Boot를 프로덕션에 배포할 때 필요한 설정 항목들을 하나씩 살펴본다. values.yaml 파일을 중심으로 각 설정이 왜 필요한지, 어떤 영향을 주는지를 함께 설명한다. 1. 초기 Replica 개수 설정서비스를 기동할 때 몇 개의 Pod를 띄울지 지정한다.replicaCount: 22로 설정하면 동일한 애플리케이션 Pod가 2개 생성된다. 단일 Pod로 운영하면 해당 노드에 장애가 발생했을 때 서비스가 완전히 중단되므로, 프로덕션 환경에서는 최소 2개 이상을 권장한다.다만 replicaCount는 HPA(8번 섹션)가 활..

카테고리 없음 2026.02.11