Goto 문을 활용한 중첩 루프 복잡도 해결

GolangBeginner
지금 연습하기

소개

이번 챌린지에서는 금융 데이터 처리 과정에서 사용되는 복잡한 중첩 루프 구조의 레거시 코드를 리팩토링하는 과제를 수행합니다. 목표는 goto 문을 활용하여 루프 제어 흐름을 단순화함으로써 코드의 가독성과 유지보수성을 높이는 것입니다. 데이터 값 5를 만났을 때 해당 요소를 출력한 후 루프를 즉시 빠져나오도록 프로그램을 구성해야 합니다.

이 콘텐츠는 챌린지입니다. 가이드에 따라 학습하는 실습 (Lab) 과 달리, 스스로의 힘으로 과제를 해결해야 합니다. 챌린지는 다소 난이도가 있을 수 있습니다. 해결이 어렵다면 Labby 와 상의하거나 모범 답안을 확인하세요. 통계에 따르면 이 챌린지는 초급 수준이며, 100%의 통과율과 학습자들로부터 100%의 긍정적인 평가를 받고 있습니다.

Goto 문을 활용한 중첩 루프 복잡도 해결

금융 데이터 처리 환경에서 복잡하게 얽힌 중첩 루프는 코드를 읽기 어렵게 만들고 유지보수를 방해합니다. 여러분의 임무는 goto 문을 사용하여 이러한 중첩 루프의 제어 흐름을 깔끔하게 리팩토링하는 것입니다.

과제

  • data_processor.go 파일 내의 중첩 루프를 goto 문을 사용하여 리팩토링하세요.
  • 5를 발견했을 때의 루프 종료 로직을 단순화하세요.
  • 프로그램을 종료하기 전에 해당 데이터 요소가 출력되도록 하세요.

요구 사항

  • 복잡한 중첩 루프 탈출 조건을 대체하기 위해 goto 문을 사용해야 합니다.
  • 솔루션 파일 경로는 ~/project/data_processor.go여야 합니다.
  • 5를 찾았을 때, 해당 값을 출력한 후 루프를 종료해야 합니다.
  • 중첩 루프를 빠져나오기 위해 단 하나의 goto 레이블만 사용하세요.
  • 기존의 데이터 출력 로직을 유지하세요.
  • 루프가 종료된 후 반드시 LOOP EXITED가 출력되어야 합니다.

예시

5를 만났을 때의 예상 출력 결과는 다음과 같습니다.

go run data_processor.go
1
2
3
4
5
LOOP EXITED

힌트

  • goto 문은 다중 중첩 루프를 한 번에 탈출할 때 로직을 매우 단순하게 만들어 줍니다.
  • goto 레이블을 중첩 루프의 바깥쪽에 배치하세요.
  • 단일 레이블을 사용하여 내부 루프와 외부 루프를 효율적으로 동시에 빠져나올 수 있습니다.
✨ 솔루션 확인 및 연습

요약

이번 챌린지에서는 금융 데이터 처리 시스템의 복잡한 중첩 루프를 리팩토링해 보았습니다. goto 문을 적절히 활용하여 제어 흐름을 단순화함으로써 코드의 가독성과 유지보수성을 개선하는 방법을 익혔습니다. 특히 특정 조건 (5 발견) 에서 데이터를 출력하고 즉시 다중 루프를 빠져나오는 효율적인 구조를 구현하는 데 집중했습니다.