Skip to content

[2팀 권지현] Chapter 1-2. AI와 테스트를 활용한 안정적인 기능 개발 #96

Open
kwonjihyeon-dev wants to merge 47 commits intohanghae-plus:mainfrom
kwonjihyeon-dev:main
Open

[2팀 권지현] Chapter 1-2. AI와 테스트를 활용한 안정적인 기능 개발 #96
kwonjihyeon-dev wants to merge 47 commits intohanghae-plus:mainfrom
kwonjihyeon-dev:main

Conversation

@kwonjihyeon-dev
Copy link

@kwonjihyeon-dev kwonjihyeon-dev commented Oct 31, 2025

과제 체크포인트

필수 스펙

    1. 반복 유형 선택
    • 일정 생성 또는 수정 시 반복 유형을 선택할 수 있다.
    • 반복 유형은 다음과 같다: 매일, 매주, 매월, 매년
      • 31일에 매월을 선택한다면 → 매월 마지막이 아닌, 31일에만 생성하세요.
      • 윤년 29일에 매년을 선택한다면 → 29일에만 생성하세요!
    • 반복일정은 일정 겹침을 고려하지 않는다.
  1. 반복 일정 표시
    • 캘린더 뷰에서 반복 일정을 아이콘을 넣어 구분하여 표시한다.
  2. 반복 종료
    • 반복 종료 조건을 지정할 수 있다.
    • 옵션: 특정 날짜까지
      • 예제 특성상, 2025-12-31까지 최대 일자를 만들어 주세요.
  3. 반복 일정 수정
    1. ‘해당 일정만 수정하시겠어요?’ 라는 텍스트에서 ‘예’라고 누르는 경우 단일 수정
      • 반복일정을 수정하면 단일 일정으로 변경됩니다.
      • 반복일정 아이콘도 사라집니다.
    2. ‘해당 일정만 수정하시겠어요?’ 라는 텍스트에서 ‘아니오’라고 누르는 경우 전체 수정
      • 이 경우 반복 일정은 유지됩니다.
      • 반복일정 아이콘도 유지됩니다.
  4. 반복 일정 삭제
    1. ‘해당 일정만 삭제하시겠어요?’ 라는 텍스트에서 ‘예’라고 누르는 경우 단일 수정
      1. 해당 일정만 삭제합니다.
    2. ‘해당 일정만 삭제하시겠어요?’ 라는 텍스트에서 ‘아니오’라고 누르는 경우 전체 수정
      1. 반복 일정의 모든 일정을 삭제할 수 있다.

기본 과제

공통 제출

  • 테스트를 잘 작성할 수 있는 규칙 명세
  • 명세에 있는 기능을 구현하기 위한 테스트를 모두 작성하고 올바르게 구현했는지
  • 명세에 있는 기능을 모두 올바르게 구현하고 잘 동작하는지

기본 과제(Easy)

  • AI 코드를 잘 작성하기 위해 추가로 작성했던 지침
  • 커밋별 올바르게 단계에 대한 작업
  • AI 도구 활용을 개선하기 위해 노력한 점 PR에 작성

기본 과제(Hard)

  • Agent 구현 명세 문서 또는 코드
  • 커밋별 올바르게 단계에 대한 작업
  • 결과를 올바로 얻기위한 history 또는 log
  • AI 도구 활용을 개선하기 위해 노력한 점 PR에 작성

심화 과제

  • 모든 질문에 대해 꼼꼼하게 정리했는지

과제 셀프회고

기술적 성장

코드 품질

학습 효과 분석

과제 피드백

