초급
Claude Code는 코딩 도우미가 아니다. 그것은 운영체제다
Claude Code는 코딩 도우미가 아니다. 그것은 운영체제다
대부분의 사람들은 Claude Code를 잘못 사용하고 있다.
미묘한 방식이 아니다. 마치 누군가가 슈퍼컴퓨터로 지뢰찾기를 하는 것과 같은 방식이다. 성능은 충분하다. 아키텍처도 갖춰져 있다. 하지만 사고 방식이 잘못되었다.
사람들은 Claude Code를 AI가 탑재된 똑똑한 터미널처럼 취급한다.
이러한 가정 하나만으로 실제로 가능한 것의 범위가 엄청나게 제한된다.
이 글은 그 사고 방식을 바꾸는 것에 관한 것이다.
Claude Code를 대화형 도구가 아닌 프로그래밍 가능한 시스템으로 보는 순간, 모든 것이 달라진다. 묻는 질문이 바뀌고, 설계하는 워크플로우가 바뀌며, 가장 중요한 것은 출력의 신뢰성이 극적으로 향상된다.
이것은 튜토리얼이 아니다. 이것은 관점의 전환이다.
LLM을 진지하게 사용해본 적이 있다면, 이런 경험을 해봤을 것이다.
정확한 기술적 질문을 한다. 함수 시그니처, 라이브러리 메서드, 매개변수 세부 사항 같은 것들.
모델은 즉시 응답한다. 자신감 넘치고, 깔끔하고, 체계적으로.
그리고 완전히 틀렸다.
약간 빗나간 것이 아니라 — 지어낸 것이다.
이것은 버그가 아니다. 이것이 LLM이 작동하는 방식이다.
모델은 진실을 검색하지 않는다. 통계적으로 가장 그럴듯한 답변을 생성한다. 그리고 그럴듯함이 정확함과 같지 않을 때, 환각 현상이 발생한다.
순진한 해결책은 모든 것을 수동으로 검증하는 것이다. 하지만 그렇게 되면 목적이 무의미해진다.
진정한 해결책은 아키텍처에 있다.
더 나은 프롬프트로 환각을 고칠 수 없다. 모델이 절대 최종 권위자가 되지 않도록, 검증이 선택이 아닌 필수가 되도록 시스템을 구축함으로써 고쳐야 한다.
이것이 바로 Claude Code가 가능하게 하는 것이다. 그리고 거의 아무도 그렇게 사용하지 않고 있다.
내가 Claude Code를 운영체제라고 말할 때, 그것은 구조적인 의미다.
운영체제는 자원을 관리하고, 권한을 적용하며, 상태를 유지하고, 프로세스를 연결하며, 외부 시스템과 인터페이스한다. Claude Code에는 이에 직접적으로 대응하는 요소들이 있다.
커널은
CLAUDE.md다. 다른 모든 것이 실행되기 전에 기본 동작을 정의하는 파일이다.영구 저장소는 메모리 디렉토리다. 세션을 넘어 지식이 생존하는 장소다.
스킬은 공유 라이브러리다. 한 번에 모두 로드되지 않고, 관련될 때만 로드된다.
에이전트는 프로세스다. 고유한 컨텍스트, 도구, 책임을 가진 특화된 단위다.
보안 규칙은 권한 계층을 형성한다. 시스템이 할 수 있는 것과 할 수 없는 것에 대한 명시적인 제어다.
MCP 서버는 드라이버 역할을 한다. Claude를 문서, 저장소, 외부 시스템에 연결한다.
이것은 해킹이 아니다. 이것이 아키텍처다.
대부분의 사람들이 그것을 완전히 활용하지 못하고 있을 뿐이다.
커널은 모든 것이 시작되는 곳이다.
대부분은
CLAUDE.md를 환경 설정 파일처럼 취급한다. 하지만 그렇지 않다. 그것은 제어 계층이다.진정한 커널은 실행 전에 동작을 강제한다.
거기서 정의할 수 있는 가장 중요한 것은 환각 방지 프로토콜이다.
기술적인 질문에 답변하기 전에, 시스템은 문서를 확인하고, 최신 정보를 검색하거나, 관련 파일을 읽어야 한다. 만약 무언가를 검증할 수 없다면, 명시적으로 그렇게 말해야 한다.
그리고 마찬가지로 중요한 것은, 세부 사항을 지어내거나, 동작을 추정하거나, 불확실한 사실에 대해 자신감 있게 응답해서는 안 된다는 것이다.
이것을 신뢰 수준과 결합하라.
HIGH는 검증된 정보, MEDIUM은 가능성은 높지만 확인되지 않은 정보, LOW는 불확실한 정보, UNKNOWN은 명시적인 무지를 위한 것이다.이렇게 하면 응답이 옳아 보이는 것에서 실제로 신뢰할 수 있는 것으로 변환된다.
다음은 메모리다.
LLM은 세션 사이의 모든 것을 잊어버린다. 이것은 결함이 아니다. 그것이 설계 방식이다.
메모리 디렉토리는 이를 우회하는 방법이다.
하지만 규율이 필요하다.
확인된 패턴, 반복되는 솔루션, 안정적인 워크플로우, 중요한 구조적 결정을 저장해야 한다. 추측, 일회성 아이디어, 테스트되지 않은 것은 저장하지 말아야 한다.
이 구분은 중요하다.
컨텍스트는 일시적이다. 메모리는 영구적이다.
하나는 RAM이고, 다른 하나는 저장소다.
대부분의 설정은 컨텍스트에만 의존한다. 그래서 시간이 지나도 개선되지 않는 것이다.
스킬은 다음 계층이다.
스킬은 단순한 프롬프트가 아니다. 관련될 때 활성화되는 구조화된 행동 모듈이다.
스킬에 가장 효과적인 패턴은 5단계 프로세스다: 평가, 분석, 계획, 실행, 검증.
이것이 중요한 이유는 LLM이 기본적으로 실행을 지향하기 때문이다. 이해하기 전에 해결하려고 한다.
스킬은 행동하기 전에 생각하도록 강제한다.
에이전트는 이것을 한 단계 더 발전시킨다.
하나의 범용 어시스턴트 대신, 각각 고유한 역할, 도구, 경계를 가진 특화된 단위를 만든다.
이것은 실제 시스템이 작동하는 방식을 반영한다.
어시스턴트는 모든 것을 한다. 부서는 한 가지 일을 잘한다.
보안, 연구, 코딩, 아키텍처. 각각 다른 에이전트가 처리한다.
그리고 여러 에이전트가 함께 작업할 때, 품질은 크게 향상된다.
다양한 관점은 사각지대를 줄인다. 구조화된 비교는 더 나은 결정을 만든다.
다음은 보안이다.
이것은 대부분의 시스템이 위험할 정도로 취약한 부분이다.
기본 접근 방식은 암묵적 신뢰다. 문제가 발생하지 않는 한 모델이 무엇이든 하도록 놔두는 것이다.
그것은 전략이 아니다. 그것은 위험이다.
올바른 모델은 제로 트러스트다.
모든 것은 기본적으로 거부된다. 명시적으로 허용된 작업만 허용된다.
명령, 파일 접근, 도구 사용. 모두 통제된다.
그 위에, 런타임 훅이 실행 전에 작업을 검사한다.
위험한 명령은 차단된다. 민감한 데이터는 쓰이지 않도록 방지된다. 포맷팅은 결정론적 도구에 의해 자동으로 처리된다.
이것은 간단하지만 강력한 원칙으로 이어진다.
결정론적 시스템이 더 잘할 수 있는 일을 언어 모델에게 절대 시키지 마라.
마지막으로 MCP 서버다.
이것이 Claude를 실제 세계에 연결하는 것이다.
문서, 저장소, 실시간 데이터.
API 동작을 추측하는 대신, 시스템은 실제 문서를 검색한다.
이것만으로도 환각의 주요 원인이 제거된다.
더 큰 요점은 이것이다.
문제는 모델이 아니다. 문제는 우리가 사용하는 방식이다.
오늘날 대부분의 AI 도구는 인상적인 출력에 최적화되어 있다. 하지만 신뢰성에는 최적화되어 있지 않다.
그리고 실제 시스템에서 중요한 것은 신뢰성이다.
그것은 더 나은 모델만으로는 얻을 수 없다. 더 나은 아키텍처에서 비롯된다.
이것을 이해하는 개발자들은 근본적으로 더 신뢰할 수 있는 시스템을 구축하고 있다. 더 나은 AI를 가지고 있어서가 아니라, 그 주변에 더 나은 제약 조건을 구축했기 때문이다.
우리는 AI 도구가 더 이상 도우미가 아닌 세상으로 나아가고 있다.
그것들은 인프라가 되고 있다.
구성 가능하고, 멀티 에이전트이며, 시스템 수준의 컴포넌트다.
Claude Code는 그 미래의 초기 버전이다.
대부분의 사람들은 여전히 그것을 더 똑똑한 자동 완성처럼 사용하고 있다.
소수는 그것을 프로그래밍 가능한 시스템처럼 사용하기 시작했다.
그 차이는 누적된다.
진정한 기회는 더 나은 답변을 얻는 것이 아니다.
나쁜 답변이 살아남지 못하는 시스템을 구축하는 것이다.
제약 조건을 구축하라. 검증을 구축하라. 메모리를 구축하라. 실행을 통제하라.
모델이 그 약점을 잡아내도록 설계된 시스템 내에서 작동하게 하라.
거기에 진정한 힘이 있다.
그리고 대부분의 사람들은 아직 그것을 건드리지 않았다.