0Pricing
Scala for Backend Engineering & Functional Programming · 강의

문보다 표현식

모든 것이 표현식입니다

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

표현식과 문

문은 작업을 수행하지만 유용한 값을 반환하지 않습니다. 표현식은 평가되어 값이 됩니다.

Scala에서는 거의 모든 것이 표현식입니다. 이는 코드를 작성하는 방식에 큰 영향을 주는 핵심 개념입니다.

if는 표현식입니다

많은 언어에서 if는 문입니다. 하지만 Scala에서 if/else는 값을 반환하므로 val에 직접 할당할 수 있습니다.

각 분기에서 별도의 변수에 값을 할당할 필요가 없습니다.

object Main {
  def main(args: Array[String]): Unit = {
    val temp = 30
    val label = if (temp > 25) "hot" else "mild"
    println(label)
  }
}

블록도 표현식입니다

{ ... } 블록도 표현식입니다. 블록의 값은 마지막 줄의 값입니다.

따라서 중간 값을 계산한 뒤 마지막에 결과를 배치할 수 있습니다.

object Main {
  def main(args: Array[String]): Unit = {
    val result = {
      val a = 2
      val b = 3
      a * b
    }
    println(result)
  }
}

match는 표현식입니다

match를 사용한 패턴 매칭도 값을 반환합니다. 각 분기는 결과를 생성하고, 전체 표현식은 일치한 분기의 값을 결과로 냅니다.

object Main {
  def main(args: Array[String]): Unit = {
    val day = 3
    val name = day match {
      case 1 => "Mon"
      case 2 => "Tue"
      case 3 => "Wed"
      case _ => "Other"
    }
    println(name)
  }
}

Unit 형식

println처럼 부수 효과만을 위해 존재하는 표현식도 있습니다. 이러한 표현식은 ()으로 작성하는 Unit을 반환합니다.

Unit은 다른 언어의 void와 비슷하지만 실제 값으로 취급됩니다.

object Main {
  def main(args: Array[String]): Unit = {
    val nothing: Unit = println("side effect")
    println(nothing)
  }
}

함수에서 반환하기

함수 본문은 표현식이므로 마지막 표현식이 반환값이 됩니다. 따라서 return 키워드가 필요한 경우는 드뭅니다.

여기서 함수 본문은 하나의 표현식입니다.

object Main {
  def max(a: Int, b: Int): Int = if (a > b) a else b
  def main(args: Array[String]): Unit = {
    println(max(7, 4))
  }
}

표현식 중심 함수

함수는 마지막 줄이 결과가 되는 블록 표현식일 수 있습니다. 이렇게 하면 로직을 간결하게 유지하고 변경 가능한 임시 값을 사용하지 않아도 됩니다.

object Main {
  def discount(price: Double): Double = {
    val rate = if (price > 100) 0.2 else 0.1
    price * (1 - rate)
  }
  def main(args: Array[String]): Unit = {
    println(discount(150.0))
  }
}

변경할 필요 없음

if와 match가 표현식이므로 결과를 var에 변경해 저장하는 대신 val에 할당할 수 있습니다.

이렇게 하면 더 깔끔하고 함수형에 가까운 코드가 됩니다.

object Main {
  def main(args: Array[String]): Unit = {
    val score = 85
    val grade = if (score >= 90) "A"
      else if (score >= 80) "B"
      else "C"
    println(grade)
  }
}

표현식 구성하기

모든 것이 값을 반환하므로 표현식을 자유롭게 중첩하고 구성할 수 있습니다. 한 표현식의 출력이 다른 표현식의 입력이 됩니다.

이러한 구성 가능성은 Scala가 표현력이 풍부하게 느껴지는 큰 이유입니다.

object Main {
  def main(args: Array[String]): Unit = {
    val n = 7
    val message = "n is " + (if (n % 2 == 0) "even" else "odd")
    println(message)
  }
}

중요한 이유

표현식 중심 코드는 다음과 같은 장점이 있습니다.

  • 변경 가능한 변수의 필요성을 줄입니다
  • 값의 흐름을 명확하게 보여 줍니다
  • 더 큰 프로그램으로 자연스럽게 구성됩니다
  • 변경 불가능성과 잘 어울립니다

모두 함께

여기서는 블록 표현식 안에 if 표현식을 넣고, 그 전체를 하나의 변경 불가능한 결과에 할당합니다.

object Main {
  def main(args: Array[String]): Unit = {
    val total = {
      val items = 3
      val each = 12
      val raw = items * each
      if (raw > 30) raw - 5 else raw
    }
    println(total)
  }
}

빠른 확인

표현식에 대한 이해도를 확인해 보십시오.

복습

Scala에서는 거의 모든 것이 표현식이라는 것을 배웠습니다.

  • if/else, match, 블록은 모두 값을 반환합니다
  • 블록의 값은 마지막 표현식의 값입니다
  • 부수 효과가 있는 표현식은 Unit(())을 반환합니다
  • 함수의 마지막 표현식이 반환값이 됩니다
  • 이 방식은 변경을 줄이고 구성 가능성을 높입니다

자주 묻는 질문

“문보다 표현식” 강의는 무료인가요?

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

“문보다 표현식”에서 뭘 배우나요?

모든 것이 표현식입니다 브라우저에서 직접 실행하는 실습 코드로 Scala for Backend Engineering & Functional Programming을(를) 배우며, 24/7 AI 튜터가 강의를 진행하면서 질문에 답변해줍니다.

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

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

“문보다 표현식” 강의는 얼마나 걸리나요?

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

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

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

이 강의의 모든 강의

  1. REPL 사용
  2. val, var와 타입
  3. 문보다 표현식
  4. 문자열 보간
← Scala for Backend Engineering & Functional Programming(으)로 돌아가기