0Pricing
Swift Academy · 강의

로깅, assert/precondition/fatalError

print/debugPrint 로 상태를 기록하고, 불변식에 대해 assert (디버그 전용), precondition (릴리스에서도 검사), fatalError (충돌) 중 적절한 것을 선택합니다.

로깅, assert/precondition/fatalError은(는) CoddyKit의 무료 Swift Academy 강의입니다. 이것은 2개 중 2번째 강의입니다. 아래에서 전체 강의를 무료로 읽을 수 있으며, 내장 코드 에디터와 24/7 AI 튜터와 함께 브라우저에서 직접 실습할 수 있습니다. 이 강의는 Swift Academy 학습 경로의 일부이며, 진행 상황이 웹과 CoddyKit 앱에 동기화됩니다. Swift Academy 강의에는 총 2개의 강의가 포함되어 있습니다.

진단 도구 모음

간단한 로그 기록으로 상태를 확인하고, 검증, 사전 조건, fatalError로 가정을 강제하십시오.

  • 검증: 디버그 전용 확인
  • 사전 조건: 릴리스에서도 확인
  • fatalError: 즉시 중지

간단한 로그 기록

출력은 읽기 쉽고, debugPrint는 더 자세한 정보를 보여 줍니다(디버깅할 때 유용합니다).

let user = ["name": "Ana", "role": "admin"]
print("User:", user)            // user-friendly
debugPrint("User:", user)       // includes type details when available

let point = (x: 3, y: 5)
print("Point:", point)
debugPrint("Point:", point)

검증(디버그 전용)

검증은 조건이 거짓일 때 디버그에서 프로그램을 중지하며, 최적화된 릴리스 빌드에서는 제거됩니다.

// Even numbers only (demo)
func half(of x: Int) -> Int {
    assert(x % 2 == 0, "Expected even number, got \(x)")
    return x / 2
}
print(half(of: 8))   // OK in Debug/Release
// In Debug, failing the assert would stop and print the message.
// In Release, assert checks are disabled by default.

사전 조건(릴리스에서도 확인)

사전 조건은 디버그 및 릴리스에서 중요한 요구 사항을 검증합니다. 절대로 발생해서는 안 되는 프로그래머 오류에 사용하십시오.

// Safe divide with required precondition
func safeDivide(_ a: Int, by b: Int) -> Int {
    precondition(b != 0, "Divider must be nonzero")
    return a / b
}
print(safeDivide(10, by: 2))    // 5
// If called with 0, precondition fails in Debug and Release.

fatalError(즉시 중지)

fatalError는 실행을 즉시 중지하고 메시지를 보고합니다. 개발 중 도달할 수 없는 코드 경로나 아직 구현하지 않은 기능에 사용하십시오.

enum FileKind { case text, binary }

func open(kind: FileKind) {
    switch kind {
    case .text:
        print("Open text mode")
    case .binary:
        print("Open binary mode")
    // If we ever add a new case and forget to handle it, we could use:
    // default: fatalError("Unsupported file kind")
    }
}
open(kind: .text)

무엇을 언제 사용할까요?

지침:

  • 빠른 로그에는 출력/debugPrint을 사용하고, 나중에 제거하거나 플래그로 제어하십시오.
  • 디버그 전용 개발자 확인에는 검증을 사용하십시오.
  • 요구 사항이 충족되지 않으면 어떤 빌드에서도 프로그램을 계속 실행해서는 안 될 때 사전 조건을 사용하십시오.
  • 도달할 수 없거나 구현되지 않은 경로에는 fatalError를 사용하십시오.

릴리스에서도 확인되는 진단

빠른 확인: 릴리스 빌드에서도 계속 확인되는 진단은 무엇입니까?

복습

복습: 출력/debugPrint으로 기록하고, 검증(디버그)과 사전 조건(릴리스에서도)으로 불변 조건을 보호하며, 정말 도달할 수 없는 상태에는 fatalError를 사용하십시오.

자주 묻는 질문

“로깅, assert/precondition/fatalError” 강의는 무료인가요?

네 — “로깅, assert/precondition/fatalError” 전체 내용을 이 웹사이트에서 무료로 읽을 수 있습니다. 인터랙티브하게 실습하려면(내장 코드 에디터와 24/7 AI 튜터), CoddyKit PRO로 업그레이드하면 Swift Academy 강의 전체를 잠금 해제할 수 있습니다. Swift Academy 강의에는 총 2개의 강의가 포함되어 있습니다.

“로깅, assert/precondition/fatalError”에서 뭘 배우나요?

print/debugPrint 로 상태를 기록하고, 불변식에 대해 assert (디버그 전용), precondition (릴리스에서도 검사), fatalError (충돌) 중 적절한 것을 선택합니다. 브라우저에서 직접 실행하는 실습 코드로 Swift Academy을(를) 배우며, 24/7 AI 튜터가 강의를 진행하면서 질문에 답변해줍니다.

Swift Academy을(를) 시작하는 데 경험이 필요한가요?

사전 경험은 필요하지 않습니다. CoddyKit의 Swift Academy은(는) 초급자부터 고급 학습자까지를 위해 구성되어 있으므로, 여기서 시작하거나 처음부터 시작할 수 있으며 자신의 속도대로 진행할 수 있습니다. 이것은 2개 중 2번째 강의입니다.

“로깅, assert/precondition/fatalError” 강의는 얼마나 걸리나요?

대부분의 CoddyKit 강의는 약 5~10분이 소요됩니다. 각 강의는 간결하고 인터랙티브하여 꾸준한 진행이 가능하며, 웹과 앱에서 중단한 부분부터 바로 시작할 수 있습니다.

이 Swift Academy 강의에서 코드를 작성하고 실행할 수 있나요?

네. 모든 Swift Academy 강의에는 내장 코드 에디터가 포함되어 있으므로, 브라우저에서 바로 실제 코드를 작성하고 실행한 후 즉시 AI 피드백을 받을 수 있습니다 — 로컬 설정이 필요 없습니다.

이 강의의 모든 강의

  1. XCTest 기초(대상, 픽스처)
  2. 로깅, assert/precondition/fatalError
← Swift Academy(으)로 돌아가기