Skip to content

[3팀 박형우] Chapter 1-2. AI와 테스트를 활용한 안정적인 기능 개발 #79

Open
hyeongwoo94 wants to merge 39 commits intohanghae-plus:mainfrom
hyeongwoo94:main
Open

[3팀 박형우] Chapter 1-2. AI와 테스트를 활용한 안정적인 기능 개발 #79
hyeongwoo94 wants to merge 39 commits intohanghae-plus:mainfrom
hyeongwoo94:main

Conversation

@hyeongwoo94
Copy link

@hyeongwoo94 hyeongwoo94 commented Oct 31, 2025

과제 체크포인트

필수 스펙

    1. 반복 유형 선택
    • 일정 생성 또는 수정 시 반복 유형을 선택할 수 있다.
    • 반복 유형은 다음과 같다: 매일, 매주, 매월, 매년
      • 31일에 매월을 선택한다면 → 매월 마지막이 아닌, 31일에만 생성하세요.
      • 윤년 29일에 매년을 선택한다면 → 29일에만 생성하세요!
    • 반복일정은 일정 겹침을 고려하지 않는다.
  1. 반복 일정 표시

    • 캘린더 뷰에서 반복 일정을 아이콘을 넣어 구분하여 표시한다.
  2. 반복 종료

    • 반복 종료 조건을 지정할 수 있다.
    • 옵션: 특정 날짜까지
      • 예제 특성상, 2025-12-31까지 최대 일자를 만들어 주세요.
  3. 반복 일정 수정

    1. ‘해당 일정만 수정하시겠어요?’ 라는 텍스트에서 ‘예’라고 누르는 경우 단일 수정
      • 반복일정을 수정하면 단일 일정으로 변경됩니다.
      • 반복일정 아이콘도 사라집니다.
    2. ‘해당 일정만 수정하시겠어요?’ 라는 텍스트에서 ‘아니오’라고 누르는 경우 전체 수정
      • 이 경우 반복 일정은 유지됩니다.
      • 반복일정 아이콘도 유지됩니다.
  4. 반복 일정 삭제

    1. ‘해당 일정만 삭제하시겠어요?’ 라는 텍스트에서 ‘예’라고 누르는 경우 단일 수정
      1. 해당 일정만 삭제합니다.
    2. ‘해당 일정만 삭제하시겠어요?’ 라는 텍스트에서 ‘아니오’라고 누르는 경우 전체 수정
      1. 반복 일정의 모든 일정을 삭제할 수 있다.

기본 과제

공통 제출

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

기본 과제(Easy)

  • AI 코드를 잘 작성하기 위해 추가로 작성했던 지침

    1. 페르소나로 역할 분담
    2. 집을 생성하여 각자 역할분담의 prd를 작성
    3. 작업이 많은 노동자에게 팀원을 주어 필요할 때 필요한 팀원을 고용해서 작업 진행
    4. doc를 작성하여 각 역할에게 중요하게 생각되는 지침을 체크리스트로 제작하여 참조하게 함.
  • 커밋별 올바르게 단계에 대한 작업

    1. 내가 질문한것들을 history로 만들어 세월이에게 기억하게 학습 시킴
      =>학습 할 수록 기억의 양이 많아지니 에이전트가 일을 할때 실패/성공의 스토리를 갖고 작업을 함.
  • AI 도구 활용을 개선하기 위해 노력한 점 PR에 작성

    1. Error Recovery Process → 재작업 90%↓
    2. PRD Template v4.0 → 컨텍스트 완전 제공
    3. Test Helper 패턴화 → 작성 시간 50%↓
    4. Memory Learning → 오류 재발 80%↓
    5. 자동 문서화 → 100% 추적
    6. Workflow Optimization → 작업 시간 30%↓
    7. 역할 분리 → 효율성 증가

기본 과제(Hard)

  • Agent 구현 명세 문서 또는 코드

    1. 5개 역할 기반 에이전트 시스템
  • 커밋별 올바르게 단계에 대한 작업
    1: 반복 일정 표시 (TDD 준수)
    2: 수정 기능 (실패 → Review → 재구현 성공)
    3: 삭제 기능 (3번 시도, 3번 Review)
    4: 버그 수정 (사용자 리포트 기반)

  • 결과를 올바로 얻기위한 history 또는 log

    1. History (일일 작업 로그)
    2. Review (실패 분석 + 해결책)
    3. PRD (완전한 요구사항 명세)
  • AI 도구 활용을 개선하기 위해 노력한 점 PR에 작성

    1. Error Recovery Process → 재작업 90%↓
    2. PRD Template v4.0 → 컨텍스트 완전 제공
    3. Test Helper 패턴화 → 작성 시간 50%↓
    4. Memory Learning → 오류 재발 80%↓
    5. 자동 문서화 → 100% 추적
    6. Workflow Optimization → 작업 시간 30%↓
    7. 역할 분리 → 효율성 증가

