goto 흐름 읽기 기준

goto 직접 점프

레거시 코드에서 만났다면 출발 지점, 도착 레이블, 점프 사이의 자원 상태를 함께 추적해야 합니다.

출발

현재 흐름에서 점프

goto cleanup;

조건문 안에서 갑자기 다른 줄로 이동합니다.

사이 구간

건너뛰는 코드

초기화, 검사, 정리 코드가 실행되지 않을 수 있습니다.

도착

레이블 위치

cleanup:

레이블 이후의 문장부터 다시 실행됩니다.

반복

반복 안 이동

`break`와 `continue`로 루프 구조 안에서 흐름을 표현합니다.

function

복잡한 탈출

함수로 분리한 뒤 `return`하면 여러 중첩 단계를 단순하게 끝낼 수 있습니다.

state

상태 전달

`bool done` 같은 플래그로 다음 단계가 읽을 수 있는 의도를 남깁니다.

RAII

정리 책임

스코프와 소멸자를 이용하면 점프 없이도 자원 해제를 안전하게 묶습니다.

현대 C++ 기준 새 코드는 `goto`를 먼저 선택하지 않습니다. 더 긴 코드라도 실행 경로가 구조적으로 보이는 대안을 고르는 편이 유지보수에 유리합니다.