반응형
✅ 1. FutureFuture는 "미래에 완료될 값"을 나타내는 객체로 비동기적으로 수행하며, 그 결과(success of fail)을 담습니다.import scala.concurrent.Futureimport scala.util.{Success, Failure}import scala.concurrent.ExecutionContext.Implicits.globalobject FutureExample extends App { val f: Future[Int] = Future { // 시간이 걸리는 작업 (ex. 네트워크 요청) Thread.sleep(1000) 42 } // 결과 처리 f.onComplete { case Success(value) => ..
📙 1. 기본 try / catch / finallyScala에서는 try문도 표현식(Expression)이며 try를 사용해 값을 반환할 수 있습니다. import java.nio.file.{Files, Paths}import java.nio.charset.StandardCharsetsobject TryCatchFinallyExample { def main(args: Array[String]): Unit = { val outputPath = Paths.get("output.txt"); // 한글 출력 파일 val sb = new StringBuilder() try { val num = "123a".toInt // NumberFormatExcep..
✅ 1. 패턴 매칭 (Pattern Matching)패턴 매칭은 switch문 보다 더욱 강력한 분기 처리 문법으로 값 비교뿐만 아닌 타입,구조,조건까지 매칭할 수 있습니다.package patterncaseobject PatternMAtchingExample { def main(args: Array[String]): Unit = { val x: Any = 42 x match { case 0 => println("Zero") case i:Int if i > 0 => println(s"Positive Int: $i") // 타입 + 조건 case s:String => println(s"String: $s") // 타입 매칭 case _ => println("Somethi..
✅ 1. 클래스와 객체클래스(class): 객체를 만들기 위한 설계도객체(object): 클래스로부터 생성된 인스턴스class Person(val name: String, val age: Int) { def greet(): Unit = { println(s"Hello, my name is $name and I am $age years old.") }}object ClassObject extends App { val p = new Person("Charlie", 30) p.greet()}✅ 2. 생성자와 필드클래스 파라미터가 기본 생성자 역할이며 val을 붙이면 읽기 전용, var을 붙이면 수정 가능한 필드 보조 생성자는 def this(...)로 정의 가능합니다.clas..
✅ 1. 변수 선언Scala에서 val(불변 변수)과 var(가변 변수)를 사용해 변수를 선언하고 기본적으로 val을 쓰는 것을 권장합니다.object Variable { def main(args: Array[String]): Unit = { val x: Int = 10 // 불변 변수 (변경 불가) var y: Int = 20 // 가변 변수 (변경 가능) y = 30 // O // x = 40 // X (컴파일 오류) println(s"x: $x, y: $y"); }} 자료형은 생략이 가능합니다.var name = "Alice"; // 가변 변수 var age = 25; // 가변 변수✅ 2. 기본 자료형 스칼라는 자..
✅ 1. Scala 란?Scala(스칼라)는 "Scalable Language"의 줄임말로, 객체지향 프로그래밍과 함수형 프로그래밍을 모두 지원하는 JVM 기반의 프로그래밍 언어로, 자바 가상 머신(JVM) 위에서 실행되어 자바(Java) 언어와 상호 운용이 가능합니다. Scala의 주요 특징으로는 아래와 같습니다. JVM 위에서 동작Java와 100% 호환됨 (Java 코드 사용 가능, 라이브러리 호출 가능)간결하고 표현령이 풍부한 코드val(불변) 또는 var(가변)을 사용하여 변수를 정의타입추론 기능으로 코드가 간결해짐, 세미콜론 생략가능 강력한 타입 시스템Java보다 코드가 짧고 깔끔하며 세미콜론 생략가능 간단한 표현식으로 많은 작업 수행 가능 패턴 매칭 switch-case보다 훨씬 강력하고 유..