리뷰 받고 싶은 내용

  1. 디버깅하기 너무 어려웠어요. AI로 하다보니 모든 코드를 다 훑어볼 순 없고, 근데 원하는 대로 구현이 안될 때 어디서부터 손봐야할 지 난감하더라구요. 디버깅 잘하는 방법 있을까요 ㅜㅜ
    반복 일정 전부 수정 시 기존에 만들어진 이벤트에 다 적용이 되어야하는데 안되서 명령을 계속 수정하는데도 쉽지않고, 로직을 파악하기엔 만들어진 코드가 너무 많아서 어디부터 손봐야할지도 난감하구요. 이럴 땐 보통 어떻게 진행하시나요 ? 롤백하기엔 commit 이전 상태에서 변경이 많았어서 되돌리기도 쉽지 않네요
  2. 과제 리뷰랑은 조금 다른 내용이긴 한데, cursor-agent로 orchestrator 호출 시 cursor chat에서 호출하느는 것보다 agent 들이 명세에 작성 흐름대로 동작하는 것 같아 업무 자동화에 적합하다는 생각이 들었는데요, (1번 agent 업무가 끝나면 바로 다음 agent를 호출하고 ..) 터미널 특성상(?) 한글로 파일을 작성하면 인코딩 오류가 나는 경우가 많아서, 바로 잡으려고 온갖 명령어를 넣어봤는데 안되더라구요, 이런 경험 있으신가요 ? 이 부분 때문에 cursor-agent 쓰기가 번거로워서 혹시 해결 방법을 여쭤보고싶습니다.
  3. code refactor Agent에게 리펙토링을 맡기려고할 때 기존에 코드를 구현하는 개발자와 어떤 관점의 차이로 프롬프트를 작성해야할까요 ? 기본적인 룰 제외하고 매번 프롬프트를 다르게 (성능 *초 이내) 하는 것도 애매하고 딱 언급한 부분만 진행할 것 같아서 제한이 생기는 것 같기도하고, ‘리펙토링’이라는 원하는 행동에 크게 영향을 주는 프롬프트가 아닌 것 같습니다. 리펙토링 에이전트는 특히 원하는 방식으로 동작하게 하기가 쉽지 않네요.

AI와 테스트를 활용한 안정적인 기능 개발 리포트

사용하는 도구를 선택한 이유가 있을까요? 각 도구의 특징에 대해 조사해본적이 있나요?

테스트를 기반으로 하는 AI를 통한 기능 개발과 없을 때의 기능개발은 차이가 있었나요?

생산성에서 뛰어난 효과를 체감할 수 있었습니다. 대신 그만큼 보장할 수는 없는 것 같아요. 질문에 따라 구현된 코드의 완성도가 상이하기 때문이기도하고. 그래도 없을 때는 구조 설계하고, 의논하고, 검색하고 그런 시간자체가 없어진 부분에 대해서는 확실히 유용하다고 느꼈습니다.

AI의 응답을 개선하기 위해 추가했던 여러 정보(context)는 무엇인가요?

기본적으로 작업에 있어 인지하고 있으면 좋은 정보들, 목표하는 방향 등을 제시했어요.

  • React, Next.js, TypeScript 사용하고 UI는 MUI로 이미 구현되어있어서 추가 작업할 필요 없다.
  • BMAD(범용 AI 에이전트 프레임워크이고, bmad-code-org github 참고)를 참고해서 AI Agent를 생성 후 업무 자동화가 최종 목적이야.
    개인 프로젝트 규모이고 코드 작성, 문서화, 코드 리펙토링까지가 업무 자동화 목표 범위야

이 context를 잘 활용하게 하기 위해 했던 노력이 있나요?

  • Agent 구성을 위해 claude 에서는 프로젝트를 따로 만들어서 그 프로젝트에서 생성된 채팅들은 기본 프롬프트를 제공했습니다. context제공 뿐 아니라 처음에 agent 를 만들고, 처음 만들어진 Agent.mdc 파일도 업로드해두니 다 같은 형식으로 응답이 와서 편했어요.

생성된 여러 결과는 만족스러웠나요? AI의 응답을 어떤 기준을 갖고 '평가(evaluation)'했나요?

  • 문서를 작성하는 agent는 제가 그 직군이 아니기도 하고, 산출물에서 쉽게 오류를 발견하고 수정할 수 있었는데, 코드를 짜는 agent가 업무를 할수록 제대로 일을 하는 건지 의문이 들 때가 많았습니다. 나름 코드를 짜는 agent들에게는 참고할 수 있는 명세문서, 코드 수정 규칙, 작업 우선 순위 등을 제공했지만 테스트 코드를 짤때는 오히려 제공된 테스트 조건 외의 상황을 고려하지 못하는 건 아닌가 싶어서 아쉬웠습니다.

