튜토리얼

복잡한 기능 계획 및 구현

IBM Bob의 Plan 모드를 사용하여 AI 코딩 에이전트로 복잡한 기능의 범위를 정의하고, 검토하고, 구현합니다. 계획 프롬프트 작성, 생성된 계획 개선, Agent 모드에서 구현 실행 방법을 배웁니다.

이 튜토리얼에서는 Bob의 Plan 모드를 사용하여 Galaxium Travels 데모 애플리케이션에 좌석 등급을 추가하기 위한 구조화된 구현 계획을 만듭니다. 그런 다음 계획을 승인하고 Bob이 프론트엔드, 백엔드 및 데이터베이스 계층 전반에 걸쳐 기능을 구현하도록 합니다.

이 튜토리얼은 효과적인 계획 프롬프트 작성 방법, 생성된 계획을 검토할 때 주목해야 할 사항, Bob이 코드를 작성하기 전에 계획을 반복하는 방법을 알려줍니다.

전제 조건

Plan 모드를 사용하는 이유

Bob은 자율 에이전트입니다. 모호한 프롬프트를 사용하면 Bob은 자체 가정으로 공백을 채웁니다. 이러한 가정은 기술적으로 정확하더라도 의도와 일치하지 않을 수 있습니다.

계획을 만들면 Bob은 범위, 아키텍처 결정 및 순서가 지정된 구현 단계를 설명하는 Markdown 파일 세트를 생성합니다. 계획은 구현과 분리되어 있으므로 Bob이 코드를 작성하기 전에 읽고, 질문하고, 개선할 수 있습니다.

환경 설정

Galaxium Travels 데모 코드를 복제합니다. clone 명령은 튜토리얼에서 사용하는 코드가 포함된 bob-learning-path-branch도 체크아웃합니다.

git clone -b bob-learning-path-branch https://github.com/IBM/galaxium-travels

Bob에서 File을 클릭한 다음 Open Folder를 클릭합니다.

복제한 galaxium-travels 디렉토리로 이동하여 엽니다.

프로젝트에서 Bob 초기화

Bob 채팅 패널에서 /init을 실행하여 Bob이 루트 AGENTS.md 파일과 규칙 AGENTS.md 파일을 만들도록 합니다.

루트 AGENTS.md 파일은 Bob에게 프로젝트의 전체 구조, 규칙 및 목표를 알려주므로 Bob이 프로젝트에 맞는 코드를 작성할 수 있습니다. 이것이 없으면 Bob은 상태가 없기 때문에 매번 처음부터 시작합니다.

.bob의 규칙 파일은 Bob이 Agent, Plan 및 Ask의 각 모드에 대한 AGENTS.md를 만드는 곳입니다. 각 모드에는 해당 모드에서 Bob의 동작을 안내하는 다른 규칙 세트가 있습니다.

/init

Bob은 AGENTS.md 파일을 만들 권한을 요청합니다. Approve todo tools for task를 클릭하여 파일을 만듭니다.

Plan 프롬프트 작성 방법

Plan 모드에서 작성하는 프롬프트는 Bob이 작업하는 사양이 됩니다. 모호한 프롬프트는 모호한 계획을 생성합니다. 입력하기 전에 다음 네 가지 질문에 답하세요:

  • 기능이 무엇을 하고 무엇을 하지 않는가? 명시적인 범위는 Bob이 요청하지 않은 작업을 추가하는 것을 방지합니다.
  • 기능이 어떤 계층에 영향을 미치는가? 예를 들어 UI, API 및 데이터베이스.
  • 어떤 제약 조건이 적용되는가? 파일 수 제한, 명명 규칙, 하위 호환성 요구 사항 및 Bob이 협상 불가능한 것으로 취급해야 하는 기타 사항.
  • "완료"는 어떤 모습인가? 구체적인 수락 기준. 예를 들어 "사용자가 예약 중에 Economy, Business 또는 Galaxium 등급을 선택할 수 있다"는 Bob에게 명확한 목표를 제공합니다.

계획 생성

Plan 모드를 사용하여 좌석 등급 기능을 구현할 때 Bob이 따르는 계획을 만듭니다.

에이전트 채팅 사이드바 열기

채팅 인터페이스가 닫혀 있으면 탐색 모음 옆의 Bob 아이콘을 클릭하거나 단축키 Option + Command + B(Mac) 또는 Ctrl + Alt + B(Windows)를 사용하여 엽니다.

IBM Bob IDE에서 열린 Bob 채팅 패널

Plan 모드로 전환

채팅 인터페이스의 모드 선택기에서 Plan을 선택합니다.

Plan 모드 사용

계획 만들기

입력 필드에서 다음 프롬프트를 실행합니다. 프롬프트는 Plan 프롬프트 작성 방법 섹션의 범위 지정 원칙을 적용합니다: 변경할 계층을 지정하고, 파일 수 제한을 설정하고, 관리자 대시보드를 제외하고, 수락 기준을 명시합니다.

Bob은 Create plan 스킬을 실행할 수 있도록 스킬 도구와 하위 에이전트를 사용할 권한을 요청합니다. Approve skill tools for taskApprove subagent tools for task를 클릭하여 요청을 승인합니다.

Galaxium Travels에 좌석 등급을 추가하고 싶습니다. 승객은 항공편을 예약할 때 Economy, Business 또는 Galaxium 등급을 선택할 수 있어야 합니다.

