문보다 표현식
모든 것이 표현식입니다
문보다 표현식은(는) 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 피드백을 받을 수 있습니다 — 로컬 설정이 필요 없습니다.
이 강의의 모든 강의
- REPL 사용
- val, var와 타입
- 문보다 표현식
- 문자열 보간