Menu
Coddy logo textTech

Defensive Programming

Coddy C# 여정의 논리 및 흐름 섹션에 포함된 레슨 — 66개 중 34번째.

방어적 프로그래밍은 null 참조로 인한 오류를 방지하는 데 도움이 되는 기술입니다. 객체를 사용하기 전에 null 값을 확인하는 것을 포함합니다.

객체를 사용하기 전에 null을 확인하세요:

string name = GetNameFromSomewhere();

// Defensive check
if (name == null)
{
    // Handle the null case
    name = "Default Name";
}

// Now it's safe to use name
Console.WriteLine(name.ToUpper());

메서드에서 매개변수 검증:

public void ProcessOrder(Order order)
{
    // Defensive check for null parameter
    if (order == null)
    {
        Console.WriteLine("Error: Order cannot be null");
        return;
    }
    
    // Now safe to process the order
    Console.WriteLine("Processing order: " + order.Id);
}

더 깔끔한 null 확인을 위해 조건부 접근 연산자(?.)를 사용하세요:

Customer customer = GetCustomerFromSomewhere();

// Instead of:
// string city = null;
// if (customer != null && customer.Address != null)
// {
//     city = customer.Address.City;
// }

// Use this:
string city = customer?.Address?.City;
challenge icon

챌린지

쉬움

ProcessUserData라는 이름의 메서드를 생성하세요. 이 메서드는 문자열 매개변수 userData를 받습니다. 이 메서드는 다음을 수행해야 합니다:

  1. userData가 null인지 확인하세요 - 그렇다면 "Error: User data is null"을 출력하고 반환하세요.
  2. userData가 비어 있는지 확인하세요 - 그렇다면 "Error: User data is empty"을 출력하고 반환하세요.
  3. 데이터가 유효하다면 이를 대문자로 변환하고 "Processing: [UPPERCASE_DATA]"를 출력하세요.

치트 시트

방어적 프로그래밍은 객체를 사용하기 전에 null 값을 확인하여 오류를 방지합니다.

객체를 사용하기 전에 null을 확인하세요:

string name = GetNameFromSomewhere();

if (name == null)
{
    name = "Default Name";
}

Console.WriteLine(name.ToUpper());

메서드에서 매개변수를 검증하세요:

public void ProcessOrder(Order order)
{
    if (order == null)
    {
        Console.WriteLine("Error: Order cannot be null");
        return;
    }
    
    Console.WriteLine("Processing order: " + order.Id);
}

더 깔끔한 null 확인을 위해 조건부 접근 연산자 (?.)를 사용하세요:

Customer customer = GetCustomerFromSomewhere();
string city = customer?.Address?.City;

직접 해보기

using System;

class ProcessUserData
{
    public static void processUserData(string userData)
    {
        // 힌트: 문자열 "null"은 실제 null 값으로 처리해야 합니다
        
        // 여기에 코드를 작성하세요
    }
}
quiz icon실력 점검

이 레슨에는 짧은 퀴즈가 포함되어 있습니다. 레슨을 시작해 문제를 풀고 진행 상황을 기록하세요.

논리 및 흐름의 모든 레슨