범위:
- 좌석 등급 선택기를 표시하도록 예약 UI 업데이트
- 선택한 등급을 수락하고 저장하도록 백엔드 예약 API 업데이트
- bookings 테이블에 seat_class 열을 추가하도록 데이터베이스 스키마 업데이트
- 관리자 대시보드 변경 사항은 추가하지 않음 — 범위를 벗어남

제약 조건:
- galaxium-travels 폴더에 `plans`라는 폴더 만들기
- 세 개 이상의 계획 파일을 만들지 않기
- 데이터베이스 변경을 하위 호환 가능하게 유지

완료 조건: 사용자가 예약 중에 좌석 등급을 선택할 수 있고 선택한 등급이 예약 확인에 저장되고 표시됩니다.

다음 스크린샷은 Bob이 의도를 이해하기 위해 명확화 질문을 하는 모습을 보여줍니다. 프롬프트를 작성한 방식에 따라 질문이 다를 수 있습니다. 질문에 답하거나 Bob에게 최선의 옵션을 선택하도록 지시하세요.

Plan 모드에서 Bob이 명확화 질문을 함

Bob이 완료되면 계획 파일을 작성할 승인을 요청합니다. Approve edit tools for task를 클릭합니다.

Bob은 계획 파일을 Markdown 파일로 plans 폴더에 배치합니다. 계획 파일 이름은 다를 수 있습니다.

/galaxium-travels/plans/seat-class-plan.md

계획 검토

계획 파일은 Bob이 구축하는 사양입니다. plans 폴더에 있는 계획을 검토하여 제안된 변경 사항을 이해합니다.

계획을 검토할 때 다음을 찾으세요:

  • 범위 일치: 계획에 요청한 모든 것이 포함되어 있습니까? 요청하지 않은 것이 포함되어 있습니까?
  • 모호한 언어: "필요에 따라 추가" 또는 "적절하게 업데이트"와 같은 문구를 찾으세요. 이것들은 명시되지 않은 가정입니다. 승인하기 전에 구체적인 지침으로 바꾸세요.
  • 명명된 파일: 각 단계는 영향을 미치는 파일을 식별해야 합니다. 단계에서 파일 이름을 지정하지 않고 "예약 구성 요소 업데이트"라고 말하면 Bob에게 더 구체적으로 요청하세요.

계획 반복

계획이 의도와 일치하지 않으면 동일한 Plan 모드 대화에서 Bob에게 수정을 요청하세요. 처음부터 다시 시작할 필요가 없습니다.

예를 들어 이전 단계에서 Bob이 생성한 계획은 각 등급의 색상이나 배지에 대해 구체적이지 않았습니다.

   b. Apply a distinct colour or badge per class (e.g. grey for Economy, gold for Business, cosmic-gradient for Galaxium) consistent with the existing status colour pattern

이를 수정하려면 다음 프롬프트를 실행하여 각 등급의 색상을 명시적으로 설정합니다:

각 등급에 대해 다음 색상을 지정하도록 계획을 업데이트해 주세요:
- Economy: green
- Business: gold
- Galaxium: cosmic-gradient

계획에 동일한 문제가 없을 수 있습니다. 계획을 검토하고 발견한 모호한 언어를 명확히 하거나 누락된 세부 정보를 추가하도록 Bob에게 요청하세요.

새 기능 구현

새 대화 시작

채팅 인터페이스 상단의 더하기 기호를 클릭하여 새 대화를 시작하고 컨텍스트 창을 지웁니다.

에이전트 채팅 사이드바에서 새 대화 시작

새 대화를 시작하면 컨텍스트 창이 지워집니다:

  • 이전 계획 논의가 토큰 예산을 소비하는 것을 방지합니다.
  • 구현 컨텍스트를 승인된 계획에 집중시킵니다.
  • Bob이 계획 및 구현 지침을 혼동할 위험을 줄입니다.

Agent 모드로 전환

모드 선택기에서 Agent를 선택하여 Agent 모드로 전환합니다.

기능 구축

기능을 구현하려면 다음 프롬프트를 제출합니다:

plans 폴더의 기능을 구축하세요
@plans/

@plans/ 참조는 폴더의 모든 계획을 참조하므로 파일을 개별적으로 지정할 필요가 없습니다.

다음 스크린샷은 예제 plans 폴더를 보여줍니다:

계획 파일

Bob은 Approve todo tools for taskApprove edit tools for task를 요청합니다. 두 요청을 모두 승인하세요.

예약 UI, 백엔드 API 및 데이터베이스 전반에 걸쳐 좌석 등급 지원을 추가했으며 Economy, Business 및 Galaxium 등급 옵션이 시스템 전체에 반영됩니다.

다음 단계

이 튜토리얼에서는 범위가 지정된 계획 프롬프트를 작성하는 방법, 생성된 계획에서 공백과 모호한 언어를 검토하는 방법, 의도와 일치할 때까지 계획을 반복하는 방법, 깨끗한 컨텍스트 창으로 승인된 사양을 구현하는 방법을 배웠습니다.

Bob의 동작 표준화로 진행하여 Bob의 동작을 제어하는 사용자 정의 규칙 만들기에 대해 알아보세요.

새 컨텍스트 창 만들기에서 Bob의 컨텍스트 창 작동 방식을 배워 새 대화를 시작하면 구현 품질이 향상되는 이유를 이해하세요.

Bob 기능 추가를 탐색하여 프로젝트에서 Bob이 할 수 있는 작업을 확장하세요.

이 주제는 어떤가요?