Scala for Backend Engineering & Functional Programming · 강의

match 표현식

형태에 따라 분기합니다

레슨 1/413개 단계

match 표현식은(는) CoddyKit의 무료 Scala for Backend Engineering & Functional Programming 강의입니다. 이것은 4개 중 1번째 강의입니다. 아래에서 전체 강의를 무료로 읽을 수 있으며, 내장 코드 에디터와 24/7 AI 튜터와 함께 브라우저에서 직접 실습할 수 있습니다. 이 강의는 Scala for Backend Engineering & Functional Programming 학습 경로의 일부이며, 진행 상황이 웹과 CoddyKit 앱에 동기화됩니다. Scala for Backend Engineering & Functional Programming 강의에는 총 4개의 강의가 포함되어 있습니다.

match란?

match는 Scala의 강력한 분기 구문입니다. 값 하나와 여러 case 패턴을 지정하면, 일치하는 첫 번째 분기를 실행합니다.

더 강력하고 표현식 기반인 switch 문이라고 생각하시면 됩니다.

기본 문법

value match { case pattern => result }와 같이 작성합니다. 각 case는 패턴과 패턴이 일치할 때 실행할 코드를 정의합니다.

match는 표현식이므로 전체 결과가 값을 반환합니다.

object Main {
  def main(args: Array[String]): Unit = {
    val n = 2
    val word = n match {
      case 1 => "one"
      case 2 => "two"
      case 3 => "three"
    }
    println(word)
  }
}

와일드카드 케이스

밑줄 _은 무엇이든 일치하는 와일드카드입니다. 마지막에 모든 경우를 처리하는 기본값으로 사용합니다.

와일드카드가 없으면 일치하지 않는 값이 실행 중에 MatchError를 발생시킵니다.

object Main {
  def main(args: Array[String]): Unit = {
    val n = 9
    val word = n match {
      case 1 => "one"
      case 2 => "two"
      case _ => "many"
    }
    println(word)
  }
}

문자열 일치시키기

패턴은 숫자에만 사용할 수 있는 것이 아닙니다. 문자열 리터럴과 직접 일치시킬 수도 있습니다.

object Main {
  def main(args: Array[String]): Unit = {
    val cmd = "start"
    val msg = cmd match {
      case "start" => "Starting up"
      case "stop"  => "Shutting down"
      case _       => "Unknown command"
    }
    println(msg)
  }
}

match는 값을 반환합니다

각 분기가 값을 생성하므로 match의 결과를 val에 할당하거나 코드 안에서 바로 사용할 수 있습니다.

이렇게 하면 코드가 깔끔해지고 변경 가능한 변수를 사용하지 않아도 됩니다.

object Main {
  def main(args: Array[String]): Unit = {
    val light = "red"
    println(s"Action: " + (light match {
      case "red"   => "stop"
      case "green" => "go"
      case _       => "caution"
    }))
  }
}

케이스 결합하기

|(파이프)를 사용하면 하나의 케이스에서 여러 값과 일치시킬 수 있습니다. 나열된 모든 값이 같은 분기로 이어집니다.

object Main {
  def main(args: Array[String]): Unit = {
    val day = "Sat"
    val kind = day match {
      case "Sat" | "Sun" => "weekend"
      case _             => "weekday"
    }
    println(kind)
  }
}

함수에서 match 사용하기

함수 본문 전체를 하나의 match 표현식으로 작성하는 방식이 자주 사용됩니다. 일치한 결과가 반환값이 됩니다.

object Main {
  def describe(n: Int): String = n match {
    case 0 => "zero"
    case 1 => "one"
    case _ => "other"
  }
  def main(args: Array[String]): Unit = {
    println(describe(0))
    println(describe(5))
  }
}

전체 값 바인딩하기

case other =>를 사용하면 와일드카드 케이스에서 일치한 값을 이름에 바인딩할 수 있습니다. 그러면 해당 분기에서 other를 사용할 수 있습니다.

object Main {
  def main(args: Array[String]): Unit = {
    val n = 42
    val result = n match {
      case 0     => "nothing"
      case other => s"got $other"
    }
    println(result)
  }
}

순서가 중요합니다

케이스는 위에서 아래로 검사되며, 첫 번째로 일치하는 케이스가 선택됩니다. 더 구체적인 패턴을 일반적인 패턴보다 앞에 배치하세요.

와일드카드를 너무 앞에 배치하면 그 아래의 케이스가 가려집니다.

object Main {
  def main(args: Array[String]): Unit = {
    val n = 1
    val msg = n match {
      case 1 => "specific one"
      case _ => "anything else"
    }
    println(msg)
  }
}

match를 사용하는 이유

패턴 일치는 다음과 같은 이유로 Scala의 핵심 기능입니다.

  • 여러 갈래의 분기를 명확하게 읽을 수 있습니다
  • 표현식으로서 값을 반환합니다
  • 형식, 데이터 구조, 가드로 확장할 수 있습니다
  • 컴파일러가 모든 경우를 빠짐없이 처리했는지 확인할 수 있습니다

종합하기

리터럴, 결합한 케이스, 기본값을 사용하는 간단한 분류기입니다.

object Main {
  def grade(score: Int): String = score match {
    case 10 | 9 => "excellent"
    case 8 | 7  => "good"
    case _      => "keep trying"
  }
  def main(args: Array[String]): Unit = {
    println(grade(9))
    println(grade(7))
    println(grade(3))
  }
}

빠른 확인

match 표현식에 대한 이해도를 확인해 보세요.

복습

match의 기본 사항을 배웠습니다.

  • 문법은 value match { case pattern => result }입니다
  • _는 모든 경우를 처리하는 와일드카드입니다
  • |로 여러 값을 결합합니다
  • match는 값을 반환하는 표현식입니다
  • 케이스는 위에서 아래로 시도되며, 첫 번째 일치가 선택됩니다
무료로 시작

AI 튜터와 함께 Scala을(를) 배우세요 — 무료

브라우저에서 실제 코드를 작성하고 실행하며, 24/7 AI 튜터로부터 즉각적인 도움을 받고, 웹이나 앱에서 중단한 부분부터 계속 학습하세요.

코스
39
레슨
143

자주 묻는 질문

“match 표현식” 강의는 무료인가요?

네 — “match 표현식” 전체 내용을 이 웹사이트에서 무료로 읽을 수 있습니다. 인터랙티브하게 실습하려면(내장 코드 에디터와 24/7 AI 튜터), CoddyKit PRO로 업그레이드하면 Scala for Backend Engineering & Functional Programming 강의 전체를 잠금 해제할 수 있습니다. Scala for Backend Engineering & Functional Programming 강의에는 총 4개의 강의가 포함되어 있습니다.

“match 표현식”에서 뭘 배우나요?

형태에 따라 분기합니다 브라우저에서 직접 실행하는 실습 코드로 Scala for Backend Engineering & Functional Programming을(를) 배우며, 24/7 AI 튜터가 강의를 진행하면서 질문에 답변해줍니다.

Scala for Backend Engineering & Functional Programming을(를) 시작하는 데 경험이 필요한가요?

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

“match 표현식” 강의는 얼마나 걸리나요?

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

이 Scala for Backend Engineering & Functional Programming 강의에서 코드를 작성하고 실행할 수 있나요?

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

이 강의의 모든 강의

  1. match 표현식
  2. 타입과 값 매칭
  3. 가드와 바인딩
  4. 구조 분해
← Scala for Backend Engineering & Functional Programming(으)로 돌아가기