심화 과제

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

과제 셀프회고

2025-10-27
0. 명령어 실행 시 공통 설정 및 작업 프로세스 정리

  • 모든 명령어 실행 전 반드시 수행해야 하는 공통 설정 단계를 명확히 정의.
  • 프로젝트 진행 중 필요한 작업 절차 및 체크리스트를 문서화하여 반복 작업의 효율성을 확보함.
    1. 프로젝트 페르소나 정의 (/people)

      • 프로젝트의 핵심 사용자를 구체화하기 위해 페르소나 문서를 작성.
      • 각 페르소나별 요구사항과 행동 패턴을 기반으로 에이전트의 목표를 구체화함.
    2. 역할별 명세서 작성 (/home)

      • 각 역할(건물주, 계획자, 관리자, 노동자 등)에 맞는 세부 명세서를 추가.
      • 역할별 책임과 수행 범위를 명확히 하여 협업 구조를 체계화함.

2025-10-28

  1. 역할별 중요 체크리스트 작성 (/doc)
    • 각 역할의 주요 업무 흐름을 정리하고 **필수 점검 항목(Checklist)**을 추가.
    • 재사용 가능한 표준 문서로 만들어 향후 프로젝트에도 적용 가능하도록 설계함.
  2. history 시스템 구축 및 세월이 학습
    • 프로젝트 진행 과정의 이력을 history로 관리하여 세월이 에이전트의 학습 데이터로 활용.
    • 이를 통해 반복적인 작업의 자동화와 문맥 기반 대응 능력을 향상시킴.

---QnA 이후 개선 및 리팩토링---

  1. 전체 리팩토링
    • 기존 구조를 전면 재점검하여 역할 간 의존성 최소화 및 유지보수성 향상.
    • 문서와 디렉터리 구조를 통합해 일관성 있는 워크플로우를 구축함.
  2. 노동자 역할 분화 및 팀 구성
    • “노동자” 역할에 팀원을 배정하여 작업 단위별 역할 분담을 시행.
    • 이를 통해 병렬 작업 효율을 높이고, 작업 충돌을 최소화함.
  3. PRD 기반 작업 프로세스 강화 (/request/prd.md)
    • 모든 작업은 시작 전 **PRD(Product Requirements Document)**를 작성하여 계획을
      명확히 정의.
    • 만약 작업 완료 후 다른 영역에 오류가 발생할 경우, /review.prd.md를 작성하여 이슈
      원인 분석 및 수정 시간 단축.
  4. 건물주에게 “Human in the Loop” 적용
    • 건물주 역할에 인간 피드백을 통합하여, **자동화 과정에서도 판단 기반의 개입 (HITL)**이 가능하도록 개선.
      이로써 품질 보증과 의사결정 정확도를 높임.
  5. 명령어 기반 워크플로우 구분
    • 건물주에게 특정 **명령어(Command Trigger)**를 설정하여, 명령 입력 시 자동으로 해당 워크플로우를 구분 및 실행되도록 설계. 이를 통해 명령 실행의 일관성과 프로젝트 관리의 자동화를 강화함

기술적 성장

  • 새로 학습한 개념
  1. TDD
  2. AI를 잘 활용하는 방법
  3. cursor가 무엇인지/ 작성방법 (+ 클로드)
  4. 효율적인 대답을얻기 위한 프롬프트 작성법
  • 기존 지식의 재발견/심화
  1. 일반 수정과 반복일정이 같이 있을경우
    -일반수정을 매월이나 매일로 변경할 경우 반복일정이 두개가 겹친다. 이때 계속진행으로 겹칠 수 있게 제작.

  2. 학습이 잘 되었는지 확인(과제 외 다른 일을 시켜봄)

    • 일정 카드 가독성이 떨어져서 간단하게 타이틀의 스타일을 변경하라고 요구
    • 모달을 만들도록 요구
    • 캘린더의 반복 일정 색상으로 구분하게 추가

코드 품질

  • 특히 만족스러운 구현

페르소나

  • 건물주 : 최고 지휘자
  • 기획자: 기획 하는 사람
  • 노동자: 실질적 코드를 만드는 사람
  • 관리자: 기획자랑 노동자의 결과물에 피드백을 주는 사람
  • 세월이: 실패/성공 모든것을 기록하고 학습하는 사람

people 폴더 : 역할 정의
home 폴더 : 학습된 경험과 패턴 저장

#워크 플로우

  1. 건물주
    • 명령 수신 및 분석 / 범위 및 복잡도 판단
  2. 기획자
    • request-prd를 참고하여 명령의 prd 제작
  3. 건물주
    • 기획자가 만든 prd 완성도 검토 / 사용자(나)에게 최종 컴펌 요청 / 부족한 부분 지적

