SW 설계/스칼라 5

스칼라: implicit 사용법 응용

지난 블로그에서는implicit의 기본적인 사용 방법을 알아보았습니다. 이번에는 좀더 구체적인 예를 가지고, 활용하는 방법을 알아보도록 하겠습니다. 예 3. 암시형 인자 앞서 보여준 예 2와 비슷하게, 자주 사용되는 hash tag를 문자열 앞에 추가하는 함수를 만들어보겠습니다. scala> class HashTag(val s: String) defined class HashTag scala> def addHashTag(s: String)(implicit p: HashTag) = p.s + s addHashTag: (s: String)(implicit p: HashTag)String scala> addHashTag("scala") :15: error: could not find implicit value..

SW 설계/스칼라 2021.10.27

스칼라: implicit 기본 사용법

implicit는 boilerplate 코드를 줄여서, 코드의 가독성을 높이는데 자주 사용됩니다. Boilerplate 코드란 별 수정 없이 많은 곳에서 반복적으로 사용되는 코드를 의미합니다. Scala에서는 이러한 코드들을 implicit 키워드를 사용하여 생략하고 코드를 줄여줍니다. 사전적 의미로 implicit 는 암시적인이란 뜻이므로, 구체적으로 명시하지 않고 사용한다는 것을 의미합니다. 보통 자동 형 변환이나 늘 사용하는 인자를 전달하는 용도로 사용됩니다. 장점은 함수들에서 자주 사용되는 인자들을 implicit로 선언하면, 생략할 수 있지만, 단점은 문법이 복잡해져, 숙달되지 않은 사람들에게는 어렵게 느끼질 수 도 있습니다. 간단하게는, 인자에 implicit 가 있으면, 늘 사용되므로 미리 ..

SW 설계/스칼라 2021.10.27

스칼라: Mixins

오늘은 Scala Mixin에 대한 내용을 소개해보려고 합니다. Mixin은 클래스들을 합치는 데 사용되는 trait (속성) 으로서, DRY 한 Scala언어가 되는데 크게 일조하고 있습니다. 소개 가장 쉽게, 혹은 흔하게 사용하는 mixin방법은 4 단계로 진행됩니다. Step 1: 가장 먼저 super class A를 abstract class로 선언합니다. Step 2: 이를 상속한 하위 클래스 B를 일반 클래스로 정의합니다. 이를 위해 부모 클래스인 abstract class에서 선언한 abstract형들을 명시합니다. Step 3: Super class A에 대한 method들을 포함하는 trait C를 정의합니다. Step 4: 최종적으로 사용할 일반 클래스 D는 일반 클래스 B를 상속하고,..

SW 설계/스칼라 2021.10.09

스칼라: Sealed, Final, Option, Try 클래스

Sealed sealed가 붙은 class는 선언된 파일 안에서만 상속이 가능합니다. sealed 의 자식은 sealed 가 아니므로, 주로 final 과 함께 사용됩니다. sealed의 한 예로, Option은 Some, None의 두 개의 자식이 존재하고, Try는 Success와 Failure의 두개의 자식이 존재합니다. 둘은, sealed로 선언되어 있으므로, 같은 파일 내에서 선언한 Some, None과 Success, Failure만 Option과 Try의 자식이 될 수 있습니다. 또한 이들은 상속할 수 없는 final case class나 object로 선언하여 추가 상속을 막고 있습니다. sealed abstract class Option[+A] extends Product with Ser..

SW 설계/스칼라 2021.09.25

스칼라: 부분적용함수 (Partially Applied Function), 부분함수 (Partial Function) 그리고 Case

오늘은 소개할 내용은 부분적용함수, 부분함수, 그리고 case 문입니다. 스칼라에서 case는 =>처럼 다양한 용도로 사용됩니다. 스칼라에서 =>은 다양한 의미를 갖지만, 모두 수학적 의미가 있습니다. 스칼라에서 case도 다양한 의미로 사용되지만, 패턴 매칭의 의미가 있습니다. partial function vs partially applied function partial function과 partially applied function은 다릅니다. partially applied function (부분 적용 함수)는 Don't Repeat Yourself (DRY)를 잘 따르는 코딩 방식중 하나로, 함수 및 코드 간략화를 위한 방법입니다. 함수의 일부인자가 고정된 값으로 주로 사용되는 경우, 그 인..

SW 설계/스칼라 2021.09.25