더북(TheBook)

대부분의 최근 언어는 더 이상 goto와 같은 구문을 지원하지 않는다. 하지만 C#은 이것을 지원하며, 함수에서 중복되는 종료 지점을 제거해야 되는 경우에 한하여 매우 잘 작동한다. 이해하기 쉬운 방식으로 goto 구문을 사용하고, 시간을 아끼면서 동시에 버그가 덜 발생하도록 하는 것이 가능하다. 마치 이것은 <모탈 컴뱃>6의 3단 콤보를 맞추는 것과 같다.

종료 지점은 호출자에게 무언가를 반환하는 함수의 구문이다. C#에서 모든 return은 종료 지점을 의미한다. 아주 오래 전에는 프로그래밍 언어의 종료 지점을 없애는 것이 지금보다 더 중요했는데, 이는 당시 수동으로 코드를 정리하는 것이 프로그래머의 일상에서 중요한 부분이었기 때문이다. 함수를 반환하기 전에 무엇을 할당하고 무엇을 정리해야 하는지 기억하고 있어야 했다.

C#은 try/finally 블록이나 using 구문 같은 구조화된 코드 정리를 위한 훌륭한 도구를 제공한다. 둘 모두 시나리오에 맞지 않는 경우가 있으며 이때 정리를 위해 goto를 사용할 수 있다. 하지만 실제로 goto 구문은 중복을 제거할 때 더 빛이 난다. 온라인 쇼핑을 위한 웹 페이지에서 배송 주소를 입력하는 폼(form)을 개발한다고 가정해 보자. 웹 폼은 다단계 유효성 검증을 보여주는 데 유용하며, 이를 위해 ASP.NET 코어를 사용한다면 폼을 제출하는 액션이 필요하다. 이를 위해 코드 3-12와 같이 작성할 수 있다. 클라이언트에서 일어나는 모델 검증이 있지만, 동시에 주소 검증 API를 사용하여 이 주소가 정말 맞는지 확인하는 서버 검증도 함께 해야 한다. 유효성 검사 후 우리는 데이터베이스에 정보를 저장할 수 있다. 만약 성공하면 사용자를 청구 정보 페이지로 리디렉션한다. 그렇지 않으면 우리는 배송지 입력 폼을 다시 표시해야 한다.

신간 소식 구독하기
뉴스레터에 가입하시고 이메일로 신간 소식을 받아 보세요.