==사용자가 승인 시

  1. 노동자

    • TDD사이클 진행 / company에서 팀원 활용 / 토드 작성 및 테스트
  2. 관리자

    • 코드 품질 검증 / 리뷰 보고서 작성(이슈가 있을 시) / 승인/수정요청/거부 판단
  3. 세월이

    • 히스토리 저장 / 학습 내용 업데이트 / 히스토리내의 정보 중복 검사 및 정리

doc 제작

 a. TDD
   - 주된 사용자: 노동자 = red-green-pefactor 사이클 준수
   - 건물주: 작업 검증시 사용
   - 관리자: 코드 리뷰시 사용

   [제작의도]
   1. kent Beck의 TDD + Tidy First 원칙 완벽 가이드
   2. TDD 핵심 사이클: Red → Green → Refactor
   3. 이게 있으므로 red을 만들고 그것을 기준으로  green을 순차적으로 만든 다음 작  
       업을 완료한다.

 b. checklist
   - 주 사용자: 노동자 = 커밋 전 필수 체크
   - 관리자: 리뷰시 체크리스트 활용
   - 세월이: 과거 이슈 패턴 학습

   [ 제작의도 ]
   1. 커밋 전 반드시 확인해야 할 10가지 치명적 이슈
   2. CRLF vs LF, Import 순서, 파일 끝 빈줄, React Hooks 의존성, 구현 vs 통합 격차
      날짜 오버플로우, 가상 ID vs 영구 ID, 중첩 객체 Spread, UI 메타데이터 보존
      서버 ID 보호
   

 c. test-guidelines
   - 주 사용자: 노동자 = 테스트 작성시
   - 테스트팀원: 테스트 전문 작업시
   - 관리자: 테스트 코드 리뷰시
   
    [ 제작의도 ]
   1. 테스트 코드 작성시 패턴 정의 [describe('컴포넌트명 >', () => {})]
   2. 한글로 작성: 모든 describe(), it("한글") 


 d. workflow-optimization
   - 주 사용자: 노동자 = 구현효율화
   - 건물주: 작업 시간 관리
   - 기획자: 설계 시
   
   [ 제작의도 ]
   1. 명령 실행 시간이 너무 오래걸림 이것을 작성함으로 시간 단축 + 최적화

학습 효과 분석

  • AI 에이전트를 잘 구축해 놓으면 프로젝트를 진행 할 때 조수로 지정해 놓고 잡다한 것을 시키고 나는 중요한 일에 더욱 집중 할 수 있을 것 같다.( 발제 자료에서 봤던 "AI에게 작업 시켜 놓고 우리는 중요한 작업에 더 집중 할 수 있다" 라는 말이 왜 있었는지 깨달았다.)
  • 개발자지만 책을 많이 읽고 글을 쓰는 연습을 많이 해야 할 것 같다. 같은 말이라도 어떻게 작성하는지에 따라 AI의 아이큐가 정해지는 것 같다.

과제 피드백

  • 과제에서 모호하거나 애매했던 부분
  1. 에이전트가 잘 작동을 하지만 에이전트가 작업을 실행 하는데 오래 걸립니다. 실행 시간을 단축 시킬 수 있는 방법은 무엇이 있을까요?
  • 과제에서 좋았던 부분
  1. AI가 휘리릭 만들어주니 재미 상승
  2. 에이전트가 오류를 내는 부분이 대부분 함수들의 연결(?)이 적절하지 않아서 오류가 생겼습니다.. 자바스크립트의 지식이 부족한 저한테는 이러한 오류를 보는 것만으로도 자바스크립트의 흐름에 대한 이해도가 상승했습니다.

리뷰 받고 싶은 내용

  1. 같은 것을 중복으로 만든건지 헷갈립니다.
    ex)
    history: AI를 학습시키기 위해 내가 ai에게 물어보는 모든 것을 요약 정리해서 기록
    request: 내가 명령한 것을 prd에 맞춰서 작성해서 명령을 실행하기전에 나에게 검수를 받는 문서

메모리가 저 두 폴더를 기준으로 기억을 해서 작업에 영향을 주도록 했습니다.
이때 핵심 내용이 많이 들어 있는건 request라서 history가 필요 없지 않을까라는 생각을 했습니다.
그러나 학습량이 많을수록 더 좋은 결과 값을 낼 것 같아서 hisory를 만들어서 사용했습니다.(중복내용은 지우고 핵심요약만 하라고 명세서에 넣어두었습니다.)

이러한 작업이 효율적인 작업인지 아닌지 판단이 어렵습니다.

hyeongwoo94 and others added 30 commits October 26, 2025 22:23
- people
>> 해당 역할 분담
- home
>>각 작업시 작동할 명령어,워크프로세스 정의
내가 입력한 글
1. 노동자는 src안의 있는 파일들의 코드를 분석파악해서 패턴을 학습해라 그리고 노동자집에 분석한 데이터와 패턴을 저장해둬.
2. 계획자는 src안의 있는 코드들 분석해서 워크프로우를 파악해서 응용할 수 있게  계획자 집에 학습해둬
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