일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |
- akka 강좌
- 스칼라 강좌
- 파이썬 머신러닝
- Akka
- play 강좌
- CORDA
- 안드로이드 웹뷰
- Hyperledger fabric gossip protocol
- 파이썬 강좌
- Play2 로 웹 개발
- 엔터프라이즈 블록체인
- 플레이프레임워크
- Adapter 패턴
- 블록체인
- 하이브리드앱
- 하이퍼레저 패브릭
- 파이썬
- Actor
- play2 강좌
- 이더리움
- Play2
- 주키퍼
- hyperledger fabric
- 스칼라
- 파이썬 데이터분석
- Golang
- 그라파나
- 스위프트
- 스칼라 동시성
- 파이썬 동시성
- Today
- Total
목록Go (17)
HAMA 블로그
1. 메모리에서의 안전요소 https://medium.com/a-journey-with-go/go-memory-safety-with-bounds-check-1397bef748b5 Go: Memory Safety with Bounds Check ℹ️ This article is based on Go 1.13. medium.com https://insanitybit.github.io/2016/12/28/golang-and-rustlang-memory-safety Golang and Rustlang Memory Safety - InsanityBit I recently read an excellent blog post by Scott Piper about a tool he has released called S..
C++ 에서 최적화를 언급 할 때 "객체복사가 최대한 일어나지 않게 한다" 가 주요 화두를 차지 한다. ("알고리즘"을 개선하라도 중요하긴 하지만) 이에 따라서 RVO 같은 개념도 생겨나고, 아예 RVO를 믿지 못하고 매개변수에 리턴 받을 포인터를 전달하는 형태를 취하기도 한다. 마찬가지로 Go에서도 아래 처럼 *peer,Proposal 같은 포인터를 넘겨 주면서 객체복사에 대한 낭비를 줄이는데 // GetProposal returns a Proposal message from its bytes func GetProposal(propBytes []byte) (*peer.Proposal, error) { prop := &peer.Proposal{} err := proto.Unmarshal(propBytes..
Create Versatile Microservices in Golang — Part 1Create Versatile Microservices in Golang — Part 2 (Docker and go-micro)Create Versatile Microservices in Golang — Part 3 (docker-compose and Datastores)Create Versatile Microservices in Golang — Part 4 (Authentication With JWT)Create Versatile Microservices in Golang — Part 5 (Event Brokering With go-micro)Create Versatile Microservices in Golang ..
Go언어는 예외처리가 없으며, 에러에 대해서 가장 가까운 위치에서 명시적으로 체크하고 넘어가는 것을 권장하는 언어 이다. 이 행위를 강제하진 않기 때문에 좀 더 단순하나 문제가 발생 할 소지를 없애기 위해 에러 체킹을 강제화 하는 언어(OCaml,Scala등)에 비해 안정성은 좀 떨어진다고 말 할 수도 있겠다. 하지만 이런 것은 팀의 코딩컨벤션으로 항상 체크하고 넘어가면 되는 문제로 생각 할 수도 있을 것이다. 참고로 예외처리는 굉장히 어려운 주제이며 예외 처리에 대한 6가지 화두 이 글을 통해서 말한바 있다.Panic 예제func test () int { arr := [] int {} element := arr[5] return element } func main() { test() fmt.Printl..
High Performance Go Workshop - 항상 가능한 최고로 단순하게 코드를 짜라. 컴파일러는 일반적인 코드에 대해 옵티마이즈 된다. - 짧은 코드는 빠른 코드이다. - 짧은 코드는 작은 코드이다,. CPU 캐쉬에 중요하다. - 할당에 주의를 기울이고, 필요없는 할당을 피하기 위해 노력하라. - 추측하지말고 보틀넥을 프로파일링 해봐라. Going Infinite, handling 1M websockets connections in Go
go언어에서 가장 재밌으며, 강력한 키워드인 select/채널의 다양한 패턴을 살펴봄으로써 우리의 코딩력을 향상시켜 보겠습니다. 이러한 go특유의 핑퐁스타일의 코딩에 빠져들면 헤어나오기 힘들겁니다 :-) switch 먼저 형제 관계에 있는 switch를 통해 몸풀기를 좀 하구요. 1. switch (1) // 일반 switch func main(){ i := "korea" switch i { case "korea": fmt.Println("korea") case "usa": fmt.Println("usa") case "japan": fmt.Println("japan") } } switch문은 보통 우리가 생각하는 듯 그러합니다. 2. switch (2) func main(){ t := time.Now()..
[이더리움으로 배우는 GO언어] 자료구조 & 컬렉션 이번 글에서는 사실 이더리움하고 크게 상관없이 go 자료구조 기본에 대해서 알아 봅니다.Array var a [5]int // [0 0 0 0 0] a[4] = 100 // [0 0 0 0 100]5개의 비어있는 배열 생성과 값 삽입 b := [5]int{1, 2, 3, 4, 5} // [1 2 3 4 5] 5개 요소가 들어있는 배열 생성 a2 := [...]string{"USA", "China", "India", "Germany", "France"} b2 := a2 // a copy of a is assigned to b b2[0] = "Singapore" fmt.Println("a is ", a2) // [USA China India Germany ..
컴포지트(composite) 디자인 패턴과 이름이 헷갈린 컴포지션은 UML 측면에서는 연관(Aggregation) 하고도 헷갈리기도 하는데 이 글에서는 컴포지션과 연관을 구분하지 않겠다. 컴포지션이란 간단히 말해 내가(객체)가 가지고 있어야 하는 특성을 외부에서 가져오는 것을 말하는데, 가져오는 방식이 상속을 통하는 방법과 다르게 외부에서 주입되는 방식이다. 상속의 경우는 폴리모피즘이 반드시 필요하면 제한적으로 사용하되, 컴포지션을 통해서 객체를 구축하는 방식을 추천한다. 이 글에서는 Golang에서 컴포지션을 어떻게 지원하는지 살펴 볼 것이다. 자바/C++ 보다는 훨씬 깊숙히 임베디드 되는 모습을 보게 될 것이란 것을 미리 귀뜸해 둔다.먼저 자바의 컴포지션을 살펴보자. abstract class For..
NAT-PNP 와 UPNP 를 이용한 홀펀칭 - (2) 이번글에서는 이더리움에서 extip와 UPNP를 어떻게 사용하는지 배워보도록 하자. 외부에서 192.168.10.11:80 서버와 통신하려면 그 사설 IP를 입력해바짜 아무 의미가 없다. 따라서 그 서버와 연결시켜주는 라우터를 통하게 되는데, 라우터의 공인IP인 193.24.171.247 로 보내되, 포트를 8028로 한다면 그것을 라우터는 192.168.10.11:80으로 포트포워딩해주는 것이다. 즉 8028 포트는 내부의 192.168.10.12:80 IP/PORT와 매핑되는데 이것을 수동으로 미리 해 놓는다면 외부에서 접속하는데 아무 문제가 없을 것이다. 이렇게 수동으로 미리 매핑되어 있으면 extip를 그냥 사용하면 되고, 미리 정해져 있지 ..
1. [이더리움에서 배우는 Go언어] chan chan 이란? 2. [이더리움에서 배우는 Go언어] 1급함수활용과 채널 3. [이더리움에서 배우는 Go언어] nat 옵션 이야기 - (1) nat 옵션 이야기 - (1)이번 시리즈에서는 네트워크 인프라의 내부에서 사설IP로 동작하여 공인IP가 없는 노드끼리 어떻게 통신 할 수 있는지에 대해서 알아 본다. 첫번째 글에서는 간략한 정의를 내려보며 이더리움에서 사용되는 옵션들을 살펴볼 것이며 두번째 글에서는 extip와 upnp를 구체적으로 살펴보려 한다. (참고로 nat-pnp는 upnp와 비슷하므로 생략) 홀펀칭홀펀칭(막힌 구멍을 뚫는) 필요한 이유는 피씨들이 모두 자신의 개인 고정 IP를 사용하는게 아니기 때문이다. 많은 경우 NAT라는 장비를 통해서 앞쪽..