Language/Golang
-
golang package 이해하기Language/Golang 2023. 9. 18. 23:36
- 목차 * 소개go 프로젝트에서 package를 어떻게 구성해야할까요 ? go 의 package convention 과 directory - package 의 관계에 대해서 알아보도록 하겠습니다. * main package대부분의 프로그래밍 언어는 main 함수를 가집니다. main 함수와 그 함수를 가지는 파일은 컴파일러에게 특별하게 인식이 되는데요. 컴파일러는 main 함수를 가지는 파일을 실행파일로 인식하고 main 함수가 실행파일의 entrypoint 가 됩니다. 예를 들어, java 에서 public static void main () {} 형식으로 main method 가 선언된 클래스는 Main Class 라고 부르며 main method 를 가지는 클래스는 자바 컴파일러에 의해서 entr..
-
golang struct 이해하기Language/Golang 2023. 9. 18. 06:50
- 목차 * 소개 struct 는 go 에서 커스텀 타입의 데이터를 표현하기 위해서 사용됩니다. 다른 프로그래밍 언어의 class 와 견줄 수 있습니다. 데이터 타입으로써 중점을 두기 때문에 method 를 가지진 않으며 여러 타입의 field 들을 가집니다. * 사용법 간단하게 animal 이라는 struct 를 정의해보겠습니다. string 타입의 name 만을 가지는 struct 입니다. type animal struct { name string } go 에서 struct 를 정의할 땐, type 키워드를 사용합니다. type + struct name + struct 조합의 선언을 통해서 struct 를 정의할 수 있습니다. 이제 정의된 animal 이라는 커스텀 타입 객체를 생성해보겠습니다. pa..
-
golang cobraLanguage/Golang 2023. 1. 27. 18:30
golang init go 파일은 init 함수를 가집니다. init 함수는 인자와 반환값이 없는 구조이며 이름 그대로 go 파일의 기능과 데이터를 초기화시키는 내용을 담습니다. 이렇게 작성된 init 함수는 다른 코드 영역에서 해당 패키지가 사용될 때 호출이 됩니다. init 함수를 가진 go 파일의 패키지가 import 될때가 그 시점인 것이죠. 그래서 라이프사이클 관점에서 봤을 때, 의존 관계에 있는 패키지들은 연쇄적으로 init 이 호출됩니다. 하지만 하나의 패키지에는 여러개의 go 파일들이 있고, 각 파일마다 init 함수를 가질 수 있습니다. 즉, 보통 한 패키지가 하나의 파일만을 가지지 않기 때문에 패키지 import 시에 여러 go 파일의 init이 실행됩니다. 다만 go 파일마다 init..
-
Go-modulesLanguage/Golang 2022. 4. 15. 14:27
go module 이란 go module 은 Golang의 패키지 관리자입니다. go module 은 표준 패키지 관리자이며, golang 1.11 버전 이후부터 표준으로써 자리잡았습니다. 그 이전 버전까지는 dep, glide 와 같은 패키지 관리자가 사용되었습니다. Golang 은 다른 javascript의 package.json, python의 requirements.txt, gradle 환경에서의 build.gradle 과 같은 의존성의 관리하는 파일로써 go.mod 를 활용합니다. go.mod 파일은 go 프로젝트에서 사용하는 의존 패키지들이 기록되는 파일이며, 의존성의 이름과 버전이 상세히 기록됩니다. go build 커맨드를 통해서 의존 패키지들을 설치할 수 있습니다. go workspace..
-
[Sarama] Sarama 로 Kafka Producer 만들어보기 ( Golang )Language/Golang 2021. 12. 4. 16:25
- 목차 들어가며. 이번 글에서는 Golang 의 Kafka Clients 라이브러리인 Sarama 에 대해서 알아보려고 합니다. 무엇보다도 구체적인 예시와 시각적인 자료가 이해하는데에 있어서 큰 도움이 된다고 생각해서 Sarama 를 활용한 Kafka Producer 를 만들어보겠습니다. 현 시점의 가장 최신 버전인 Golang 1.19 와 Sarama 1.43.0 버전을 사용하도록 하겠습니다. Sarama 와 Golang 의 버전 호환성은 아래와 링크를 통해서 확인하실 수 있습니다. https://github.com/IBM/sarama/releases Releases · IBM/sarama Sarama is a Go library for Apache Kafka. Contribute to IBM/sar..