Skip to content

[4팀 정한슬] Chapter 1-2. AI와 테스트를 활용한 안정적인 기능 개발 #99

Open
hanseul524 wants to merge 34 commits intohanghae-plus:mainfrom
hanseul524:main
Open

[4팀 정한슬] Chapter 1-2. AI와 테스트를 활용한 안정적인 기능 개발 #99
hanseul524 wants to merge 34 commits intohanghae-plus:mainfrom
hanseul524:main

Conversation

@hanseul524
Copy link

@hanseul524 hanseul524 commented Nov 1, 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에 작성

심화 과제

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

과제 셀프회고

  • 저는 AI를 이용해서 프롬프트를 짜고 개발을 해본게 처음이라서 재밌는 경험이었습니다. 단순히 개발하면서 막히는 부분을 chat gpt한테 물어보고 답만 얻으면서 활용한 경험밖에 없어서 이런식으로 개발할 수 있다는 것이 너무 재밌었어요! 대신 엄청 똑똑하고 다 할줄 알거라고 생각했는데 아무리 완벽하게 주입시켜놓고 에이전트를 만들어놨다고 해서 그대로 동작하지도 않고 계속 사람이 개입해서 바로잡아줘야하는 사실이 흥미로우면서 힘들었습니다. 코치님이 욕하지 말라고 하셨는데 욕을 참을 수가 없었습니다 ...

기술적 성장

  • cursor를 사용할 줄 알게 되었습니다 ..! 처음 2주차 발제를 듣고 막막했는데 어느정도 익숙하게 사용할 수 있게 되고 cursor rules 를 잘 작성해야 각 AI 에이전트들의 품질과 일관성을 보장하는 것을 알게 되었습니다.
  • 프롬프팅 기법 중 few-shot/zero-shot을 모르고 사용하고 있었다가 왜 이런 결론이 도출되고 있었는가 .. 에 대해 개념이 잡히게 되었습니다. 그냥 명령만 내리면 AI는 제대로 행동하지 않기 때문에 md파일에 input, output 예시를 주고 프롬프트 작성 시 단계별로 맥락을 제공하는게 결과물의 품질을 좌우하는 것 같습니다.

코드 품질

  • 테스트 친화적 설계: 반복/검증/겹침 로직을 순수 유틸로 분리하여 AI가 예측 가능한 구현을 생성하도록 유도했고, 훅은 객체 반환 패턴으로 일관성을 유지하려고 했습니다.
  • 도메인 엣지 케이스 고도화: “매월 31일” 생성 제한, 윤년 2/29·평년 2/28 규칙, 종료일 상한(2025-12-31) 등을 테스트로 먼저 못박고 구현을 따라가게 했습니다.

학습 효과 분석

  • 명세가 얼마나 중요한지 알았습니다. 처음 시작할 때 중요하다고 생각했지만 명세도 AI에게 작성을 맡기고 테스트 설계 결과를 보고 아차차 ... 하고 AI를 기준으로 명확하고 자세한 명세를 작성해야 다음 단계를 나아갈 때 올바른 방향으로 나아간다는 것을 깨달았습니다.
  • 테스트 코드 작성은 개발자들이 가장 싫어하는 일이라고 하셨습니다. 저는 실무에서 테스트 코드를 사용 해본적은 없지만 직접 일일히 웹에서 단위 테스트, 통합 테스트를 진행하고 QA에게 넘기는 방식으로 진행했었습니다. 에이전트를 잘 설계해서 만들어 둔다면 불필요한 작업이 줄어들 것 같습니다. 잘 만들어진 테스트는 사이드 이펙트를 빠르게 발견할 수 있는 수단이 됩니다.

과제 피드백

  • 역시 1주차와 마찬가지로 첫 감을 잡기 어려웠습니다 .. 에이전트를 만든뒤 어떻게 연결시켜주어야 하는지 ... 하지만 그것은 제가 더 열심히 공부해야겠습니다 (ㅠㅠ)

리뷰 받고 싶은 내용

  • 각 에이전트가 오케스트레이션 에이전트에게 리뷰를 남겨서 승인하도록 했는데 그때 체크리스트로 만든 목록도 AI가 스스로 만든 것인데 과연 체크리스트를 통과했다고 좋은 테스트 코드인지 판단하기가 어렵습니다ㅠㅠ 프롬프트로 계속 체크리스트를 발전시키긴 했는데 어떤식으로 검증해야 맞는 방법인지 궁금합니다.

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.

1 participant