일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |
- 이더리움
- 파이썬 머신러닝
- 하이퍼레저 패브릭
- 하이브리드앱
- 스위프트
- 파이썬 강좌
- 그라파나
- play 강좌
- Play2
- 스칼라
- 파이썬
- 플레이프레임워크
- CORDA
- play2 강좌
- 안드로이드 웹뷰
- akka 강좌
- Hyperledger fabric gossip protocol
- 스칼라 강좌
- Golang
- Akka
- 파이썬 동시성
- 엔터프라이즈 블록체인
- 주키퍼
- Adapter 패턴
- Play2 로 웹 개발
- hyperledger fabric
- 파이썬 데이터분석
- 블록체인
- 스칼라 동시성
- Actor
- Today
- Total
HAMA 블로그
ArrayBuffer 각 언어에서 가장 많이 사용되는 컬렉션을 말하자면 (개인적인 경험으로) C++ 에서는 vector , map 이고 자바에서는 ArrayList , HashMap Python 에서는 [] , {} 즉 리스트 와 딕셔너리 였던거 같습니다. 다른 언어를 사용할때 가장 먼저 찾게되는것이 바로 저런 가장 기본적인 컬렉션들인데요. 스칼라는 무엇일까요? JVM 상에서 돌아가는 스칼라에도 자바처럼 ArrayList (동적으로 사이즈가 변하는 배열) 같은게 있을까요? 특성 * 스칼라에는 자바의 java.util.ArrayList 가 없다. 대신 ArrayBuffer 가 있다. mutable 속성을 지녔다. * 자바의 ArrayList 는 C++ 의 vector 와 유사하다. (즉 링크드리스트로 구현..
스칼라 컬렉션과 자바 특성 * 스칼라 컬렉션에서 배열은 특별하다. 스칼라 배열은 어떤 면에서 자바 배열과 일대일 대응된다. 즉 Array[Int] 는 자바에서는 int[] 로 표현할 수 있다. 다만 스칼라쪽 배열이 훨씬 많은 기능을 제공한다는 점. 1. 제너릭 할 수 있다. Array[T] 식으로 만들 수 있다. 2. Seq[T] 와 호환 가능 3. 모든 시퀀스 연산을 지원한다. (map, filter, reverse 같은..) * 스칼라는 자바에 비해 변하지 않는 컬렉션을 강조하며, 한 컬렉션에서 새로운 것으로 변환하는 많은 연산 제공 * 스칼라 자바 양방향 변환가능 타입 Iterator java.util.Iterator Iterator java.util.Enumeration Iterable java...
http://kth.diva-portal.org/smash/get/diva2:588875/fulltext01.pdf%7C
HTTP://BRIANFLOVE.COM/2016/03/29/TYPESCRIPT-EXPRESS-NODE-JS/ 번역 TYPESCRIPT + EXPRESS + NODE.JSMarch 29, 2016 Node.js 를 위한 Express 웹 어플리케이션 프레임워크는 비동기 Node.js 엔진상에서 웹앱을 구축하기위한 가장 유명한 솔루션중의 하나입니다. Express 시작하는 웹앱개발은 매우 쉽습니다. 이 튜토리얼에서는 Express + Node.js 를 npm 으로 세팅하며 JavaScript 와 TypeScript 를 사용하여 코드를 구축하고 app 을 빌드해보겠습니다. 왜 TypeScript 인가? 강력한 타입과 함께 ECMAScript 6 (ES6) 를 사용한 차세대 웹어플리케이션을 구축하기 위한 언어로..
Map 특성 * Map 은 변경 가능한 것 (mutable.Map) 과 변경 불가능한 것 (immutable.Map) 모두를 제공합니다. import scala.collection.mutable.Map 예를들어 put 이라든지 remove 메소드는 immutable.Map 에서는 사용 불가. * Map 을 위한 기반 트레이트가 있고 이를 상속한 변경 가능 집합, 변경 불가능 집합을 위한 2가지 트레이트가 있다. ( Set 과 비슷) 생성 val m = Map[Int,String]() // 다른것들과 마찬가지로 팩토리 메소드를 이용해 만들 수 있다. val m2 = Map (1 -> "one" , 2-> "two") 이렇게 초기화 할 수 있고 val m3 = Map ( (1,"one") , (2,"two"..
Set 특성 * Set 은 변경 가능한 것과 변경 불가능한 것 모두를 제공합니다. * Set 을 위한 기반 트레이트가있고 이를 상속한 변경 가능 집합, 변경 불가능 집합을 위한 2가지 트레이트가 있다. ( 트레이트는 자바 인터페이스와 비슷한 것으로 나중에 설명 ) 생성 val s = Set ("Hi" , "There") 리스트나 배열과 비슷하게 생성한다. 변경 불가능한 Set 객체를 만들어서 변경 불가능한 s 에 대입한다. 변경 import scala.collection.immutable.set var s = Set ("Hi" , "There") s += "bye" 이 코드에서 눈여겨 볼것은 var 로 선언된 s 이다. 이 코드는 기존 s 에 "bye" 를 더하면서 새로운 집합으로 재 할당 한것이다. 즉..
Tuple 특성 * 리스트와 마찬가지로 변경 불가능 하다. * 리스트와 다른 점은 다른 타입의 원소를 넣을 수 있다는 점 * 메소드에서 여러 다양한 객체를 리턴해야 하는 경우 유용하다. 생성 val p = ( 99, "High") 그냥 객체들을 콤마로 구분하여 () 사이에 넣어주면 된다. 저것의 타입은 Tuple2[Int,String] 이다. 튜플의 타입은 원소의 개수와 각각의 타입에 따라 달라진다. (22 개 까지 지원) 즉 ('u','r',"the") 의 타입은 Tuple3[Char,Char,String]이다. 원소에 접근 println(p._1) 튜플의 첫번째 값에 접근할수있다. 마지막 왜 튜플은 원소접근을 p(0) 즉 p.apply(0) 처럼 할 수 없을까? -> 리스트의 apply 메소드는 항상..
이 시리즈는 스칼라언어의 창시자인 마틴 오더스키가 직접 저술한 Programming in Scala (2판) 을 참고로 하여 정리할 예정입니다. 잘못된 점이 있으면 지적해주시면 바로 수정하겠습니다. List 특성 스칼라의 배열이 값을 변경 할 수 있는 순서가 정해진 시퀀스라면 스칼라의 리스트는 기본적으로 값을 변경 할 수 없는 시퀀스입니다. 함수형 스타일이라는것은 메소드 내에서 절대로 부수효과가 일어나면 안되는, 그래서 더 신뢰할 수 있고 재사용하기 쉬운 코드를 만드는게 주 목적이라 , 그 목적에 적합한 콜렉션이라 할 수 있습니다. * 참고 : 부수효과(부작용)에 관한 이야기 Linked List 식으로 구현 되 있으므로 head / tail 중간 삽입같은게 원할합니다. 생성 배열 생성과 비슷합니다. v..
이 시리즈는 스칼라언어의 창시자인 마틴 오더스키가 직접 저술한 Programming in Scala (2판) 을 참고로 하여 정리할 예정입니다. 잘못된 점이 있으면 지적해주시면 바로 수정하겠습니다 Array 생성 스칼라에서 객체로 만들때는 new 를 사용합니다. 다음과 같죠 val a = new Array[String](2) // String 타입이 2개 담길수 있는 배열의 객체를 만들었네요. 자 배열에 값은 어떻게 넣을까요? a(0) = "hello" a(1) = "world" 요렇게 넣으면 됩니다. 여기서 눈여겨 볼것은 일단 val 로 선언했는데 값을 바꾼겁니다. 이건 전에 얘기했다시피 변수를 재 할당 할 수 없는거지, 변수가 가르키는 객체 안의 내용은 여전히 변경가능하다는거죠. - 자바에서는 Str..
개인적으로 느끼는 스칼라라는 언어는 , 창시자가 너무 생각이 많구나~ 욕심도 많고 그런 느낌을 받습니다. "내가 쓰기 편하도록 엄청나게 많이 신경썼으니, 니들도 이걸 잘 쓰려면 내가 엄청나게 많이 신경쓴 그 부분들을 너희들도 일단 엄청나게 신경써서 공부해~~ 그 후엔 편해질꺼야" 이건데요. 그냥 안쓸래요. 라고 말해드리고 싶기도 합니다. ㅎㅎ 또한 이 언어는 하이브리드입니다. 함수형과 객체지향 양쪽을 지원합니다. 함수형을 추구하되 객체지향도 쓸 수 있다 정도입니다만, 덕분에 굉장히 강력해 질 수도 혹은 복잡할 수 있습니다. 딱 맞는 예는 아니지만 마치 하이브리드 객체지향인 C++ 이 더 순수한 객체지향언어인 자바보다 복잡하듯이 말이죠. C++ 개발자중 객체지향에 대해서 잘 모르는 개발자들이 많듯이 스칼라..