Swift

guard문을 사용하는 이유

KangChangHyeok 2023. 3. 2. 11:53

흔히 swift를 사용하면서 간단한 조건에 대해서는 if문을 주로 사용하고,
옵셔널 언래핑이나 함수 안에서는 guard문을 주로 사용했다.

계속 쓰면서 문득 정확히 어떤 상황에 각 조건문을 사용해야 하고, swift에서 guard문을 따로 만든 이유는 무엇일까?

 

내가 생각했을때 두 조건문의 가장 큰 차이는

조건에 따라 실행을 처리하는(~면 ~다) 실행에 목적을 둔 if문과 다르게

gurad문은 조건에 따라 실행을 종료하는(~면 종료해라) 목적으로 사용되는 점이 큰 차이점이라고 생각한다.

 

guard문은 일반적으로는 옵셔널 언래핑 후 바인딩한 상수를 해당 스코프 내에서 제한없이 쓸수 있다는 점과,

if문과 다르게 조건을 처리할때 괄호의 중첩이 발생하기 않기 때문에 코드의 가독성을 증가시키는 장점으로 많이 사용했다.

 

하지만 처음 말했던 종료의 목적과 사전적 의미인 '지키다'의 의미에 중점을 두고 생각한다면 swift에서 guard문을 만들고 사용하는 가장 큰 이유는 예외처리(오류 발생시 처리 및 대응)를 하기위해 사용하는 것이라고 생각한다.

 

guard문 이름 자체도 '지키다'라는 뜻이 가장 큰 의미이기 때문에 예외상황(오류 발생)에 대해 프로그램을 '지키는' 의미로 해석할수 있고, 예외적인 상황이 발생했을때 먼저 예외 처리를 하고 그 이후 작성한 코드가 정상적으로 동작할수 있도록 하기 위해 사용하도록 만든거라고 생각이 들었다.

 

예를 들어, 작성한 코드를 실행시키기에 앞서 조건식이 false가 되는 상황은 API 호출시 result가 실패한 경우에 대응시킬수 있고, 이는 결국 error가 발생한 상황을 의미한다.

예외처리를 통해 프로그램 동작에 문제가 생길수 있는 부분을 사전에 방지하여 정상적으로 프로그램이 작동할수 있도록 하기 위해 guard문을 만든것 같다.

 

오늘 생각하고 글로 정리하면서,

결국 guard문은 swift에서만 사용하기 때문에 정확하게 gurad을 이해하고 사용하기위해 노력한다면
기존에 작성한 코드보다  더 swift답게 코드를 작성할수 있을것이라고 생각한다.

'Swift' 카테고리의 다른 글

Optional  (0) 2022.07.18
Swift - Print() 자세히 살펴보기  (0) 2022.07.12