[AI] Claude Code

cup-wan·2025년 9월 14일
2
post-thumbnail

Intro

AI를 바라보는 느낌이 딱 이 움짤 같습니다. 취업이 힘들어지긴 했는데 이 자식 없이 어떻게 살았을까 하는 생각이 싸악 올라옵니다. 강력한 선배 개발자들의 피땀노력이 전부 인터넷에 오픈된 덕분에 지식을 흡수한 AI만 활용해도 어느정도 그럴듯한 개발이 가능해졌습니다.
물론 내부가 어떻게 돌아가는지 확인하고 성능 이슈를 피하기 위해서는 여전히 개발자가 필요하지만 언젠간 이것도...AI가 다 하는 세상이 오지 않을까 싶습니다.
서론이 길었지만 이미 맞이한 AI 시대, 개발자는 그럼 어떻게 살아가야 하는지 Claude CLI를 활용하는 바이브 코딩에 대해 알아볼까 합니다.

1. 사용 이유 & 후기

저의 후기는 아니고 다른 분들의 후기입니다. 각자 느끼는 장단점이 거의 비슷합니다. 긍/부정이 갈린 것이지 장단점은 다 똑같다는 뜻입니다.

왜?

근본적인 이야기라 생각한다. 모든 공학도들은 "만들기"를 "효율적"으로 하는 것을 좋아한다. 원래 토목을 전공했으니 비유를 해보자면 콘크리트는 미친 튼튼함을 미친 효율로 만드는 건설 자재라 사용한다. 별 조합을 해보면서 가장 효율적인 방법을 찾았고 그것이 토목 공학이다. 컴퓨터공학도 마찬가지라 생각한다.

즉 효율성이 핵심입니다. 개발자들은 반복 구현, 스타일 맞추기 (컨벤션) 등에 시간을 많이 소요했었는데 이제 AI가 이 과정을 자동화 해주기 때문에 사용합니다.

AI는 코드를 대신 써주는 보조 도구로 사용했었지만 이젠 기업 또는 개발자 개인이 가진 취향, 원칙, 제약도 코드에 반영해줍니다.
EX)

  • Service 계층은 비즈니스 로직만 구현
  • Entity에 Setter 금지
  • Log에 개인정보 금지

이런 규칙은 문서로만 기록되거나 코드 리뷰에서 계속 언급되지만 실제 작성 단계에서는 AI가 자동으로 반영하지 못했습니다. 하지만 바이브 코딩의 등장으로 이 보이지 않는 원칙을 AI 프롬프트와 명령으로 고정할 수 있게 되었습니다.

장단점

장점

  • 개발 접근성 향상 및 민주화
    • 구글 프로젝트할 때도 '데이터 민주화' 라는 단어를 사용했는데 AI를 통해 모두가 쉽게 개발에 접근할 수 있게됨을 극단적으로 표현하기엔 이만한 단어가 없는 것 같습니다.
    • 프로토타이핑이 압도적입니다. 프론트 프로토타입을 몇 분안에 구현할 수 있게 됐습니다.
  • 효율성 + 생산성
    • 자연어로 작업 지시, 개발자가 부족한 스타트업 같은 환경에서 압도적인 효율을 보입니다.
    • 대규모 코드 생성
      Cursor가 하루에 거의 10억줄의 코드를 생성한다고합니다.
    • 개발자가 프로그래밍보다는 "설계자" 역할에 가까워졌습니다.

단점

  • 보안 취약성 + 유지보수
    • 기술 부채가 쌓이면 결국 개발자가 모든 코드를 살펴봐야합니다.
    • 검증되지 않은 코드를 그대로 사용 시 보안상 문제가 발생할 수 있습니다.
  • 기반 역량 저하
    • 쉽게 접근할 수 있게된 만큼 필연적으로 기초 지식이 부족해졌습니다.
    • 코드 작동 흐름을 제대로 파악하는 엔트리가 눈에 띄게 줄었습니다.
  • 프로덕션 환경 부적합
    • 개인용 프로젝트엔 적합하나 기업 프로젝트에 적용하기엔 무리가 있습니다.
    • LLM의 비예측성 특성으로 인해 구조적 이해가 부족하면 디버깅이나 확장 시 제어가 어렵습니다.

꽤나 명확한 한계에도 불구하고 여러 기업에서 개발자 목을 치고 사용하는 것엔 너무 압도적인 효율에 있다 생각합니다. 이젠 바이브 코딩에 가장 많이 사용하고 있는 Claude Code (CLI)에 대해 알아보겠습니다.

2. Claude Code

현황

