동작을 보존하며 코드를 리팩터링하는 방법.
변경을 명시적으로 요청하지 않았다면 리팩터링은 관찰 가능한 동작을 유지해야 합니다. 의도치 않은 차이를 감지할 테스트나 예제를 찾으세요.
작업에 맞게 절차를 조정하세요.
유지해야 할 동작을 정하고 해결할 중복이나 복잡성을 파악하세요. 범위를 정한 구조 변경을 한 뒤 알려진 사례, 오류, 부수 효과를 원본과 비교하세요.
- 제공할 내용
- 코드와 요청한 구조 변경.
- 받을 결과
- 의도한 동작을 유지하는 리팩터링 초안.
입력과 결과를 확인하세요.
설명용 입력과 출력 · 실제 WebAct 실행이 아닌 학습용 예시
입력 항목 예시개
Refactor this Python function without changing its result or empty-name error:
def label(name, loud):
if loud:
if not name:
raise ValueError("name required")
return name.upper()
if not name:
raise ValueError("name required")
return name.lower()완성된 예시
def label(name, loud):
if not name:
raise ValueError("name required")
return name.upper() if loud else name.lower()
Checks: label("Ada", True) → "ADA"; label("Ada", False) → "ada". An empty string raises ValueError("name required") in both modes.이 입력을 프롬프트에 넣고 WebAct에 복사해 작업을 실행해 보세요. 결과는 설명용 예시와 다를 수 있습니다.
판단 기준과 문제 해결.
리팩터링이 오류 동작을 의도적으로 바꿔도 되나요?
그 동작 변경이 요청에 포함된 경우에만 가능합니다. 그렇지 않다면 보존하거나 명시적인 후속 결정으로 분리하세요.
공통 코드를 추출했더니 한 분기의 결과가 달라지는 이유는 무엇인가요?
실행 순서, 상태, 분기별 조건을 확인하세요. 비슷해 보이는 코드도 서로 다른 가정하에 동작할 수 있습니다.
직접 준비한 자료로 시도하세요.
작업 프롬프트의 예시를 내 자료로 바꾸세요. 필요한 요구 사항은 유지하고 작업을 WebAct에 복사하세요.
작업 맞춤 설정 및 복사 ↑