작업 이해하기05 / 20
근거 확인하기
이 페이지의 내용
Agent가 “구현 완료”라고 말하는 것만으로는 충분하지 않습니다. 모든 설명에는 근거가 함께 옵니다. 읽은 코드, 실행한 테스트, 실행 기록, 스크린샷이 클릭 한 번이면 확인할 수 있게 붙어 있습니다. 누가 물으면 정확한 위치를 가리킬 수 있습니다.
근거에 들어 있는 것
메모에서 “근거”를 여세요. 흔히 볼 수 있는 자료는 다음과 같습니다.
| 자료 | 표시 방식 | 클릭하면 |
|---|---|---|
| 코드 위치 | 함수 이름 또는 “파일:줄” 칩 | 오른쪽에 코드 패널이 그 줄에서 열립니다 |
| 테스트 실행 같은 명령 출력 | 칩 | 오른쪽 보조 막대에 전체 출력이 열립니다 |
| 코드 diff | 칩 | 오른쪽 보조 막대에서 열립니다 |
| 스크린샷과 그 밖의 이미지 | 썸네일 | 확대되어 열립니다 |
명령 출력, diff, 스크린샷은 Agent가 구현하는 동안 남긴 기록에서 가져옵니다. Noea는 각 턴에서 어떤 명령을 실행했고 어떤 스크린샷을 찍었는지 보관하므로, 설명이 그것을 바로 인용할 수 있습니다.
코드 위치 살펴보기
문장 중간의 코드 위치는 보통 openGrace처럼 함수나 변수의 이름으로 나타납니다. 그렇지 않으면 grace.ts:6-18처럼 “파일:줄” 칩으로 나타납니다. 한 설명이 이름이 같은 두 파일을 인용하면 칩에 상위 폴더가 덧붙습니다.
이름이나 칩 위에 포인터를 올리면 전체 경로, 줄 범위, 심볼이 보입니다. 클릭하면 오른쪽에 그 파일의 코드 패널이 인용된 줄에서 열립니다. 파일이 어느 구현 턴이 남긴 그대로라면 그 턴의 변경이 파일 전체 위에 겹쳐 표시되므로, 어느 턴이 그 줄을 썼는지 볼 수 있습니다. 오른쪽 클릭 메뉴에서는 파일을 기본 앱으로 열거나, Finder에서 보거나, 경로를 복사할 수 있습니다.
그 뒤에 코드가 옮겨졌다면 칩의 줄 번호와 이동 위치도 현재 위치를 따라갑니다. 인용된 코드가 바뀌어 이름만 찾을 수 있으면 칩이 흐려집니다. 파일이 사라졌거나 코드를 더 이상 찾을 수 없으면 칩이 흐려지고 취소선이 그어지며, 포인터를 올리면 이유가 나옵니다. 어느 쪽이든 설명을 다시 조사해야 할 가능성이 큽니다.
근거가 어디까지 말해 주는가
자료를 볼 때는 먼저 어떤 종류인지 구분하세요.
| 자료 | 확인해 주는 것 | 기억할 점 |
|---|---|---|
| 구현 코드 또는 테스트 코드 | 코드가 어떤 논리를 쓰는지, 테스트가 어떤 경우를 정의하는지 | 테스트 코드가 있다고 해서 테스트가 실행되었거나 통과한 것은 아닙니다 |
| 이전 실행 결과 | 그때 무엇이 실행되었고 결과가 어땠는지 | 그 뒤에 코드가 바뀌었다면 결과가 더 이상 성립하지 않을 수 있습니다 |
| 이번 설명 중에 실행한 검증 | 이번 실행의 환경과 범위에서의 결과 | 통과한 경우는 다루지 않은 경우에 대해 아무것도 말해 주지 않습니다 |
Explain과 조사는 주로 코드와 기존 자료를 읽는 데 의존하며, 매번 테스트, 빌드, 앱을 다시 실행하지 않습니다. Agent는 결론이 기대는 사실을 코드를 읽는 것만으로 판단할 수 없을 때에만 검증합니다. 좋은 근거는 검증하지 않은 것도 밝힙니다. 예를 들어 “실제 결제 대행사로는 실행하지 않았고, 결제 결과는 테스트 대역에서 나온 것입니다.” 같은 식입니다. 근거가 부족하거나, 구현을 찾지 못했거나, 의도가 모호할 때는 확실해 보이기만 하는 결론을 내놓지 말고, 근거와 주의 사항이 그 사실을 분명히 말해야 합니다.
설명은 증명서가 아니라 근거가 붙은 조사 기록이라는 점도 기억하세요. 한 Agent가 다른 Agent의 구현을 확인했다고 해서 그것만으로 결과가 더 확실해지지는 않습니다. 근거의 가치는 설명이 “확인됨”이라고 말하는 데 있지 않고, 당신이 열어서 확인할 수 있다는 데 있습니다.
스크린샷과 인터페이스
어떤 동작은 코드만으로 판단할 수 없습니다. 예를 들어 알림이 실제로 화면에 나타나는지가 그렇습니다. Agent가 구현하면서 스크린샷을 찍었다면, 설명이 그것을 근거로 나열할 수 있습니다. 예를 들면 “유예 기간 동안 팀 설정 페이지 상단에 안내가 표시됩니다.” 같은 식입니다.
썸네일을 클릭하면 확대됩니다. 어떤 페이지의 어떤 상태인지, 어느 실행이 남긴 것인지 확인하세요. 스크린샷은 그때 인터페이스가 어떻게 보였는지를 증명할 뿐이며, 그 뒤에 코드가 바뀌었다면 인터페이스도 바뀌었을 수 있습니다.
항목별로 확인하기
근거를 확인할 때는 항목마다 이렇게 물어보세요.
- 이 참조가 의도의 이 부분이 다루는 것을 가리키고 있는가?
- 테스트는 어떤 경우를 다루며, 예외 상황도 포함되어 있는가?
- 결과가 설명의 결론을 정말로 뒷받침하는가?
- 근거가 검증하지 않은 것을 밝히고 있는가?
예를 들어 유예 기간의 근거에는 “유예 기간 테스트를 실행했고, 6개가 모두 통과합니다”라고 적혀 있는데, 주의 사항에는 “세 번째 재시도가 성공하는 경우를 다루는 테스트는 없습니다”라고 적혀 있습니다. 그러면 그 경로는 코드를 읽은 것에만 의존하고, 그것을 증명하는 실행은 없다는 것을 알 수 있습니다.
근거가 부족할 때
중요한 경우가 빠졌다면, 단락 위에 마우스를 올리고 왼쪽의 “이 부분에 대해 질문”을 클릭해 Agent에게 검증을 요청하세요.
테스트를 추가해 주세요. 유예 기간 6일째에 세 번째 재시도가 성공하면 구독이 정상 상태로 돌아오고 다운그레이드되지 않아야 합니다. 실행한 뒤 결과를 알려 주세요.
Agent가 끝나면 Noea가 그 턴을 알아서 설명합니다. 이를 꺼 두었다면 단락 왼쪽의 “조사”를 클릭하세요. 새 설명에는 이번 실행이 근거로 나열됩니다.
설명의 결론이 근거와 맞지 않거나, Agent가 당신의 의도를 잘못 읽었다고 생각된다면 여기서 그 점도 물어보세요. 코드에 맞추려고 의도를 고치지는 마세요. 정한 내용을 의도로 적기를 참고하세요.