본문 바로가기

분류 전체보기

(48)
[기초] Go 기초 정리 - 3 (Pointer, Struct, Array, Slice, Range, Map, Function value, Function Closure) Tour of Go를 기반으로한 Go의 기본 내용입니다. Pointers 포인터는 값의 메모리 주소를 가지고 있다. *T 타입은 T값을 가리키는 포인터이고 Zero value는 nil. var p *int //p는 int값을 가리키는 포인터 & 연산자는 해당 변수의 포인터(주소)를 생성. i := 42 //int 타입 변수 i p = &i //int 포인터 변수 p * 연산자는 포인터가 가리키는 주소의 값. C언어와는 다르게, Go에서는 포인터 산술을 지원하지 않음. fmt.Println(*p) // 포인터 p를 통해 i 읽기 *p = 21 // 포인터 p를 통해 i에 값을 assign Structs (구조체) 구조체는 필드의 집합체. package main import "fmt" //struct 이름 ..
[기초] Slice의 사용과 내부 작동 방식 처음 Go언어의 Array와 Slice를 접했을 때, C에서 생각하던 개념과 다르다는 것을 확인할 수 있었다. Go에서는 Array와 Slice를 어떻게 구성하고 있는지 이해해보도록 하자. Arrays array는 기본적으로 변수의 이름, array의 크기와 array를 구성하는 요소의 type을 정의를 통해 확인할 수 있다. var arr [4]int // arr 변수이름, 배열의 크기, element type 기본적으로 array는 초기화를 별도로 해줄 필요는 없고, zero value로 알아서 채워주게 된다. var arr [4]int if arr[0] == 0 { fmt.Println("이미 난 초기화가 되어있어") } Go의 array는 값(value)이며, array의 변수는 배열 전체를 가리..
[기초] Go 기초 정리 - 2 (For, If, Switch, Defer) Tour of Go를 기반으로한 Go의 기본 내용입니다. For Go는 for라는 단 하나의 반복 구조를 가짐. for 반복문은 ;로 구분되는 세 가지 구성 요소를 가짐 초기화 구문 : 첫 번째 iteration 전에 수행. 조건 표현 : 매 모든 iteration 이전에 판별. 사후 구문 : 매 iteration 마지막에 수행. 초기화 구문은 주로 :=를 이용한 변수 선언이고, for 스코프 내에서만 유효하다. 반복문은 조건 판별이 false일 경우, 종료될 것. C, Java, Javascript와 같은 언어들과 달리, Go는 for의 세가지 구성 요소를 감싸는 괄호는 없고, { }괄호가 항상 필수. package main import "fmt" func main() { sum := 0 for i :..
[기초] Go 기초 정리 - 1 (import, 함수, 변수, 상수, 자료형) Tour of Go를 기반으로한 Go의 기본 내용입니다. Import 한줄씩 써도되고, 하나로 묶을 수도 있다.(factored import) package main import ( "fmt" "math" ) func main() { fmt.Printf("Now you have %g problems.\n", math.Sqrt(7)) } 함수 param에서 변수 이름 뒤에 type이 온다. (Go 선언 Syntax 관련 번역) package main import "fmt" func add(x int, y int) int { return x + y } func main() { fmt.Println(add(42, 13)) } 두 개 이상의 연속된 이름이 주어진 함수 매개변수가 같은 type일 때. func a..
[번역] 쿠버네티스 초심자를 위한 네트워킹 가이드 [원본글]https://matthewpalmer.net/kubernetes-app-developer/articles/kubernetes-networking-guide-beginners.html Kubernetes Networking Guide for Beginners - Kubernetes Book Kubernetes Networking Guide for Beginners One of the hardest things to learn about Kubernetes as a software developer is how the networking works. I had never done anything with networks prior to learning Kubernetes – I just wante..
[번역] Making Sense of Cryptoeconomics - CoinDesk MIT Open course인 Blockchain and Money(Prof. Gary Gensler) 수업의 readings에 있는 CoinDesk사이트 스터디 자료를 번역하여 기록으로 남겨 두었습니다. (링크) 참고로 해당 번역은 더 정확한 의미 전달을 위해 원문을 반드시 읽으면서 참고용으로 사용하는 것을 추천드립니다. Making Sense of Cryptoeconomics Josh Stark는 cryptoeconomics가 블록체인 산업에 대해 이해하는데에 중요한 컨셉인데도 불구하고 광범위하게 잘못이해되고 있다고 주장한다. —— Josh Stark는 Ledger Labs와 Blockgeeks Lab의 멤버이다. 이번 CoinDesk Opinion에서 Stark는 cryptoeconomics라는 용..
[번역] A (Short) Guide to Blockchain Consensus Protocols - CoinDesk MIT Open course인 Blockchain and Money(Prof. Gary Gensler) 수업의 readings에 있는 CoinDesk사이트 스터디 자료를 번역하여 기록으로 남겨 두었습니다. (링크) 참고로 해당 페이지의 설명은 매우 간단해서 상세한 내용은 별도 공부가 꼭 필요합니다. 비트코인의 컨센서스 메커니즘은 뛰어나지만, 완벽하지는 않다. 이 게시물을 통해 비트코인 외에 다양한 public blockchain의 대체 컨센서스에 대해 알아보자. public 블록체인이 어떻게 세상을 바꿀 것인지에 대해 우리는 많은 이야기를 들었지만, 글로벌 스케일의 공유 레저는 기능적이고, 효율적이고 안전한 컨센서스 알고리즘이 필요하다. Proof of Work(이하 PoW)와 같은 비트코인의 컨센서스 ..
동작 파라미터화 코드 전달하기 ※ 해당 내용은 JAVA8 in action 책을 공부하며 작성하였습니다. 동작의 파라미터화란? 아직은 어떻게 실행할 것인지 결정하지 않은 코드 블록 동작 파라미터화의 효과 자주 바뀌는 요구사항에 효과적으로 대응할 수 있다. (아래는 구체적 효과) 엔지니어링 비용 효율화. 새로 추가한 기능을 쉽게 구현할 수 있음. 장기적 관점에서 유지보수 용이. 동작 파라미터화의 특징 어떻게 실행할지 결정되지 않은 코드블록을 나중에 프로그램에서 호출. 즉 코드블록의 실행은 나중으로 미뤄진다. 실행될 메서드를 파라미터로 넘겨준다. 예) - 리스트의 모든 요소에 '어떤 동작'을 수행할 수 있음. - 리스트 관련 작업을 끝낸 다음에 '어떤 다른 동작'을 수행할 수 있음. - 에러가 발생하면 '정해진 어떤 다른 동작'을 수행할..