Amazon Q를 이용한 나만의 개발팀 만들기
요새 정말 많은 분들이 AI를 이용한 여러가지 기능을 많이 사용하고 계십니다.
저도 AI기술이 자고 일어날때 마다 계속 새로 생기거나 바뀌거나 하는 일이 많아
요샌 따라가기 정말 벅차다는 느낌이 많이 납니다.
최근에 혼자서 일하면서 아무리 AI를 쓰더라도 혼자서 하기엔 역시 쉽지 않다는 것을 많이 느끼고 있습니다.
그런데 요즘 점점 multi agent AI를 이용해서 팀을 만들어서 혼자 다양한 팀을 만들어서 쓰는 것을 많이 경험하고 있습니다.
혼자서 계속 작업을 어찌어찌하고 있었지만,
이젠 이것저것 더 할게 많이 생겨서 그런지 이번에 한번 해보기로 했습니다.
LLM에 질문할땐 역할을 정하더라도 하나의 Agent에게만 물어봐야 하는 구조기 때문에
효율적인 질문 퀄리티를 기대하기 어렵습니다.
하지만 Multi Agent기능을 통하면 여러 역할을 지정하여
각자가 답변을 잘할 수 있는 영역을 전문적으로 답변해줄수 있고
협업을 할 수 있다는 점이 정말 큰 장점이 아닐까 합니다.
뭐 디지털이긴 하지만 그래도 여러 명에게 답변 받고 답변도 빠른데 협업까지 하는 사람 냄새나는 느낌이지 않나 싶었어요.
Claude Code라던지 cursor라던지 여러 곳곳에서 비슷한 기능들이 나오고 있지만, 전 Amazon Q Developer를 유료로 쓰고 있기 때문에 하는 김에 Amazon Q로 해봤습니다.
역시 Amazon Q라고 안될리는 없겠죠?
(사실 Kiro로 해보고 싶었는데 월 50개 Limit을 초과해버렸습니...)
찾아보니 공식문서에 가이드가 있었습니다.
agent를 생성할 수 있다는 방법이 있었군요!
사용자 지정 에이전트 정의 - Amazon Q Developer
이 페이지에 작업이 필요하다는 점을 알려 주셔서 감사합니다. 실망시켜 드려 죄송합니다. 잠깐 시간을 내어 설명서를 향상시킬 수 있는 방법에 대해 말씀해 주십시오.
docs.aws.amazon.com
필요한 팀원
- 기획자 1명
- 풀스택 개발자 1명
- 클라우드 엔지니어 1명
- QA Engineer 1명
- Code Reviewer 1명 (나중에 추가 됨)
* 이미 진행된 작업의 경우 어느정도 코드량에 따라 다르지만 대체적으로는 수동으로 적용해주기 어려운 부분이 있어서
꼬일 위험이 항시 있습니다.
* 반드시 적용 전에 생성된 참조문서를 꼼꼼히 읽어보시고 이상한 부분이 있는지 없는지 꼭 두번 이상 확인해보세요!
* 작업한 전체 프롬프트는 아래 참조
Amazon Q에게 다음과 같이 질문해보았습니다.
이제 추가하고 싶은 기능을 기획자한테 이야기 해보는겁니다!
물론 전 지금 이작업을 지금 바로 하려는 것은 아니고, 먼저 기존의 프로젝트에 대한 코드 분석을 먼저 해야했습니다. 원래 하던 프로젝트였기 때문에 이대로 그대로 돌렸다간 당연히 context가 꼬이거나 하는 문제로 역할간의 제대로 된 소통이 안될 것이 뻔했기 때문입니다.
당연히 회사에서도 마찬가지죠?
Documenting은 많이 하면 많이 할수록 더 좋습니다.
없는 곳이 많은데 많은 것도 문제지만 없는 거보단 낫습니다.
(구전식의 업무는 질색입니다.)
자! 이제 인프라 엔지니어 차례죠!
이참에 코드리뷰 Agent까지 추가해볼까요?
Kiro와 Q로 만든 코드들이 지금 상태가 어떤지 한번 코드 리뷰해볼까요?
이거 돌리고 나니 못 보던게 생겼습니다!
이제 QA 담당자가 일 할 차례군요.
진행한 프롬프트
q를 이용해서 팀을 구성하는 것처럼 만들어서 쓰려고 해.
8년차의 교육 서비스 기획자, 10년차의 웹 개발 풀스택 개발자, 7년차의
클라우드 인프라 엔지니어(aws), 10년차의 QA Engineer이며 자격증 시험 교육 어플리케이션을 만들고 있어.
q의 agent기능을 이용해서 위에 지정된 여러가지 롤을 만들고 작업이 완료되었다고 확인될때마다 여러 순서를 거쳐서 기능이 구현될 가능성, 테스트 또는 아이디어를 순차적으로 받을 수 있어야겠네요.
q agent를 각각 맞게 추가하여 q chat에서 사용할 수 있을까요?
---
좋습니다. 순차적으로 실행할 수 있도록 rules를 추가하여 계속 해당 내용대로 실행할 수 있도록 지침을 업데이트 하세요.
---
@education-planner 사용자의 학습했던 진도를 보기위한 달력 추가 (front & backend)
---
@fullstack-developer 문서를 보며 기획자들이 현재까지 기능된 구현을 파악할 수 있는 문서를 .gitignore에 들어있는 폴더를 제외한 나머지 폴더들을 확인하며 모두 읽고 api, 파일구조 및 역할을 모두 정리하여 기획자 참고용 문서를 만드세요.
---
@fullstack-developer 개발자도 참고하기 위한 정확한 파일별 구조까지 그려서 정리하세요. backend, frontend 폴더 모두 디테일하게 파일 내용까지 모두 정리하세요. tree구조를 써서 명확하게 정리하세요. 그리고 mermaid같은 구조도 포함하여 다른 사람도 명확하게 이해할 수 있도록 만드세요.
---
@education-planner 이제 서비스를 만들기 위한 기획서를 다른 agent들이 모두 알고 참조에 활용할 수 있도록 정리하세요.
---
@education-planner 아니 지금까지 구현한 내역에 대한 모든 기능에 대한 기획서를 이야기 하는거야. 다시 문서홯해서 목표라던지 현재 구현된 기능, 예정사항까지 다 포함해서 해야겠지?
---
@educate-planner 어라 기획서 md 문서로 저장해주는거 아니었나요?
---
@cloud-engineer AWS 아키텍쳐로 현재 구현된 현재 DB 구성, 아키텍쳐 구조, 서비스 연결도를 모두 찾아서 문서로 정리하세요. 언제든지 찾아서 트러블슈팅에 활용할 수 있도록 대비하세요. 현재 route 53, acm, alb, ecs, fargate, dynamodb, s3, cloudfront를 이용하고 있습니다.
---
code-reviewer agent를 추가합니다. qa에게 넘기기 전 10년차 code-review를 거쳐서 고품질의 코드를 유지하기 위한 agent가 되어 주십시오. 코드리뷰 이외에도 코드 리팩토링 등 코드의 유지보수를 전문으로 하고 있습니다.
---
@code-reviewer 현재 백엔드에 생성된 기능중 중복 사용 또는 개선이 필요해 보일 것으로 예상되는 코드들을 찾아서 나열하고 고칠 준비를 해보세요.
---
@qa-engineer 방금 작업된 내용들 테스트 해볼 수 있겠어?
---
아까 코드리팩토링한 것들 지금 서버에 적용된 것들이야? 넣어줘야 하는거지?
---
그럼 적용되었는지 다시 한번 확인해야 될거 같은데 지금 나오는 코드 이슈에서 몇개정도 수정되었는지 갱신하자
---
두시간 정도 구현해서 이것저것 해봤는데 생각지도 못한 효과가 있었습니다.
Q로 그냥 chat 모드로 할때랑 차이는 이렇습니다.
항목 | Q Chat | Q Agent with Context |
질문량 | 다소 많음 | Context를 빠르게 참조하여 더 적고 더 정확한 답변 |
토큰량 | Token 사용량이 많은지 세션이생각보다 빨리 끊어짐 |
Context 기반의 Agent의 결과 파일 저장 후 세션 내 실행가능한 질문량이 늘어남 |
효율성 | Role을 하나만 지정하는 방식 (별도로 수정하지 않으면) | @ 태그를 이용해 여러 Agent에게 직전 답변에 대한 내용을 그대로 상속하여 연속 처리가 가능 |
물론 제가 기존에 rules를 안 써서 더 많이 차이가 나는 부분이 아닐까 싶긴 합니다.
하지만 rules가 아니더라도 기존에 role을 구분하려면 세션을 따로 나눠서 하던지, 수시로 chat에서 role을 바꿔야 하는 문제도 있었고 세션 자체도 공유해서 쓸 수 있는 구조가 아닙니다.
Kiro, Q 모두 세션이 다 찰때가 되면 Summary해서 다음 세션으로 넘기도록 하고있지. 공유가 되지 않습니다.
세션이 차더라도 다음세션으로 넘어가서 쓸 수 있는 방법이 있습니다.
다음 진행 스텝이나 현재 스텝을 파일로 저장하고 저장소처럼 사용해서 처리하면 세션이 넘어다녀도 효율적으로 진행내역을 공유하는 방식으로 처리할 수 있습니다.
물론 이 프로세스가 정확하게 돌아가려면 처음부터 시작하는 프로젝트에 더 어울릴 것 같다는 생각이 들지만, 기존 프로젝트에서도 어느정도 정상적으로 돌아가는 게 확인되었기 때문에 계속 써보려고 합니다.
당연한 이야기지만 배포전 반드시 본인 컴퓨터에서 로컬로는 테스트 해보셔야 합니다.
개발환경이나 스테이징 환경이 갖춰져 있는 경우는 좀 덜하지만, 개발 및 스테이징 환경이 없는 경우 로컬이 개발환경이므로 반드시 로컬에서 꼭 돌려보는 것을 잊으시면 안됩니다.
AI에게 전부 의지하지 말고 마지막까지 꼭 확인하세요!
생각보다 구현이 간단하니 모두들 다들 한번 만들어서 써보세요!