일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |
29 | 30 | 31 |
- 파이썬 머신러닝
- 파이썬
- 스칼라
- 스칼라 강좌
- 그라파나
- play2 강좌
- 안드로이드 웹뷰
- hyperledger fabric
- 하이브리드앱
- Hyperledger fabric gossip protocol
- Play2
- 스칼라 동시성
- 파이썬 데이터분석
- 이더리움
- Akka
- Adapter 패턴
- 파이썬 강좌
- Golang
- Play2 로 웹 개발
- akka 강좌
- 스위프트
- CORDA
- 블록체인
- 하이퍼레저 패브릭
- 주키퍼
- 플레이프레임워크
- play 강좌
- 파이썬 동시성
- Actor
- 엔터프라이즈 블록체인
- Today
- Total
목록Scala (51)
HAMA 블로그
스칼라 책에 대해 소개드리면 (제가 보유하고 있는 것 위주로) - 러닝 스칼라(번역됨)로 시작하고 - Programming in Scala (번역됨) 로 보충 - 각종 인터넷 글들로 보충 하면 문법은 됩니다. 이후에 - 스칼라로 배우는 함수형 프로그래밍 (번역됨) - 함수형 & 반응형 도메인 모델링 - 스칼라 동시성 프로그래밍 (번역됨) 같은 책으로 감각을 익히면서 ( FPiS 빨강책은 매우 어렵습니다. 또한 '니가 알아서 이해해' 라는 불친절한 면도 있습니다. .결정적으로 스칼라 개발의 필독서는 아닙니다.) - 러닝 아카 (번역됨) - Akka in Action - Reactive Web Applications: Covers Play, Akka, and Reactive Streams - Play for..
실제 도메인 관점에서의 예를 통해 객체지향과 함수형 코드를 비교해보면, 어떤 분들에게는 좀 더 도움이 될 수 있을 거 같아서. 함수형& 반응형 도메인 모델링이라는 책에 있는 내용중 일부를 짧게 소개해 보려고 합니다. -장,단점을 논하는 글이 아니며, 더 자세한 내용이 필요하다면 책을 참고하세요. -DDD 하면 전 아직도 장거리 직통전화 와 김혜림씨가 먼저 생각나네요 :-) 개발자는 코드로 말하기 때문에 바로 코드 보겠습니다. 스칼라 코드이긴 하나 매우 간단하기 때문에 자바,C++,Python 개발자라면 무난히 이해 하실 겁니다만 약간의 설명은 추가 하겠습니다.1. 객체지향 은행등에서 계좌의 돈을 입금하고 출금하는 상황(도메인) 에 대한 코드입니다. Balance 케이스 클래스는 기본적으로 불변입니다. 즉..
진짜 함수형 초보자들을 위한 트레이닝(1) in Scala 검색해보면 많은 초보자들을 위한 함수형 글들이 있지만, 꽤 어렵지 않나 생각이 드는데요. 예) 초보자친화적 함수형 프로그래밍 투어 C = ... // B => C 함수 객체를 리턴하는 겁니다. (B가 매개변수 C가 리턴값) def doSomething[A,B,C](...): A => (B => C) = ... // A 매개변수를 받아서 (B => C) 함수 객체를 리턴하는 함수 객체를 리턴합니다.. (B가 매개변수 C가 리턴값)이제 본격적으로 시작해보죠!!예1)def add (a : Int, b : Int): Int = { a + b }스칼라에서 함수는 def 로 시작합니다. a : Int 는 매개변수 a 는 Int 타입이라는 의미이구요. 자바와..
스칼라 강의 (47) ADT (Algebraic Data Types) 이란? (feat. 타입클래스) "ADT는 정해진 숫자의 타입 군을 구축하는 방법에 관한 이야기. 행동은 상관없다" "타입클래스는 타입별로 행동을 다르게 하기 위한 이야기."라고 개인적으론 희미하게 구분하고 있습니다. 참고로 타입클래스는 우리가 알고 있는 그 클래스가 아닙니다. 인터페이스와 비슷한 것으로서 하스켈에서 나온 개념입니다. => 타입클래스 죄송하지만 하스켈을 공부해서 ADT에 대한 감을 잡는게 빠른거 같습니다. (아래 하스켈의 Sum 타입은 자바의 예를들고 있으므로 하스켈 몰라도 이해하기 쉬울 겁니다) - 하스켈의 Sum 타입 - [하스켈 기초][CIS194] 대수적 데이터 타입(Algebraic Data Type) 다음 블..
아주 비슷한 느낌을 주는 두 언어 스칼라와 코틀린에 대한 비교 글이 있어서 번역해 보았습니다 이런 글을 읽고 이 언어가 무엇인지 정확히 감을 잡는것은 불가능합니다. 가볍게 읽으세요. 또한 이 글은 superkotline.com 이라는 코틀린 싸이트의 글이므로 약간은 코틀린쪽으로 기운 느낌도 있습니다. 저는 스칼라와 Python 을 좋아하기 때문에 먼저 다음과 같은 언급을 하고 시작해 봅니다. :-) "Twitter 인프라의 대부분은 Scala로 작성되어 있으며..." Scala vs Kotlin : 네가 해결하기 원하는 문제(분야)가 뭐야? Scala와 Kotlin은 자바 왕좌( JVM 기반) 를 차지하기 위한 주요 두 경쟁자입니다.그들은 같은 문제를 해결하는 것을 목표로합니다 : 더 나은 자바를 제공 ..
[경고] 개인적으로 공부한것 정리한 것이라 내용이 두서없이 조악하게 연결되어 있습니다. 스칼라에서 리프팅(lifting) 이란? [번역/요약] 먼저 스칼라에서 에러처리하는 방식으로 option 을 사용하는데, 사용하다보면 이것을 리턴 받아서 사용 할 때 일일이 확인해서 처리 해주다보면 군더더기 코드가 덕지 덕지 되지 않을까 생각 할 수 있을 것이다. 초보시절에는 if 문이나 case 매칭으로 지져분하게 해결 한 경험도 많을 것인데, 여기서 설명할 리프팅을 알고 나면 그렇게 코딩 했어야 했었던 초보시절의 죄책감을 앞으로는 벗어 던질 수 있을 것이다. 아래 예 (pseudo-code)를 보면x = someOperation if !x.nil? y = someOtherOperation if !y.nil? doS..
스칼라 어플리케이션은 어떻게 빌드&디플로이 할까? [번역] http://fruzenshtein.com/how-to-build-deploy-scala-application/ 이봐요! 스칼라에 꽤나 익숙해 진 것 같군요. 당신이 이제 스칼라로 어플리케이션 개발을 할 수 있는것을 알겠습니다. 근데 코드의 주된 사명은 사람들이 문제를 해결 할 수 있도록 돕는 것이겠죠? 하지만 당신의 데스크탑에서만 로컬로 실행중인 경우 어떻게 이 작업을 수행 할 수 있을까요? 네~이 글에서는 Scala 애플리케이션을 배포하는 가장 쉬운 방법을 보여드리겠습니다. 스칼라 프로젝트 빌드하기 Scala 프로젝트를 "빌드" 한다고 말하면 무엇을 의미하나요? 그 의미는 당신의 IDE에서 로컬로 실행되는 프로젝트는 다른 환경 (Linux /..
스칼라 리플렉션 참고: http://3x14159265.tumblr.com/post/57543163324/playing-with-scala-reflection리플렉션에 대해서 생소하다면 먼저 자바 리플렉션 관련 읽을 거리를 읽어보세요. 1. 자바 클래스로더 이야기 2. 자바 리플렉션 사용하기 스칼라 2.10에서 새로운 리플렉션 API 가 소개되었습니다. 리플렉션으로 보통 우리는 제네릭 타입을 포함하여 객체의 타입을 조사한다.런타임에 클래스(파일 혹은 네트워크를 통해서 전해온 바이트를 통해) 객체를 생성한다.그 객체의 메소드를 호출한다. 를 할 수 있게 됩니다.하나씩 살펴 볼까요? 먼저 아래와 같이 임포트 해줍니다.import scala.reflect.runtime.universe._view rawrefl..
스칼라 스쿨 타입 고급주제 (한글번역) 참고. https://twitter.github.io/scala_school/ko/advanced-types.html 먼가 좀 조잡하긴 한데....나중에 스칼라에 대한 도가 좀 쌓이면, 풀어서 다시 정리하는 글을 올릴것이다.
F-bounded polymorphism / recursive types 번역:http://blog.originate.com/blog/2014/02/27/types-inside-types-in-scala/ 지금까지 이런 타입 시그니처 본 적이 있어? (역주: 난 얼마전에 봤다...당황 많이 했어 ;;) 1 trait T[U Bird): Bird def delete(id: String): Unit }사과랑 새라는 두개의 클래스가 있는데, 잘 보면 두 클래스가 하는 역할이 너무 비슷하잖아? 중복되는 느낌도 들고~ 앞으로 비슷한 클래스를 작성 할때 저 코드를 또 타이핑 해야할 것을 생각하면 한숨이 나오지..그렇다면 리팩토링의 화신인 우리가 해야할 것은 무엇일까?그래 인터페이스로 끌어 올리는거야. 스칼라에서는 ..