SWE-bench에 따르면 현재 Claude 4 Opus의 성능이 LLM Model들 중 1위라고 합니다. 실제로 현업에 계신 분들에게도 물어보니 주로 개발을 하면서는 Claude, Cursor, Gemini CLI를 더 자주 사용하신다고 합니다.

사용 방법

Anthropic 공식 홈페이지에 잘 설명되어 있습니다.
Node.js 18 혹은 그 이상 버전이 설치되어 있다면 아래 명령어로 바로 사용 가능합니다.

# Install Claude Code
npm install -g @anthropic-ai/claude-code

# Navigate to your project
cd your-awesome-project

# Start coding with Claude
claude
# You'll be prompted to log in on first use

# 참고
# 정상 설치 확인
claude doctor

# 업데이트
claude update

이후 터미널에 claude 입력 시

이렇게 정상 실행되시고 설정 진행해주시면 끝입니다.

세션 기능

Claude CLI는 한번 실행하고 끝나는 것이 아니라 세션을 이어갈 수 있는 기능을 제공합니다.
EX) 프로젝트의 맥락을 학습시킨 뒤 대화 이어나가기

# 새로운 세션 시작
claude "이 프로젝트의 빌드 구조를 요약해줘."

# 이어서 같은 세션 사용
claude -r "<세션ID>" "Service 계층의 테스트 전략도 알려줘."

이런 식으로 사용하시면 매번 같은 프롬프트를 입력하지 않아도 됩니다.

3. 예시

목표와 범위

  • 사용자가 제약(채널, 시간, 등급, 장르, 특집)을 입력하면 LLM이 일간 편성표를 생성해줌
  • 기능 범위
    • 편성 생성 (Form 입력 -> LLM 호출 -> JSON 편성표 반환)
    • 결과 조회, 다운로드 (표 형태로 렌더링, JsON/CSV 저장)
  • 비기능
    • 완전 빠른 프로토타이핑
    • API키 = 환경변수로
    • 로깅 및 프롬프트 추적 (간단하게)

아키텍쳐 개요

  • Frontend : Static HTML + Fetch API (단일 페이지)
  • Backend : SpringBoot 3 이상, Java 17, REST API
    • POST /api/schedule/generate : 제약을 받아 LLM 호출 → 편성표 JSON 응답
    • GET /api/health : 헬스체크
  • LLM Provider: Open AI
    • ENV : LLM_API_KEY, LLM_BASE_URL, LLM_MODEL

프로젝트용 프롬프트

“우리는 Java 17 + Spring Boot 3.3로 REST API를 만들 거야. 목표는 ‘LLM 기반 방송 편성표 생성 API’.
요구사항:

POST /api/schedule/generate: 입력(날짜, 채널 수, 시간대 범위, 장르 분포, 연령등급 제한 등)을 받아 LLM에게 프롬프트→ JSON 편성표 반환

OpenAI 호환 API 호출(환경변수: LLM_API_KEY, LLM_BASE_URL, LLM_MODEL)

DTO, Controller, Service, LLM 클라이언트 계층 분리

프롬프트 템플릿과 시스템 프롬프트를 별도 클래스/리소스로 분리

간단한 HTML 파일로 결과를 호출/표 렌더

Build: Gradle, 패키지명: com.example.scheduler
위 스펙으로 패키지/파일 구조와 최소 동작 코드를 생성해줘.”

이어서: “컨벤션: Entity에 Setter 금지, Service는 비즈니스 로직만, 로그에 개인정보 금지, Response는 불변 DTO, Javadoc 달아줘.”

Outro

어떠셨나요? AI가 지배하는 세상을 어떻게 헤쳐나갈지 감이 좀 오시나요? 저는 아직 오지 않아서 다음 부터는 바이브 코딩으로 뚝딱뚝딱 무엇인가를 만들어보는 글을 작성해보려합니다. 마음 속 짐인 빅분기 필기가 끝나있을 것이기 때문입니다.

-

요즘 채용 시장에 코테가 하나 둘씩 사라지고 있습니다. 조심스럽지만 이젠 정말 코딩 실력보단 설계 능력이나 AI를 기깔나게 패서 올바른 방향성을 제시하는 능력이 더 중요하다 보는 것이 아닌가 싶습니다.
아아~ 열심히? 공부했는데 이미 AI가 다 알고있고 나보다 더 자세히 알고 실수도 나보다 적은 이 세상 어쩌면 좋지.

-

주절주절했지만 결국 활용은 인간이 하는 것 아니겠습니까? 시대가 변했으면 적응하면 될 일. 다음엔 뚝딱 만들어서 그 과정을 잘 정리해보겠습니다.

profile
아무것도 안해서 유죄 판결 받음

0개의 댓글