Scala에서 object는 특별한 의미를 갖는 예약어로, 주로 싱글톤 객체(Singleton Object)를 정의할 때 사용됩니다. Python과 비교하면 object는 전역적으로 하나만 존재하는 객체를 정의하는 방법이라고 할 수 있습니다.
object의 주요 특징:object로 정의된 클래스는 해당 객체의 유일한 인스턴스를 갖습니다. 즉, 다른 곳에서 해당 객체를 사용할 때는 항상 동일한 인스턴스가 사용됩니다.class와 달리 object로 정의된 것은 생성자가 없으며, 인스턴스를 따로 만들 필요 없이 바로 사용할 수 있습니다.object를 많이 사용합니다. 예를 들어 main 메서드를 포함하는 object가 실행 시 진입점이 됩니다.object MySingleton {
  def greet(name: String): String = s"Hello, $name"
}
위의 MySingleton은 싱글톤 객체로, 언제든지 MySingleton.greet("Scala")처럼 접근할 수 있습니다. 새로 인스턴스를 생성할 필요가 없죠.
object Main {
  def main(args: Array[String]): Unit = {
    println("Hello, Scala!")
  }
}
Scala에서는 main 메서드가 포함된 object가 프로그램 실행 시 시작점이 됩니다. Python의 if __name__ == "__main__": 부분과 비슷한 역할을 합니다.