-
Notifications
You must be signed in to change notification settings - Fork 53
[3팀 김준모] Chapter 1-2. AI와 테스트를 활용한 안정적인 기능 개발 #76
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Open
jumoooo
wants to merge
29
commits into
hanghae-plus:main
Choose a base branch
from
jumoooo:main
base: main
Could not load branches
Branch not found: {{ refName }}
Loading
Could not load tags
Nothing to show
Loading
Are you sure you want to change the base?
Some commits from the old base branch may be removed from the timeline,
and old review comments may become outdated.
Conversation
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
과제 체크포인트
필수 스펙
반복 유형 선택
반복 일정 표시
반복 종료
반복 일정 수정
반복 일정 삭제
기본 과제
공통 제출
기본 과제(Easy)
기본 과제(Hard)
심화 과제
과제 셀프회고
오늘의 작업 한 일
기타
Cursor를 통해 AI 에이전트 작업을 진행했습니다.
셋업 과정에서 MCP에 대한 이론을 다시 공부하며 적용했습니다.
에이전트 작업에서 BMAD 내용을 분석하며 GPT의 도움으로 기본적인 AI Agent의 틀을 갖추었고, 세부적인 내용은 Cursor의 분석을 토대로 평가하면서 추가했습니다.
작업중 Cursor 의 한도가 와서 Gemini CLI 2.5 Pro 로 셋업하여 AI Agent 문서 작업을 진행 하였습니다.
생각보다 Gemini 가 느리더군요… 서버 에러(503)도 자주 났습니다. 그리고 다른 분들도 하루치 토큰 다쓰시면 Gemini CLI 쓰시면 좋을거 같아서 노션에 해당 내용을 정리한 후 항해99 디스코드방에 공유 하였습니다.
테스트 코드 이전에 import, type 오류 및 사용하지 않는 함수 선언 등 컴파일 오류가 발생했습니다.
이를 방지하기 위해 테스트 코드 실행 전에 컴파일 오류가 없도록 Rule을 추가했습니다..
경로 설정 문제로 작업 시작 시 먼저 ‘프로젝트 구조 분석 산출물’을 생성하도록 했습니다.
(2025-10-28_project_structure_v1.0.md) 해당 문서를 참조 하도록 하여 추가적인 프로젝트 분석이 필요 없게 되었습니다.
에이전트 간 정보 공유는 문서로 전달하도록 개선했습니다.
에이전트별 점수 체계를 만들어 진도 확인 및 부적합 시 이전 에이전트에게 재작업을 요청하도록 했습니다.
이를 통해 에이전트가 망각하지 않고 체계적으로 작업을 수행하기 시작했습니다.
기존 로직을 고장낼 수 있는 파일 수정 문제를 발견하여 특정 파일, 폴더, 함수 접근을 제한했습니다.
작성한 코드는 ‘Ai edit’ 주석을 달아 추후 관리 및 다른 작성자의 이해를 돕도록 했습니다.
오늘 작업을 하면서 이번 과제의 목표를 세웠습니다.
스스로 코드를 작성하지 않고 AI를 통해 90% 이상 작업하며, 토큰 사용량을 최소화하는 것입니다.
그러기 위해서 내일 오전을 투자해서 좀더 AI Agent 를 다듬어야 겠습니다.
오늘 작업 한 일
기타
대략적인 과제 진행 프로세스가 생긴거 같습니다.
AI 가 프로젝트 파악 시 내부 오류가 발생하여 재작업이 필요했습니다.
파일 규모가 큰 경우 파일 5개 단위씩 진행하도록 Rule을 추가하여 오류가 사라졌습니다.
프로젝트 기반의 문서인 AI 에이전트, 프롬프트 생성할 때는 Gemini CLI 를 사용하여 Cursor 사용율을 줄였습니다.
과제의 커밋별 작업 내용을 오늘 알았습니다...
커밋할 단위를 선정해야 했습니다. 각 에이전트 작업에 진행하면 커밋의 빈도가 너무 많고, 그렇다고 스텝별로 하면 롤백 및 추적이 어려워 져서 고민입니다. 고민 끝에 결론은 에이전트의 작업이 마치면 커밋 하는 것으로 정했습니다.
반복 일정 기능의 이상을 확인했습니다.
주기적이지 않고 듬성 듬성 일정이 생겼습니다. 최근 본 유튜브 영상중에 클로드 사용 횟수 세계 1등인 분이 말씀하시길 사용하는 사람의 테크 지식과 프로세스에 대한 이해가 높을수록 좋다는 말을 했습니다.
개인의 지식이 는다 -> 요청을 더 잘한다
라는 생각으로 요청사항이 더 정밀하면 정확하고 균일한 결과가 나올 것이라고 생각에 도달 했습니다.
그래서 '기능 요청 문서' (feature_request.md) 에서 요청 사항을 상세히 적고, 여러가지 예제를 추가해 줬습니다. 그렇게 했더니 기능 관련 문제는 많이 줄어 들었습니다.
작업중 작업물이 일정하게 안나오고, 가끔 산출물 미생성등 잔 오류들이 있는것을 확인 했습니다.
그래서 우선순위를 만들어야 겠다고 생각했고, 거기서 프로젝트 안의 내부 Rule 보다 외부 입력 프롬프트가 더 높은 우선도를 가진다는걸 확인 했습니다. 그래서 강조해야 하거나 꼭 기억해야 하는 것들을 프롬프트에 작성 하였습니다.
오늘 작업 한 일
기타
MCP 가 적용이 안되고 있는 점을 확인 했습니다.
지금까지 해골물을 드링킹 하고 있었다는 생각에 자괴감이 듭니다.
Context7와 Sequential Thinking를 참조하도록 Rule을 추가했으며, 이후 처리 속도는 절반으로 줄고 산출물 질이 크게 향상되었습니다.
AI 가 통합 테스트에서 MUI 관련 오류로 재작업을 계속하는 이슈가 있었습니다.
저도 이전 1주차 과제에서 MUI Select 로 고생 많이 했는데 AI 도 그러니 동질감이 느껴지는건... 아니고 처리방법을 생각해보았고,
기존에 있던 코드와 구조를 먼저 참고하라는 Rule을 추가 했습니다. 추가 후 통합 테스트의 시간이 많이 줄었고 재작업 횟수가 최대 1번으로 줄었습니다.
시작 프롬프트를 파일로 추가하여 실행해 봤습니다.
과연 외부 입력 프롬프트로 줬을때와 내부지만 첫 시작으로 가져오는 프롬프트는 어느정도의 차이가 있을지 궁금 했습니다.
확인해보니 기본적으로는 비슷하게 작동하나. 직접 외부에서 작성한 프롬프트가 더 명확히 Rule 을 잘 지키는걸 확인 할 수 있었습니다.
흥미로운 사실이였지만 지켜지지 않은 Rule 은 다시 참고 하도록 수정 했습니다.
달력 수정 시 에러 알람이 발생했습니다.
테스트 코드는 전부 통과 했는데 말이죠...
확인해보니 server.js 를 참고 하지 않고 그동안 로직을 짜왔던 겁니다. 그래서 새로운 Api 주소로 데이터를 보내 에러가 나고 있었습니다. 테스트 코드는 거기서도 Api 함수를 만들어서 사용중이니 오류가 안났던 겁니다!
하지만 실전에서 해봤을 떄는 server.js 에 수정을 하지 않았으니 문제가 지금에서야 발생한 거였죠. 바로 수정에 들어갔습니다.
찾아보니 'src/' 내부에 있는 로직만 분석 하고 있었습니다...
그래서 해당 로직을 수정해주고 AI 토큰을 거의다 사용하여 이부분은 전체 AI 재작업이 아닌 특정 부분만 수정 하였습니다.
이후 정상적으로 잘 작동 되었습니다.
git 메세지 인코딩 문제로 깨지는 현상을 마지막에 발견했습니다.
이제 모든 테스트를 마치고 main 브랜치로 머지 하려고 하는데 텍스트가 깨져있는걸 확인했습니다.
사전에 인코딩 설정은 안한게 문제였습니다...
그래서 일단 인코딩 설정을 하고 push 를 했는데 적용 없이 깨진 상태로 git 에 올라가 버렸습니다...
결국 커밋 메시지를 다시 인코딩 하여 덮어 씌웠습니다.
제가 git에 익숙하지 않은 문제로 발생했던 사건이였습니다. PR 을 빨리 내고 금요일에 git 짧은 강의 하나라도 들어야겠습니다.
기술적 성장
코드 품질
코드 외의 작성된 프롬프트, Rule 를 보자면 이것 또한 만족스럽습니다.
서로가 서로를 견제하는 AI Agent 를 구현하려고 했습니다.
최대한 같은 프롬프트를 반복적으로 줘도 같은 결과물이 나오고자 했는데 반복 사용 시 유사한 결과물이 안정적으로 나왔습니다.
학습 효과 분석
기존에는 GPT, Gemini 정도를 검색 엔진으로 사용했었습니다.
그전까지는 AI 에게 일자리를 뺏기니 뭐니 해서 좀 경계했지만 이번에 사용해 봄으로 인해 공부하지 않으면 적이고 공부하면 도구이구나를 깨달았습니다.
이번 과제로 AI에 흥미가 생겨 n8n 이라는 것도 있던데 나중에 공부해서 사용해 볼 예정입니다.
과제 피드백
기존 회사에서 SCM 솔루션을 혼자 담당하며 기획부터 배포까지 진행했던 경험이 기억나서 더 재밌게 했던것 같습니다.
공장의 flow 별 프로세스 정립 느낌이라 AI 는 처음인데 왜 익숙한가 생각 했는데 그때의 경험이 도움이 되었던거 같습니다.
리뷰 받고 싶은 내용
현재 프로젝트에 AI 에이전트가 BMAD에 따라 'analyst', 'architect', 'dev', 'orchestrator', 'pm', 'qa', 'scrum-master' 이렇게 있는데 추가로 만들면 좋은 AI 에이전트가 뭐가 있는지 궁금합니다.
현재 AI 에이전트가 만들어준 산출물들이(mockdowns 폴더) 현업에서 사용할 만한 수준인지, 현업에서는 산출물을 어떤 템플릿으로 쓰고 있는지 궁금 합니다.
에이전트 간의 호출 구조에는 모든 에이전트가 서로를 자유롭게 호출하는 평등 구조와, Orchestrator 에이전트만 다른 에이전트를 호출할 수 있는 구조가 있습니다. 두 구조 중 어느 쪽이 더 효율적인지 궁금하며, 또한 현업에서는 일반적으로 어떤 구조를 선택하여 사용하는지도 알고 싶습니다.
에이전트의 수가 많아질수록 효율이 얼마나 향상되는지, 혹은 일정 수 이상이 되면 오히려 효율이 떨어지는지 궁금합니다. 또한 많은 에이전트를 사용하는 상황에서 에이전트 수를 줄이면서 통합할 때의 전략도 알고 싶습니다. 이러한 경우, 에이전트를 어떻게 합치는 것이 가장 효율적인지에 대한 방법이 궁금합니다.
제가 작성한 .cursorules 의 규칙에서 추가할 만한 규칙이 있는지 궁금합니다.