🔥 Boolean 타입

504자
6분

Swift는 Bool이라는 기본 Boolean 타입을 제공합니다. Boolean 값은 오직 참(true) 또는 거짓(false)만 가질 수 있기에 논리값이라고도 불러요. Swift에서는 truefalse라는 두 개의 Boolean 상수 값을 제공하고 있습니다.

let orangesAreOrange = true // 오렌지는 주황색이다 - 참
let turnipsAreDelicious = false // 순무는 맛있다 - 거짓
swift

위 코드에서 orangesAreOrangeturnipsAreDelicious의 타입은 Boolean 리터럴 값으로 초기화되었기 때문에 Bool로 추론되었어요. 앞서 다룬 IntDouble처럼 Bool 타입의 상수나 변수도 생성과 동시에 true 또는 false로 설정한다면 따로 타입을 선언할 필요가 없답니다. 이런 타입 추론 기능 덕분에 이미 알려진 타입의 다른 값으로 초기화할 때 Swift 코드를 더욱 간결하고 읽기 쉽게 만들 수 있어요.

Boolean 값은 if문과 같은 조건문을 다룰 때 특히 유용하게 사용됩니다.

if turnipsAreDelicious {
    print("음, 맛있는 순무!")
} else {
    print("으, 순무는 맛이 없어.")
}
// "으, 순무는 맛이 없어."가 출력됨
swift

이처럼 if문 같은 조건문은 제어문에서 더 자세히 다루니 참고하시기 바랍니다.

Boolean 값의 또 다른 활용 예시로는 토글(toggle)이 있어요. 토글은 두 가지 상태를 오가는 스위치를 뜻하는데, Boolean 변수를 사용하여 구현할 수 있답니다.

var lightsOn = true // 불이 켜져 있음
 
func toggleLights() {
    lightsOn.toggle() // lightsOn의 값을 반전시킴
    if lightsOn {
        print("불이 켜졌어요!")
    } else {
        print("불이 꺼졌어요!")
    }
}
 
toggleLights() // "불이 꺼졌어요!" 출력
toggleLights() // "불이 켜졌어요!" 출력
swift

위 코드에서는 lightsOn이라는 Boolean 변수를 사용하여 전등의 상태를 나타내고 있어요. toggleLights() 함수를 호출할 때마다 lightsOn.toggle() 메서드가 호출되면서 lightsOn의 값이 반전되어요. 이 메서드는 Boolean 값을 간편하게 전환할 수 있게 해준답니다. 이렇게 toggle() 메서드를 활용하면 두 가지 상태를 오가는 기능을 더욱 간결하게 구현할 수 있죠.

Swift 5.7 버전부터는 ! 연산자를 사용하는 대신 toggle() 메서드를 사용하는 것이 권장된답니다. 이렇게 하면 코드의 가독성과 명확성이 향상되는 동시에, Boolean 값을 전환하려는 의도를 더욱 명시적으로 표현할 수 있어요.

Swift의 타입 안정성 덕분에 Boolean이 아닌 값이 Bool 대신 사용되는 것을 막아줍니다. 다음 예제를 보면 컴파일 타임 에러가 발생하는 걸 확인할 수 있어요.

let i = 1
if i {
    // 이 예제는 컴파일되지 않고 에러가 발생함
}
swift

하지만 아래와 같이 작성하면 유효한 코드가 됩니다.

let i = 1
if i == 1 {
    // 이 예제는 성공적으로 컴파일됨
}
swift

i == 1 비교의 결과는 Bool 타입이므로, 두 번째 예제는 타입 검사를 통과하게 되지요. i == 1과 같은 비교 연산에 대해서는 기본 연산자에서 더 자세히 설명하고 있답니다.

이처럼 Swift에서의 타입 안정성은 우연히 발생할 수 있는 에러를 방지하고, 코드의 특정 부분이 의도한 바를 명확히 하는 데 도움을 줍니다.

요약하자면:

  • Swift는 Bool이라는 기본 Boolean 타입을 제공함
  • truefalse라는 두 개의 Boolean 상수 값이 존재함
  • 타입 추론을 통해 변수나 상수의 타입 선언을 생략할 수 있음
  • if문 등의 조건문에서 Boolean 값을 효과적으로 활용 가능함
  • Boolean 값을 활용하여 토글과 같은 기능을 구현할 수 있음
  • toggle() 메서드를 사용하여 Boolean 값을 간편하게 전환할 수 있음
  • Swift의 타입 안정성은 Boolean이 아닌 값의 사용을 막아주고 코드의 명확성을 높여줌

Boolean 값을 적재적소에 활용한다면 더욱 가독성 높고 안정적인 Swift 코드를 작성할 수 있을 거예요! 꼭 실습을 통해 Boolean의 쓰임을 익혀보시길 바랍니다.

lecture image

위 다이어그램은 Boolean 값이 if문의 조건으로 사용되어 코드 실행 흐름을 결정하는 과정을 나타내고 있어요. Boolean의 진위 여부에 따라 서로 다른 코드 블록이 실행되는 모습을 확인할 수 있답니다.