AI에게 어떻게 질문하는것이 더 나은 결과를 얻을 수 있었나요? 시도했던 여러 경험을 알려주세요.

  • 1차로 가장 처음으로 고려해야할 부분 먼저 제공하고 (일정을 관리할 수 있는 캘린더 어플을 만들거야) → AI 에서 나오는 산출물을 기반으로 보안 부분은 제외해도 돼, 주간/월간은 필요하지만 일간은 필요없어 등등으로 범위를 추려나가는 방식이 효율적이었던 것 같아요.
    그리고 초반에 제공했던 부분을 업무가 어느정도 진행된 뒤에(po → 테스트 작성 → developer) 수정하려면 오히려 공수가 더 많이 들고 오히려 코드에 오류가 더 많이나서 디버깅하는데 시간을 너무 할애하게되더라구요. 다음 스텝으로 넘어가기 전에 사용자의 허락을 받게 했음에도 처음에 나온 산출물을 정확하게 파악하지않고 다음 단계로 넘어가버려서 다시 되돌리기 쉽지않기도 했어요. 확실히 확인하고 넘아가야 원하는 결과를 얻기가 편했어요.

AI에게 지시하는 작업의 범위를 어떻게 잡았나요? 범위를 좁게, 넓게 해보고 결과를 적어주세요. 그리고 내가 생각하는 적절한 단위를 말해보세요.

  • 처음에는 작업 범위를 제공하지 않았더니 (예를 들면 po) 실제로 스프린트 업무에서는 어떻게 할 지, 사업성 여부, 접근성 등 모든 상황을 고려해서 프롬프트가 1000줄이 넘게 나왔고 ai가 작업할 수 있는 선택지도 엄청 다양했습니다. 그래서 필요한 부분만 고려될 수 있도록 (UI와 디자이너는 고려할 필요 없고, 보안이나 배포, 사업성, 스프린트 등은 고려하지말고 테스트 커버리지나 구현에 초점을 맞출 것) 범위를 점점 축소해서 결과물 확인하고 했더니 불필요한 프롬프트나 AI의 선택지도 줄어들었어요.
    그래서 적절한 단위 역시 원하는 프로젝트의 범위가 적절한 단위 아닐까요 ?

동기들에게 공유하고 싶은 좋은 참고자료나 문구가 있었나요? 마음껏 자랑해주세요.

  • 우리는 신입 혹은 히스토리를 모르는 주변 동료들에게는 A-Z까지 당연히 설명해주어야한다고 생각하지만, AI에게는 무의식중에 우리의 히스토리를 다 알고있다고 생각하고 AI를 대한다.

AI가 잘하는 것과 못하는 것에 대해 고민한 적이 있나요? 내가 생각하는 지점에 대해 작성해주세요.

  • AI는 원하는 범위에 대해서 미리 정해주거나, 정보를 제공해주지않으면 모든 가능성이나 정보를 제공하는 경향이 있는 것 같아요. 그래서 AI를 잘 활용하는 방법에 항상 나오는 주제 중 하나가 질문을 어떻게 해야하는 지, 프롬프트를 어떻게 짜야하는 지 등등 인 것 같아요.

마지막으로 느낀점에 대해 적어주세요!

  • 똑똑하지만 멍청한 천재 ,, 와 노는 느낌이었어요.
  • 인간은 절대 따라갈 수 없는 작업 속도는 진짜 개발 생산성을 극도로 높혀주지만 높아진 생산성만큼 신뢰도는 반비례하는 것 같아요. 어떤 기업에서는 AI가 대부분 개발하지만 인간이 이해하지 않은 코드는 단 1줄도 절대 운영으로 배포하지 않는다고 하더라구요. “어디어디 코드 고쳐줘” 가 아닌 이번에 Agent로 업무 자동화를 시켜보니 늘어나는 코드 수 만큼 신뢰도는 떨어지긴 했습니다. (이번 개인적인 경험이었지만 테스트 코드에서 무조건 fail 나고, 테스트 코드를 통과하는데 시간을 엄청 할애해서 더 신뢰도가 떨어진다고 느끼는 것일 수도 있어요.. ) 그렇지만 자동화가 이렇게 편하다는 걸 실감할 수 있었고, 앞으로 업무 효율을 위해서라도 Agent를 자주 쓰지않을까싶습니다.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants