Series

AI 엔지니어링 트렌드

프롬프트에서 컨텍스트로, AI 엔지니어링의 실무 지형을 12편에 걸쳐 정리합니다.

총 12편 기획 · 12편 공개 · 최근 업데이트 2026년 10월 9일

AI 엔지니어링 트렌드는 LLM을 실제 서비스에 붙이면서 부딪힌 문제와 그때 내린 결정을 한 편에 하나씩 기록하는 연재입니다. 모델 발표 소식이나 벤치마크 순위는 다루지 않습니다. 붙이고 난 뒤에 생기는 일을 다룹니다. 컨텍스트가 어디서 새는지, 도구를 몇 개까지 쥐어줘야 하는지, 호출 비용을 어디서 깎을 수 있는지 같은 것들입니다.

각 편은 따로 읽어도 되지만 EP.01부터 순서대로 읽으면 하나의 흐름이 됩니다. 앞 편에서 해결한 문제가 다음 편의 출발점이 되도록 짰기 때문입니다. 컨텍스트를 예산으로 보고 정리하니 도구를 잘못 고르는 문제가 드러났고, 하네스를 손보고 나니 시스템마다 연동을 새로 만드는 비용이 보였습니다.

연재 목차

  1. EP.012026년 9월 12일 · 6분

    컨텍스트 엔지니어링: 무엇을 넣을지가 아니라 무엇을 버릴지의 문제

    RAG 파이프라인을 붙이고도 답변 품질이 들쭉날쭉했던 이유는 검색이 아니라 컨텍스트 구성에 있었습니다. 토큰을 예산으로 보고 도구 정의·대화 히스토리·검색 결과를 재배분한 과정을 정리했습니다.

    이 편의 결론

    • 프롬프트를 다듬어도 답변이 안 좋아진다면, 문제는 문장이 아니라 컨텍스트 구성일 가능성이 큽니다.
    • 컨텍스트 윈도는 용량이 아니라 예산입니다. 시스템 프롬프트·도구 정의·대화 히스토리·검색 결과가 같은 지갑을 씁니다.
  2. EP.022026년 9월 14일 · 6분

    에이전트 하네스 설계: 성능을 만드는 건 모델이 아니라 그 주변 구조였다

    같은 모델인데 어떤 에이전트는 일을 해내고 어떤 건 계속 헛돕니다. 도구를 몇 개 쥐어줄지, 권한을 어디까지 열지, 실패했을 때 어떻게 되돌릴지를 설계한 과정을 정리했습니다.

    이 편의 결론

    • 모델을 바꿔서 해결되는 문제보다, 하네스를 고쳐서 해결되는 문제가 훨씬 많았습니다.
    • 도구는 많을수록 좋지 않습니다. 개수가 늘면 오선택이 같이 늘어납니다.
  3. EP.032026년 9월 17일 · 5분

    MCP가 바꾸는 연동 비용: 시스템마다 도구를 새로 만드는 반복을 끊다

    붙일 시스템이 늘 때마다 도구 정의와 스키마를 새로 쓰는 일이 반복됐습니다. MCP를 표준 인터페이스로 두고 연동 비용이 곱셈에서 덧셈으로 바뀌는 지점을 정리했습니다.

    이 편의 결론

    • 도구를 직접 붙이면 연동 비용이 에이전트 수 × 시스템 수로 늘어납니다. MCP는 이걸 합으로 바꾸려는 시도입니다.
    • 이득은 "한 번 만들면 여러 곳에서 쓴다"가 아니라 "같은 규약을 쓰니 갈아끼울 수 있다" 쪽이 큽니다.
  4. EP.042026년 9월 19일 · 5분

    코딩 에이전트, 벤치마크 말고 우리 코드베이스 기준으로 고르기

    여러 코딩 에이전트를 실제 작업에 번갈아 쓰면서 갈리는 지점이 분명해졌습니다. 탐색 범위·실행 루프·운영 적합성 세 축으로 판단 기준을 정리했습니다.

    이 편의 결론

    • 벤치마크 점수는 우리 코드베이스에서의 성능을 예측하지 못했습니다. 갈리는 건 모델이 아니라 루프였습니다.
    • 판단 축은 셋입니다 — 탐색 범위 · 실행 루프 · 운영 적합성.
  5. EP.052026년 9월 22일 · 5분

    LLM 회귀 테스트를 CI에 넣기: 매번 다른 출력을 어떻게 통과/실패로 가를까

    같은 입력에 매번 다른 답이 나오는 걸 전제로 테스트를 짰습니다. 정확 일치 대신 성질 검사, 1회 실행 대신 통과율 임계값으로 CI 게이트를 만든 과정을 정리했습니다.

    이 편의 결론

    • LLM 기능에 테스트를 안 붙이면, 프롬프트 한 줄 고칠 때마다 무엇이 깨졌는지 모릅니다.
    • 정확 일치는 쓸 수 없습니다. 출력이 만족해야 할 성질을 검사합니다.
  6. EP.062026년 9월 24일 · 4분

    구조화 출력은 얼마나 믿을 만한가: 스키마를 줬다고 스키마대로 오지는 않는다

    JSON 스키마를 넘기면 끝날 줄 알았는데 아니었습니다. 프롬프트 지시부터 제약 디코딩까지 강제 수준을 네 단계로 나누고, 각 단계에서 무엇이 보장되고 무엇이 안 되는지 정리했습니다.

    이 편의 결론

    • 구조화 출력에는 강제 수준이 네 단계 있고, 단계마다 보장하는 게 다릅니다.
    • 가장 흔한 오해: "스키마를 줬으니 타입이 맞을 것" → 형식은 맞아도 값이 틀립니다.
  7. EP.072026년 9월 27일 · 5분

    프롬프트 캐싱과 비용 설계: 같은 결과를 더 싸게 얻는 건 순서 문제였다

    LLM 호출 비용이 예상보다 컸는데 원인은 모델이 아니라 프롬프트 구성 순서였습니다. 고정 블록을 앞으로 모아 캐시를 살리고, 무엇이 캐시를 깨뜨리는지 정리했습니다.

    이 편의 결론

    • 프롬프트 캐싱은 접두사(prefix) 단위로 걸립니다. 앞에서 한 글자만 달라져도 뒤 전체가 캐시를 못 씁니다.
    • 그래서 고정된 것을 앞에, 변하는 것을 뒤에 두는 배치만으로 비용이 크게 달라집니다.
  8. EP.082026년 9월 29일 · 4분

    언제 RAG를 쓰지 말아야 하나: 검색을 붙이는 게 항상 정답은 아니다

    RAG 파이프라인을 걷어내고 롱컨텍스트로 바꿨더니 더 정확해진 기능이 있었습니다. 문서 수·변경 빈도·질문 유형으로 RAG와 대안을 가르는 기준을 정리했습니다.

    이 편의 결론

    • 문서가 적고 자주 안 바뀌면 RAG보다 롱컨텍스트가 정확하고 단순합니다. 청킹 손실이 없기 때문입니다.
    • RAG가 자주 실패하는 지점은 검색이 아니라 청킹입니다. 답이 두 청크에 걸쳐 있으면 못 찾습니다.
  9. EP.092026년 10월 2일 · 5분

    에이전트 관측성: 안 보이면 못 고친다는 원칙은 LLM 호출에도 그대로였다

    에이전트가 왜 그렇게 답했는지 되짚을 수 없어 매번 추측으로 고쳤습니다. 스팬을 어떻게 나누고 무엇을 남겨야 실패를 재현할 수 있는지 정리했습니다.

    이 편의 결론

    • 에이전트 장애는 재현이 안 되는 게 본질입니다. 그 순간의 입력을 남기지 않으면 영영 모릅니다.
    • 스팬은 요청 → 모델 호출 → 도구 호출 → 판정 네 층으로 나눕니다. 한 덩어리로 두면 어디서 샜는지 안 보입니다.
  10. EP.102026년 10월 4일 · 4분

    작은 모델이 이기는 구간: 모든 요청에 최고 모델을 쓰는 건 설계가 아니다

    관측 지표를 보니 분류와 추출 같은 단순 작업에까지 가장 비싼 모델이 쓰이고 있었습니다. 작업 유형별로 모델을 나누고 라우팅을 붙인 과정을 정리했습니다.

    이 편의 결론

    • 분류·추출·정규화는 소형 모델로 충분했습니다. 여기에 최고 모델을 쓰는 건 낭비입니다.
    • 소형 모델의 이득은 비용만이 아닙니다. 지연이 줄어드는 게 체감상 더 컸습니다.
  11. EP.112026년 10월 7일 · 4분

    AI 코드 리뷰를 쓸 만하게 만들기: 오탐이 많으면 아무도 읽지 않는다

    PR에 자동 리뷰를 붙였더니 처음엔 아무도 읽지 않았습니다. 찾는 단계보다 걸러내는 단계를 붙이고 개수를 제한하자 체감 품질이 달라진 과정을 정리했습니다.

    이 편의 결론

    • 자동 리뷰의 실패는 못 찾아서가 아니라 너무 많이 찾아서였습니다. 오탐이 섞이면 전부 무시됩니다.
    • 해법은 더 좋은 모델이 아니라 찾은 뒤 걸러내는 단계를 붙이는 것이었습니다.
  12. EP.122026년 10월 9일 · 5분

    시즌 1 총정리: 11편을 관통한 원칙은 하나로 모였다

    컨텍스트부터 코드 리뷰까지 11편을 쓰고 나니 같은 문장이 반복되고 있었습니다. AI 엔지니어링 트렌드 시즌 1을 관통한 원칙과 실무 도입 순서를 정리했습니다.

    이 편의 결론

    • 11편을 쓰는 동안 "모델을 바꾸기 전에 주변 구조를 먼저 본다"는 말을 계속 반복하고 있었습니다.
    • 실제로 효과가 컸던 조치는 대부분 모델과 무관한 것이었습니다 — 순서 바꾸기, 개수 줄이기, 검증 단계 붙이기.

시즌 1은 세 단계로 짰습니다

LLM을 붙이는 일은 만들기 전, 만든 뒤, 돌리는 중에 걸리는 문제가 각각 다릅니다. 시즌 1의 12편은 그 세 구간을 순서대로 따라갑니다.

단계회차다루는 것
1부 · 설계EP.01–04컨텍스트 예산, 에이전트 하네스, MCP 연동 비용, 코딩 에이전트 선택 기준
2부 · 검증과 비용EP.05–08LLM 회귀 테스트, 구조화 출력의 보장 범위, 프롬프트 캐싱, RAG를 쓰지 않을 기준
3부 · 운영EP.09–12에이전트 관측성, 작은 모델 라우팅, AI 코드 리뷰 자동화, 시즌 정리

1부는 무엇을 넣고 무엇을 쥐어줄 것인가입니다. 여기서 정한 것이 뒤의 선택을 전부 제약합니다.

2부는 그 결과를 믿을 수 있는가, 그리고 얼마에 얻는가입니다. 데모와 서비스가 갈리는 지점이 대체로 여기였습니다.

3부는 돌아가는 동안 무엇을 보고 있는가입니다. 안 보이면 못 고친다는 원칙은 LLM 호출에도 그대로였습니다.

이런 문제를 겪고 있다면 맞습니다

  • 프롬프트를 아무리 다듬어도 답변 품질이 들쭉날쭉한데 원인을 못 찾은 경우
  • 도구를 늘렸더니 에이전트가 오히려 엉뚱한 것을 고르기 시작한 경우
  • LLM 호출 비용이 예상을 넘었는데 어디를 깎아야 할지 모르겠는 경우
  • 데모는 돌아가는데 운영에 올릴 자신이 없는 경우

반대로 모델 아키텍처나 파인튜닝은 다루지 않습니다. 이 연재는 기존 서비스에 LLM을 붙이는 서버 개발자의 관점으로만 씁니다. 예제는 주로 Spring Boot와 Java 기준이지만, 판단 기준 자체는 스택과 상관없이 쓸 수 있게 정리했습니다.

쓰는 방식

  • 해본 것만 씁니다. 직접 붙여보고 관찰한 것만 쓰고, 안 해본 것은 안 해봤다고 적습니다.
  • 숫자는 제 환경 기준입니다. 일반적인 수치로 읽지 말아 주세요. 대신 어떤 조건에서 쟀는지를 같이 적습니다.
  • 결론을 앞에 둡니다. 매 편 맨 위 네 줄 요약에 그 편의 결론이 다 들어 있습니다. 위 목차에 붙은 한두 줄도 거기서 가져온 것입니다.

함께 읽으면 좋은 글

시즌 1의 출발점이 된 작업 기록들입니다. 연재를 읽기 전에 훑어두면 배경이 이어집니다.

다른 연재는 시리즈 목록에서 볼 수 있습니다.