1. Intro
Claude-Code(이하 클로드 코드)는 Anthropic에서 개발한 터미널 기반의 AI 코딩 도우미(에이전트 형 개발도구)입니다. 기존의 개발 환경(IDE 등)을 대체하기보다는, 터미널 환경에서 개발자의 보조자 역할을 하며 코딩 작업을 돕는 도구입니다. 클로드 코드를 활용하게 되면 프로젝트 구조를 이해하며 사용자가 내린 명령을 수행할 수 있습니다. 그러면 좀 더 구체적인 작업을, 원하는 output을 출력할 수 있게 되는 터미널 기반 도우미인 것이죠.
클로드 코드에게 물어본 “주요 기능 및 특징”에 대해 나열해보면 다음과 같습니다.
주요 기능 및 특징
주요 기능
•
자연어 기반 개발: 평서문으로 기능을 설명하면 자동으로 코드 작성
•
코드 디버깅 및 수정: 버그 자동 탐지 및 해결
•
코드베이스 분석: 복잡한 프로젝트 구조 이해 및 탐색
•
자동화: 반복적인 개발 작업 자동화
주요 특징
•
터미널 통합: 별도 채팅창 없이 터미널에서 직접 작업
•
직접 조작: 파일 편집, 명령어 실행, 커밋 생성 가능
•
높은 조합성: 스크립팅 및 자동화 지원
•
기업용 보안: 강력한 보안 및 개인정보 보호 기능
고급 기능
•
로그 모니터링 등 고급 Workflow 지원
•
MCP(Model Context Protocol)를 통한 외부 도구 연동
•
GitHub Actions 통합
•
AWS, GCP 등 다양한 배포 환경 지원
CLAUDE.md
이 밖에도 클로드 코드를 보다 강력하게 만들어주는 CLAUDE.md 파일도 빠질 수 없습니다. 이 파일은 Claude Code가 세션 간 기본 설정과 지시사항을 기억하도록 하는 메모리 구성 파일입니다. 이 파일은 Claude Code가 프로젝트의 Context를 이해하도록 돕는 핵심적인 역할을 합니다. 프로젝트의 루트 디렉토리에 위치하며, 마치 개발 팀의 온보딩 가이드처럼 작동합니다. 이 파일을 통해 Claude Code에게 프로젝트의 특정 정보, 코딩 스타일, 기술 스택, 중요 로직 등을 알려줄 수 있습니다.
CLAUDE.md 파일이 왜 중요할까?
CLAUDE.md 파일은 Claude Code가 단순히 패턴 매칭을 넘어, 프로젝트의 의도를 정확하게 파악하고 문맥에 맞는 제안을 할 수 있도록 돕는 역할을 합니다. 이 파일을 통해 Claude Code는 "이 프로젝트는 이렇게 작동해야 한다"라는 규칙을 학습하고, 개발자가 원하는 방향으로 더 효율적으로 작업할 수 있는 기반을 마련해 줍니다.
CLAUDE.md 예시
# CLAUDE.md
### 프로젝트 개요
이 프로젝트는 Django REST Framework를 사용하여 구축된 백엔드 API입니다. 사용자 인증, 프로필 관리, 포스트 생성 및 조회 기능을 제공합니다.
---
### 기술 스택
- **언어**: Python 3.10+
- **웹 프레임워크**: Django 4.x
- **API 프레임워크**: Django REST Framework
- **데이터베이스**: PostgreSQL
- **패키지 관리**: uv
---
### 코딩 컨벤션
- **PEP 8**: 모든 코드는 PEP 8 스타일 가이드를 준수합니다.
- **네이밍 규칙**:
- 함수와 변수명은 `snake_case`를 사용합니다.
- 클래스명은 `PascalCase`를 사용합니다.
- **주석**: 복잡한 로직이나 비즈니스 규칙에 대해 명확한 주석을 달아주세요.
- **로깅**: `django.utils.log.getLogger`를 사용하여 로그를 기록합니다.
---
### 핵심 로직 및 아키텍처
- **인증**: JWT(JSON Web Tokens) 기반의 토큰 인증을 사용합니다. `rest_framework_simplejwt` 라이브러리를 활용합니다.
- **URL 라우팅**: `routers.DefaultRouter`를 사용하여 ViewSet을 자동으로 라우팅합니다.
- **직렬화**: `ModelSerializer`를 사용하여 모델과 직렬 변환기 간의 관계를 명확하게 유지합니다.
- **권한 관리**: `rest_framework.permissions`의 `IsAuthenticated`와 같은 기본 권한 클래스를 활용하거나, `permissions.py`에 커스텀 권한을 정의하여 사용합니다.
---
### 주의사항
- `settings.py` 파일은 민감한 정보를 포함하므로 직접 수정하는 것을 피하고, 환경 변수(`.env`)를 통해 설정 값을 관리해야 합니다.
- 마이그레이션을 생성하거나 적용할 때는 항상 백업을 고려하세요.
- 모델 필드를 변경할 때는 `makemigrations` 후 `migrate`를 실행해야 합니다.
Markdown
복사
2. AI-Native 개발?
AI 네이티브(AI-Native) 개발은 단순히 앱에 AI 기능을 추가하는 것을 넘어, 인공지능을 개발 프로세스와 제품 아키텍처의 핵심 요소로 통합하는 새로운 접근 방식을 의미합니다.
이는 AI를 단순한 도구가 아닌, 24시간 협업 가능한 동료로 여기는 것에서 시작됩니다. 코드 작성, 리팩토링, 버그 수정 등 개발의 전 과정에서 AI와 지속적으로 소통하며 아이디어를 검증하고 반복적으로 개선해 나갑니다. 이로써 개발 생산성을 극대화하는 것을 목표로 합니다.
또한, AI 네이티브 개발은 AI가 서비스의 중심이 되는 것을 의미하기도 합니다. 개인화된 추천이나 대화형 인터페이스처럼, AI가 사용자 경험의 핵심을 제공하도록 제품을 설계하는 것입니다. 이를 위해 OpenAI의 GPT나 Anthropic의 Claude와 같은 LLM(대형 언어 모델) API를 적극적으로 활용하여 지능형 백엔드를 구축하는 것이 특징입니다.
2.1 AI를 나름 활용했던 개발 (넉두리)
제작년부터 ChatGPT, WRTN 등 무료, 유료 서비스를 활용해서 개발한 경험은 벌써 2년이 넘어가는 것 같습니다. AI 서비스에게 늘 질문하고 답변을 받았었죠.
•
“이렇게 작성하는 게 맞아?”
•
“이런 기능을 작성하려는데 예시를 보여줘”
•
“이 라이브러리를 사용하는 방법을 코드 예제로 알려줘.”
이런 질의응답에서 말도 안 되는 답변을 듣기도 하고, 적절하지 않은 답변 때문에 반복해서 물어보길 반복했습니다. 그럼에도 AI 서비스를 이용하면 조금이나마 안정적으로 여러 코드를 학습/리뷰하며 개발할 수 있었어요. 하지만 생산성은 눈에 띄게 올라가진 않았습니다.
생산성에 직접적인 영향을 준 업데이트는 자동완성이었습니다. jetBrains에서 제공된 intellij, PyCharm을 이용해서 Cursor와 비슷한 자동완성 AI 기능을 활용하여 생산성을 올리는 경험을 했습니다. 하지만 그 역시도 원하는 코드가 바로바로 완성됐을 때의 조건이 붙었습니다. 그게 아니라면 직접 작성하는 것과 크게 다르지 않았습니다.
2.2 AI-Native 개발
Cursor에서 제공하는 기능을 백분 활용하지 않고 자동 완성 기능만 활용하다가, Claude-Code, Gemini-CLI를 활용하여 본격적으로 AI Native 개발에 관심을 갖기 시작했습니다. 제가 하는 작업은 다음과 같습니다.
Flow Chart in Mermaid
1.
어떤 기능을 개발할지 구체적인 요구사항을 정의
2.
요구사항을 기반으로 Claude-Code에게 개발 업무 수행하도록 입력
•
클로드 코드가 API 코드, 테스트 코드 작성
•
작성된 테스트 코드를 이용하여 클로드 코드가 테스트, 에러가 있다면 수정
3.
완료된 Task의 결과물 확인
4.
수정사항이 있다면 다시 1~3을 반복함
5.
6.
수정사항이 있다면 다시 1,2,3,5 Task를 반복함
7.
develop 브랜치에 merge
위의 과정을 쭉 나열해보니 흐름이 그렇게 간단하지만은 않은 것처럼 보입니다. 특히 1번의 구체적인 요구사항 정의의 경우 어떻게 정의하냐에 따라 코드가 잘 작성되기도, 잘못되어 다시 작성하도록 요청하기도 합니다. 하지만 정의가 명확하다면 그만큼 생산성이 높아지게 됩니다.
요구사항 정의 예제
너는 Python DRF를 활용하여 개발하는 시니어 백엔드 엔지니어야. 아래의 요구사항을 보고 API 개발과 테스트 코드 작성하고 문제가 없는지 검토하여 개발한 결과를 보고해줘.
[ 요구사항 ]
* ExternalOrganization을 생성(create)하고 조회(list, retrieve)하고 업데이트(Patch) 하는 API 4개를 개발해줘.
* ExternalOrganizationViewSet 하위에 코드를 추가해줘.
* 테스트 코드를 작성해줘.
* 전체적인 요구사항은 [ 유의사항 ]을 참고해줘.
[ 유의사항 ]
* 테스트 코드는 APITestCase 이용하여 개발해야해.
* 전체 API 기능은
* List API 개발할 때 name, email, status 세 가지에 대해 filterset class가 필요해.
* List API에서는 id, name, email, status, created_at, updated_at을 반환하도록 해야하고, Pagination은 AdminPagination을 적용해줘.
* Retrieve API에서는 모든 필드가 반환되도록 해줘.
* Patch API에서는 name, email, status, secret_key, access_key를 수정하는데 입력받은 값만 수정되도록 기능이 개발돼야 해.
Plain Text
복사
3. Why should i use AI?
3.1 1인 개발/운영 환경에서의 효율성의 극대화를 위해
저는 현재 스타트업에서 혼자 서비스의 개발과 운영 전반을 담당하고 있습니다. 이와 동시게 n8n과 같은 자동화 도구를 도입하여 업무 효율화도 병행해야 했습니다. AI Native 개발을 결정한 이유는 높은 지적 능력과 복잡한 판단이 필요한 핵심 업무들까지 효율화하여 운영의 안정성과 개발 속도를 극대화하기 위함이었습니다. AI는 단순 반복을 넘어, 제가 혼자 감당해야 하는 6가지 고난도 핵심 업무를 처리할 수 있는 '가상의 지적 동료' 역할을 해주었습니다. 물론 아래의 6가지 업무에서도 AI를 적극 활용하고 있습니다.
3.2 홀로 수행하는 6가지 업무
반복 작업 자동화 및 워크플로우 관리
•
이미 n8n 등의 도구를 활용하여 비즈니스 프로세스 및 운영 알림 등 반복되는 작업을 자동화하고 워크플로우를 관리합니다.
•
AI > 현재는 n8n 학습하는 방법의 하나로써 활용하고 있습니다. 자동화 부분에서는 크게 AI를 활용하는 부분이 없습니다.
데이터베이스(DB) 직접 상호작용 업무 처리
•
운영 중 발생하는 복잡한 데이터 조회, 마이그레이션, 정기 유지보수 등을 위해 DB와 직접 상호작용합니다.
•
AI > 필요한 쿼리를 요청하거나, 작성한 쿼리를 검증하는 등의 용도로 AI와 의견을 주고받으며 시간을 효율적으로 사용하고 있습니다.
◦
요구사항을 정의하고 예제 쿼리를 작성하면 원하는 쿼리를 출력
◦
출력된 쿼리를 검토하고 사용
무인 지점 인프라 유지보수 및 대응
•
무인 지점의 미니 서버(Odroid) 유지보수 및 예기치 않은 하드웨어/소프트웨어 이슈에 대한 원격 및 현장 대응을 담당합니다.
•
AI > 지점 서버 세팅 작업을 효율화 하기 위해 AI를 활용하여 서버 세팅 GUI 프로그램을 개발하여 엔지니어 외의 타 부서에서도 업무를 분담할 수 있도록 하였습니다.
Agentic AI 서비스 개발 및 AI 학습 병행
•
핵심 서비스인 Agentic AI의 개발과 필요한 AI 모델의 학습 과정을 동시에 진행합니다.
•
AI > AWS Bedrock 사용방법, AI 개념 등을 학습하거나 질의할 때 도움을 받습니다.
백엔드 서버 개발 및 유지보수
•
Kotlin 및 DRF(Django Rest Framework) 기반의 서버 시스템 신규 개발과 안정적인 유지보수를 수행합니다.
•
AI > Claude-Code, jetBrain Junie 등을 활용하여 AI가 개발한 코드를 검토하고 테스트 후 배포합니다.
클라우드 및 서버 자원 관리
•
AWS 클라우드 서비스 인프라 관리, 비용 최적화, 보안 설정 및 사내 서버 자원 운영을 총괄합니다.
•
AI > 크게 활용하는 부분이 없습니다.
4. 결론
제가 Claude-Code와 Code Rabbit AI를 중심으로 채택한 AI-Native 개발 방식은 단순한 도구 활용을 넘어, AI를 프로젝트의 의도를 이해하고 태스크를 실제로 수행하는 주도적인 개발 파트너로 끌어올린 혁신적인 접근입니다. 이 과정을 통해, 저는 코드를 작성하는 시간을 요구사항을 명확히 정의하는 시간으로 전환할 수 있었습니다. 정의가 명확할수록 AI의 생산성은 기하급수적으로 증가하며, 결과적으로 개발 속도가 극대화되었습니다.
핵심은 다음과 같이 요약할 수 있습니다.
단계 | 목표 | 주요 도구 |
의도 정의 | 구체적인 요구사항 정의 및 **CLAUDE.md**를 통한 프로젝트 Context 학습 | 개발자 (요구사항 명확화), CLAUDE.md (AI 메모리) |
개발 실행 | 요구사항 기반 API 코드 및 테스트 코드 자동 작성/수정 | Claude-Code (터미널 기반 Agent) |
코드 검증 | 작성된 코드의 품질, 버그, 컨벤션 준수 여부 검토 | Code Rabbit AI (Pull Request 기반 코드 리뷰) |
반복 개선 | 오류 및 수정사항 발생 시 AI와의 반복적인 질의응답을 통해 개선 | Claude-Code, 개발자 |
4.1 AI 활용 개발 방식의 체감 장점
AI-Native 개발을 통해 제가 직접적으로 느낀 가장 큰 장점들은 다음과 같습니다.
1.
높은 생산성과 개발 속도:
•
보일러플레이트 코드 제거: ViewSet 정의, Serializer 작성, 기본 CRUD 로직 등 반복적인 코드를 AI가 즉시 작성하여 개발 착수 시간을 획기적으로 줄였습니다.
•
테스트 코드 동시 확보: AI가 API 구현과 함께 테스트 코드를 작성하도록 요구함으로써, 기능 개발과 테스트 검증이 동시에 이루어져 품질 보장 시간을 단축했습니다.
2.
프로젝트 문맥 이해 기반의 정확성:
•
CLAUDE.md의 역할: 이 파일을 통해 AI가 단순히 일반적인 답변이 아닌, '우리 프로젝트'의 코딩 컨벤션, 기술 스택, 핵심 로직을 준수하는 코드를 생성하여 수정 작업이 크게 줄었습니다.
3.
지속적인 품질 관리:
•
Code Rabbit AI 검토: AI가 작성한 코드도 다른 AI에게 리뷰를 받음으로써, 1인 개발 환경에서 부족할 수 있는 객관적인 코드 검토 및 개선 피드백을 확보했습니다.
4.2 AI를 다른 업무로 확장하며 느낀 점
AI를 개발 업무에 성공적으로 통합하면서, 다른 6가지 핵심 업무에서도 AI의 활용 잠재력을 재확인했습니다.
DB 쿼리 작업의 안정화
AI가 필요한 쿼리를 출력하고 검토해주는 과정은 DB 접근 시 발생할 수 있는 휴먼 에러 리스크를 현저히 낮춰줍니다. 단순한 툴이 아니라, 운영 안전성을 확보하는 데 필수적인 지적 가드레일 역할을 합니다.
지점 서버 세팅의 분산
AI를 활용해 개발한 GUI 프로그램은 타 부서에서도 서버 세팅 업무를 분담할 수 있게 하여, 1인 개발자의 업무 영역을 성공적으로 분산시켰습니다. 이는 AI가 업무 자동화를 넘어 조직 내 업무 분담 구조 자체를 개선할 수 있음을 보여주었습니다.
지식 습득 및 개념 정립 가속화
Agentic AI 서비스 개발 과정에서 AWS Bedrock 등의 신기술을 학습할 때, AI는 단순히 정보를 나열하는 것이 아니라 개념을 구조화하고 질의응답을 통해 심화 학습을 돕는 훌륭한 개인 튜터 역할을 했습니다.
4.3 마무리
결론적으로, AI-Native 개발은 1인 개발/운영 환경에서 생기는 모든 지적인 병목 현상을 해결하는 핵심 전략입니다. AI는 단순한 코드 작성 도구를 넘어, 서비스의 안정성과 확장성을 책임지는 저의 가장 강력한 '지적 파트너'가 되었습니다.

