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

의미 있는 들여쓰기

중괄호를 선택적으로 사용하는 방법을 알아봅니다

의미 있는 들여쓰기은(는) 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개의 강의가 포함되어 있습니다.

선택적 중괄호

Scala 3에는 유의미한 들여쓰기가 도입되었습니다. 이를 선택적 중괄호 구문이라고도 합니다. 블록을 { }로 감싸는 대신 들여쓰기로 블록의 범위를 나타낼 수 있습니다.

  • 중괄호는 여전히 사용할 수 있으며 완전히 유효합니다.
  • 들여쓰기 기반 코드는 더 깔끔하고 Python과 비슷합니다.
object Main:
  def main(args: Array[String]): Unit =
    println("No braces needed")

들여쓴 메서드 본문

= 뒤에 오는 메서드 본문은 들여쓴 블록으로 작성할 수 있습니다. 같은 들여쓰기 수준에 있는 모든 문은 해당 본문에 속합니다.

마지막 표현식이 반환값입니다.

object Main:
  def square(x: Int): Int =
    val result = x * x
    result

  def main(args: Array[String]): Unit =
    println(square(5))

들여쓴 if 표현식

제어 구조는 새로운 간결한 구문을 사용합니다. if cond then 뒤에서 분기를 들여쓰고, else는 if와 같은 위치에 맞춥니다.

  • 중괄호가 없는 형식에서는 then이 필요합니다.
  • 조건을 괄호로 감쌀 필요가 없습니다.
object Main:
  def main(args: Array[String]): Unit =
    val n = 7
    val label =
      if n % 2 == 0 then "even"
      else "odd"
    println(label)

들여쓴 for 반복문

for 반복문은 부수 효과를 위해 do를 사용하고, 컬렉션을 만들기 위해 yield를 사용합니다. 두 경우 모두 들여쓰기를 사용합니다.

object Main:
  def main(args: Array[String]): Unit =
    for i <- 1 to 3 do
      println(s"line $i")

    val doubled =
      for i <- 1 to 3 yield i * 2
    println(doubled)

들여쓴 while 반복문

while 반복문은 선택적 중괄호 형식에서 do 뒤에 들여쓴 블록을 사용합니다.

object Main:
  def main(args: Array[String]): Unit =
    var i = 0
    while i < 3 do
      println(s"i = $i")
      i += 1

들여쓴 match 표현식

패턴 매칭은 자연스럽게 들여쓰기를 활용할 수 있습니다. case 절은 match 아래에 들여씁니다.

object Main:
  def describe(n: Int): String =
    n match
      case 0 => "zero"
      case 1 => "one"
      case _ => "many"

  def main(args: Array[String]): Unit =
    println(describe(1))
    println(describe(9))

클래스와 트레이트 본문

클래스, 트레이트, 객체에서도 중괄호를 생략할 수 있습니다. 헤더 뒤의 콜론 :이 들여쓴 본문을 시작합니다.

class Point(x: Int, y: Int):
  def show: String = s"($x, $y)"

object Main:
  def main(args: Array[String]): Unit =
    println(Point(2, 3).show)

end 표시자

긴 들여쓰기 블록에서는 정의가 끝나는 위치를 명확히 하기 위해 end 표시자를 추가할 수 있습니다. 긴 메서드나 클래스의 가독성이 좋아집니다.

  • 형식: end <name> 또는 end if, end while 등
  • 선택 사항이며 컴파일러가 올바른 사용 여부를 검사합니다.
object Main:
  def greet(name: String): String =
    val msg = s"Hello, $name"
    msg
  end greet

  def main(args: Array[String]): Unit =
    println(greet("Ada"))
  end main
end Main

중괄호와 들여쓰기 혼용

두 스타일을 자유롭게 혼용할 수 있습니다. 일부 팀은 중첩된 경우 명확성을 위해 중괄호를 유지합니다. 들여쓰기 규칙은 중괄호가 없는 곳에서만 적용됩니다.

object Main:
  def main(args: Array[String]): Unit = {
    val xs = List(1, 2, 3)
    val total =
      xs.foldLeft(0)((acc, x) => acc + x)
    println(total)
  }

흔한 들여쓰기 실수

들여쓰기는 의미를 가지므로 일관되게 사용해야 합니다.

  • 탭과 공백을 섞지 말고 공백을 사용하세요.
  • 줄의 들여쓰기가 어긋나면 블록 밖으로 조용히 빠질 수 있습니다.
  • 템플릿 본문(클래스/객체)에는 콜론 :이 필요하지만, = 뒤의 메서드 본문에는 필요하지 않습니다.
object Main:
  def main(args: Array[String]): Unit =
    val items = List("a", "b")
    items.foreach: item =>
      println(item.toUpperCase)

더 적은 중괄호로 작성하는 인수 구문

Scala 3에서는 콜론 뒤에 블록 인수를 전달할 수도 있습니다. items.foreach: x =>는 들여쓴 람다 본문을 시작하므로 중첩된 괄호와 중괄호를 피할 수 있습니다.

object Main:
  def main(args: Array[String]): Unit =
    val nums = List(1, 2, 3, 4)
    val evens = nums.filter: n =>
      n % 2 == 0
    println(evens)

빠른 확인

유의미한 들여쓰기에 대한 이해도를 확인해 보세요.

복습

Scala 3의 유의미한 들여쓰기를 배웠습니다.

  • 블록에는 { } 대신 들여쓰기를 사용할 수 있습니다.
  • 제어 구조에는 then, do, yield를 사용합니다.
  • 클래스/객체/트레이트 본문은 콜론 :으로 시작합니다.
  • end 표시자는 긴 블록을 명확하게 합니다.
  • 두 스타일을 혼용할 수 있지만 공백 사용을 일관되게 유지해야 합니다.
object Main:
  def main(args: Array[String]): Unit =
    for i <- 1 to 2 do
      if i == 1 then println("first")
      else println("second")
  end main
end Main

자주 묻는 질문

“의미 있는 들여쓰기” 강의는 무료인가요?

네 — “의미 있는 들여쓰기” 전체 내용을 이 웹사이트에서 무료로 읽을 수 있습니다. 인터랙티브하게 실습하려면(내장 코드 에디터와 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개 중 1번째 강의입니다.

“의미 있는 들여쓰기” 강의는 얼마나 걸리나요?

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

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

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

이 강의의 모든 강의

  1. 의미 있는 들여쓰기
  2. Scala 3의 열거형
  3. 불투명 타입
  4. 합집합 타입과 교집합 타입
← Scala for Backend Engineering & Functional Programming(으)로 돌아가기