Language/Golang
-
Kafka Golang 예제Language/Golang 2023. 2. 12. 14:38
Example For Sarama call_topic 이라는 이름을 가진 Topic 에 Partition 0 번에 Event를 전달하는 예시 // ProducerTest package main import ( "fmt" "time" "github.com/Shopify/sarama" ) //Reference : https://pkg.go.dev/github.com/shopify/sarama func SyncWriter(brokerList []string) sarama.SyncProducer { // For the data collector, we are looking for strong consistency semantics. // Because we don't change the flush setting..
-
Golang에서 Json 사용예시Language/Golang 2023. 2. 7. 21:28
Json Parsing Go 에서는 Marchaling 된 Json 은 Byte Arrary 로 사용되며, UnMarshaling 의 경우 구조체나 map 과 같은 데이터로 치환하여 받을 수 있습니다. map 의 경우 Json Object를 의미하며, Array 의 경우 Json Array 로 표기됩니다. []byte -> map Json을 map 으로 변환합니다. 생성한 result 가 Json 형식과 맞지 않는 경우 실패처리 됩니다. package main import "fmt" import "encoding/json" func main() { b := []byte("{\"a\":10,\"b\":\"test\"}") result := make(map[string]interface{}) err := j..
-
CGO ( Golang With C++ ) 케이스별 설명 및 예시Language/Golang 2023. 2. 7. 21:27
C/C++ 과의 연동 (CGO) Go 에서 C/C++ 관련 기능을 호출할 때는 기본적으로 "C." 로 시작하게 됩니다. Go 에서 C/C++ Header 사용시 Header의 주의점 구조체의 Pack 사이즈는 8byte 일것 만약 8byte 가 아닌 경우, Go 컴파일러에서 구조체를 잘못읽어들여서 일부 필드를 찾지못하거나, 데이터가 깨지는 현상 발생할 수 있습니다. 8byte 가 아니어도 우연히 규격에 맞으면 발생하지 않을 수 있습니다. 구조체 내에 함수가 정의되어 있지 않을것 //if Go Include This Struct Error Ocurred. typedef struct _TEST { int nTemp; char sTemp; void InitStruct() { memset(this, 0x00, ..
-
문법 및 사용법 예시Language/Golang 2023. 2. 7. 21:23
코드의 기본 형식 세미콜론(;) 이 존재하지 않습니다. 키워드 사용시 조건에 대한 소괄호가 존재하지 않습니다. 함수정의시 중괄호는 파라미터의 소괄호 옆에 있어야 합니다. 각 구문별로 들여쓰기가 알맞게 삽입되어야 합니다. 소스코드파일은 유니코드(utf-8) 이어야 합니다. 주석은 C/C++ 혹은 Java 와 동일하지만 CGO를 사용할 경우 다른 사용법 또한 존재합니다. 시작 프로그램 함수는 package 가 main 이어야 하며, 함수명 또한 main 이어야 합니다. 변수를 할당 혹은 선언 후 사용하지 않을 경우 "_" 로 처리하거나 코드상에서 삭제되어야 합니다. 이와 같은 기본 형식이 지켜지지 않았을 경우 빌드에 실패하며 기본 사용 예시는 다음과 같습니다. package main import "fmt" ..
-
자료형 및 키워드Language/Golang 2023. 2. 7. 21:20
Go 자료형과 키워드 자료형 자료형 저장범위 설명 uint8 0 ~ 255 부호 없는 8비트 정수형 uint16 0 ~ 65,535 부호 없는 16비트 정수형 unit32 0 ~ 4,294,967,295 부호 없는 32비트 정수형 uint64 0 ~ 18,446,744,073,709,551,615 부호 없는 64비트 정수형 uint 32비트 시스템에서는 uint32, 64비트 시스템에서는 uint64 int8 -128 ~ 127 부호 있는 8비트 정수형 int16 -32,768 ~ 32,767 부호 있는 16비트 정수형 int32 -2,147,483,648 ~ 2,147,483,647 부호 있는 32비트 정수형 int64 -9,223,372,036,854,775,808 ~ 9,223,372,036,854..
-
Golang 설치 및 IDELanguage/Golang 2023. 2. 7. 21:15
Go 환경구성 Go 기본패키지 및 컴파일러를 설치합니다. 환경에 따라 yum 혹은 apt-get 을 활용하여 설치도 가능하지만, 별도 다운로드를 통한 환경구성을 가이드 하며 Linux 환경을 기준으로 안내합니다. 다운로드 아래 링크에서 환경에 맞는 최신 패키지를 다운로드 합니다. curl 혹은 wget 을 통한 명령을 통해 내려받을 수 있습니다. https://golang.org/dl/ 설치 압축해제 tar -C /usr/local -xzf [다운로드받은 파일명] 경로 설정 Go 를 설치해서 활용하고자 하는 계정에 .bash_profile 혹은 공통으로 쓰고자 하면 /etc/profile.d 내의 파일에 아래내용을 추가합니다. export PATH=$PATH:/usr/local/go/bin 확인 계정을 ..
-
What is Golang?Language/Golang 2023. 2. 6. 20:46
Golang 이란? 2007년 Google 에서 설계된 신규 프로그래밍 언어로써, 간결하고 신뢰도 있는 효율적인 소프트웨어 개발을 위한 오픈소스 프로그래밍 언어입니다. 정확한 명칭은 Go 입니다. 하지만 Go 로 명시된것들이 너무 많기 때문에 편의에 의해서 Golang이라고도 불립니다. 간단한 Go 의 예시는 GoPlayGround(https://play.golang.org/) 에서 실행시켜볼 수 있습니다. Go 장점 간결한 문법 타 언어에 비해 키워드가 적으며, 코드를 간결화 할 수 있는 다양한 문법을 제공합니다. 컴파일 속도 타 언어에 비해 직접적으로 참조하는 라이브러리만을 해석하여 컴파일하기 때문에 보다 빠르며 컴파일 언어인데도 불구하고 인터프리터 수준의 컴파일 속도를 냅니다. GC C/C++ 과 ..