일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | ||||||
2 | 3 | 4 | 5 | 6 | 7 | 8 |
9 | 10 | 11 | 12 | 13 | 14 | 15 |
16 | 17 | 18 | 19 | 20 | 21 | 22 |
23 | 24 | 25 | 26 | 27 | 28 |
- Actor
- Play2
- akka 강좌
- 안드로이드 웹뷰
- Golang
- hyperledger fabric
- 파이썬 머신러닝
- 플레이프레임워크
- 파이썬 동시성
- Adapter 패턴
- 이더리움
- 하이퍼레저 패브릭
- 엔터프라이즈 블록체인
- 블록체인
- 스칼라 강좌
- Play2 로 웹 개발
- play2 강좌
- 그라파나
- 하이브리드앱
- 파이썬 데이터분석
- 주키퍼
- play 강좌
- Hyperledger fabric gossip protocol
- 파이썬
- 파이썬 강좌
- 스위프트
- Akka
- 스칼라
- 스칼라 동시성
- CORDA
- Today
- Total
HAMA 블로그
- Scala 2.11 기반 - Akka 2.4.11 기반 - Learning Concurrent Programming in Scala 참고 부모 액터 class ParentActor extends Actor { val log = Logging(context.system, this) def receive = { case "create" => context.actorOf(Props[ChildActor]) log.info(s"created a new child - children = ${context.children}") case "hi" => log.info("Kids, say hi!") for (c log.info("parent stopping") context.stop(self) } } - "creat..
- Scala 2.11 기반 - Akka 2.4.11 기반 - Learning Concurrent Programming in Scala 참고 생성 (Hello Akka)import akka.actor.{ ActorRef, ActorSystem, Props, Actor } import akka.event.Logging // 나의 액터 클래스 class Hello(val hello: String) extends Actor { val log = Logging(context.system, this) def receive = { case `hello` => // 받은 메세지가 'hello' 라면 log.info(s"Received a $hello!") case msg => // 받은 메세지가 아무것이라면 log...
- Scala 2.11 기반 (2.13.1의 짝은 아래 2.6.3 입니다.) - Akka 2.4.11 기반 (2.6.3)환경 설치 및 프로젝트 만들기 우리는 윈도우 환경에서 IntelliJ IDE 를 이용하여 AKKA 개발을 할 것입니다. 언어는 SCALA 를 사용~ Activator 를 이용한 방식도 일반적인데 그건 다른 블로그글을 참고하세요~ Activator , Play2 세팅 1. JDK 1.8 버전 설치 Akka 를 하기 위해서 미리 깔려져 있어야 할것은 단지 JDK 1.8 뿐입니다. jdk 1.8 설치하기 scala 나 Sbt 를 위한 것 들은 IntelliJ 에서 자체 제공합니다. (플러그인 다운로드) 2. IntelliJ 설치 처음 시작 하려면 무조건 IntelliJ 씁시다. 편하니깐~ (..
- Scala 2.11 기반 - Akka 2.4.11 기반 Activator UI 이용하기1. activator ui 를 띄운후 tutorials 에서 akka 로 필터링한 후에 원하는 akka 기술 예제를 선택한다. 2. 선택한 프로젝트를 만든다. 3. 만든 프로젝트의 소스를 관찰하고 실행시켜서 확인한다. 소스 이용하기 1. akka 프로젝트에 가서 https://github.com/akka/akka 2. zip 으로 다운로드 받아서 3. 압축을 푼 후에 IntelliJ 에서 Sbt 로 임포트한다. 4. Scala SDK 셋업5. akk-samples 가서 테스트 (akka-sample-main-scala 로 가면 HelloWorld 있음)파일 우측 클릭해서 Run main2 클릭
Partially applied function 과 Partial function 먼저 아래 링크 참고 하세요. (아웃사이더님이 번역하신 글이 있습니다)https://blog.outsider.ne.kr/953 아마 저 글을 읽어도 Partial function에 관해 조금 헤깔리실텐데요. 간략하게 다시 설명해 드리겠습니다. 함수란 모든 x 에 대해서 y 라고 할때 부분 함수란 일부 x 에 대해서 y 인 함수를 말 합니다. 즉 제한을 둔겁니다.예를들어function A (int x ) { return x * x } 라는 함수에 대해서 아래 함수는 부분함수입니다. function A' (int x) { if x > 10 return x * x }모든 것을 처리하지 않고 싶을 때 부분 함수를 만들게 됩니다. ..
언더스코어 _ 는 스칼라에서 어떻게 사용되나? 1. Import import scala.concurrent._import 에서 _ 는 모든을 뜻한다. 자바에서 * 2. 디폴트 초기화 class Foo { var i : Int = _ // i = 0 var s: String = _ // s = null }Int 는 0 으로 초기화 되고 String 을 대입하면 null 로 초기화 됩니다. 3. 고계 함수에서 익명 파라미터 ( 1 to 10) map { _ + 1 } 4. 부분 함수에서 익명 파라미터좀 더 정확히 얘기하면 partially applied function. partial function 과 구분된다. 바로가기 def f(i : Int) : String = i.toString def g = (x..
Akka 시작하기 Akka를 광고하자면처리율(throughput) 임백준님의 Akka 시작하기에서 발췌 아카를 이용한 리팩토링을 끝마쳤을 때, 똑같은 컴퓨터 위에서 전과 동일한 몬테 카를로 시나리오를 수행하는데 걸리는 시간이 6시간에서 2시간으로 단축되었다. 66%의 시간이 절약된 것이다. 결과를 확인한 사람들은 깜짝 놀랐다. 단순히 자바 스레드에서 아카로 라이브러리를 바꾸었을 뿐인데 그렇게 엄청난 차이가 있을 수 있냐며 고개를 갸웃거렸다. 물론 이런 차이를 일반화할 수는 없다. 이런 결과 하나를 가지고 아카가 자바 스레 드보다 3배 빠르다고 말하는 어리석은 사람은 없을 것이다. 아카도 내부적으로 자 1 아카에 대하여 - 017 바 스레드를 사용하기 때문에 그런 비교 자체가 성립하지 않는다. 하지만 일반..
Null 과 친구들 Null – Trait 이다. 모든 참조 타입(AnyRef를 상속한 모든 클래스) 의 서브클래스이다. 값 타입과는 호환성이 없다. null – Null 의 인스턴스이고 자바의 null 가 비슷. val i : Int = null; 불가능 (값 타입과 호환성 없다) Nothing - Trait 이며 모든것들의 서브타입이다.기술적으로 예외는 Nothing 타입을 갖는다. 이 타입은 값이 존재하지 않는다. 값에 대입이 가능하다. 즉 리턴타입이 Int 인 메소드에서 리턴을 Nothing 타입인 예외를 던질 수 있다. Nil – 아무것도 없는 List 를 나타낸다.None – 아무것도 없다는 리턴 값을 표현하기 위해 사용된다. null 포인트 예외를 회피하기 위해 Option[T] 의 자식클래..
Apply자바를 하다가 스칼라로 넘어오면 희안한거 많이 보는데 apply 라는 것도 분명히 마주치게 되는데 이게 여러군데에서 다른 의미로 사용되서 좀 헤깔리죠. 그래서 이 참에 정리 한번 하고 넘어 갑니다. 기본 해당 객체 뒤에 하나 이상의 값을 괄호{}로 둘러싸서 호출하면 그 객체의 apply() 메소드를 자동으로 호출해 줍니다. 스칼라에서는 apply 라는 메소드가 기본적으로 이 객체(타입) 저 객체(타입) 에 각자 정의되어 있습니다.함수타입에서 apply 하면 이렇게 작동하고 , 리스트에서 apply 하면 요렇게 작동하고 그렇습니다. 중구난방이라는 말 그래서 어느정도는 외워야합니다.예를 보시죠예1)class applyTest { def apply(n : Int): Unit = { print ("he..
인터페이스 vs 추상 클래스 예전에 이 캐캐묵은 논쟁에 대한 글을 쓴적이 있었는데 , 그 중 일부를 발췌해보면 " 먼저 왜 자바는 인터페이스를 만들게 됬나를 생각해야 하며 , 다중상속은 이 둘을 구분하는데 중요한 맥이 아닙니다. 중요한것은 인터페이스가 추구하는 바를 추상클래스로 이루려면 가능은 하지만 지켜야 할 제약이 생기고 위험/복잡성 또한 생기기 마련입니다. 또한 약속된 관례가 없기 때문에 커뮤니케이션에 문제가 생기며 의도가 불분명해 집니다. 그래서 행위의 틀 과 immutable 한 속성만으로 제한해서 유연성과 사용성을 극대화한것이 자바의 "interface" 입니다. ... 후략 "뭐 이런글을 썼었습니다만..이런 저의 글과 여러 무수한 논쟁들이 자바8의 등장과 더불어 소각장으로 직행해야 할 가비지..