Both sides previous revisionPrevious revisionNext revision | Previous revision |
language:scala [2021/02/01 19:18] – old revision restored (2021/02/01 18:14) ledyx | language:scala [2021/03/24 08:18] (current) – [Command Line] 프로젝트 생성/배포 내용 보강 ledyx |
---|
https://www.scala-lang.org/download/ | https://www.scala-lang.org/download/ |
| |
* SBT (Scala Build Tools) | === SBT (Scala Build Tools) === |
Scala의 Ant/Maven/Gradle와 비교될 수 있음. 직접으로 프로젝트 생성, 배포 관여. | Scala의 Ant/Maven/Gradle와 비교될 수 있음. 직접으로 프로젝트 생성, 배포 관여. |
| |
| ==== Create templates ==== |
| |
| https://www.scala-sbt.org/1.x/docs/sbt-new-and-Templates.html |
| |
<sxh shell> | <sxh shell> |
# 생성 | sbt new scala/scala-seed.g8 |
sbt [Project Name] | </sxh> |
| |
| |
| ==== Fat Jar ==== |
| |
| https://github.com/sbt/sbt-assembly |
| |
| <sxh shell> |
# Build (Fat Jar 생성) | # Build (Fat Jar 생성) |
## build.sbt에 | ## build.sbt에 |
## addSbtPlugin("com.eed3si9n" % "sbt-assembly" % "0.14.6") | ## addSbtPlugin("com.eed3si9n" % "sbt-assembly" % "0.15.6") |
## 추가 필요 | ## 추가 필요 |
### 생성된 jar 위치 : target/scala-[version]/*.jar | ### 생성된 jar 위치 : target/scala-[version]/*.jar |
sbt assemblyty | sbt assembly |
| |
</sxh> | </sxh> |
| |
| |
* Scala Binaries (선택 사항) | |
| === Scala Binaries (선택 사항) === |
* REPL(scala), 단독 Compile(scalac)을 이용하기 위해 필요 | * REPL(scala), 단독 Compile(scalac)을 이용하기 위해 필요 |
| |
==== Companion object ==== | ==== Companion object ==== |
| |
어떤 class **이름**이 같은 object. 그 피대상인 class는 "Companion class"라고 한다. Companion object와 [[language:scala#'apply' Method|'apply' Method]]를 이용하여 Companion class의 <fc red>**__"Factory Pattern"__**</fc>을 적용할 때 사용. | 어떤 class **이름**이 같은 object. 그 피대상인 class는 "Companion class"라고 한다. Companion object와 [[language:scala#'apply' Method|'apply' Method]]를 이용하여 Companion class의 [[design_pattern:factory_method_pattern|Factory Pattern]] 을 적용할 때 사용. |
이 때, object의 field들이 "private"으로 선언되어 있더라도 접근 가능. | 이 때, object의 field들이 "private"으로 선언되어 있더라도 접근 가능. |
| |