본문 바로가기

Programming/Golang

(5)
Go(Golang)으로 Asynchronous Non-Blocking Logger 만들기 3편 개요 Go(Golang)으로 Asynchronous Non-Blocking Logger 만들기 2편 개요 Go(Golang)으로 Asynchronous Non-Blocking Logger 만들기: Asynchronous Non-Blocking Logging in Golang 먼저 들어가기 전에 non-block 이나 golang 기본 적인 로깅에 대해서 모르신다면 이 전 포스팅을 확.. banaconda.tistory.com 오늘은 이전 포스팅에 이어서 테스팅에 대해서 알아볼 것이다. 먼저 기본적인 테스팅과 테스트 방법을 알아보고, 이 전 포스팅에서 만들었던 로거의 플래그를 이용해서 async 와 sync 모드에 따른 성능 차이를 비교해본다. 완성된 로거 패키지는 github 에서 소스를 보거나 아래 명..
Go(Golang)으로 Asynchronous Non-Blocking Logger 만들기 2편 개요 Go(Golang)으로 Asynchronous Non-Blocking Logger 만들기: Asynchronous Non-Blocking Logging in Golang 먼저 들어가기 전에 non-block 이나 golang 기본 적인 로깅에 대해서 모르신다면 이 전 포스팅을 확인해주세요. Go(Golang)로 로거 만들기: Logging in Golang 개요 프로그램 개발하면서 로그의 중요성을 말 banaconda.tistory.com 오늘은 이전 포스팅에 이어서 구현 부분에 대해서 알아보자. 몇 가지 함수들은 go 기본 패키지중 log 패키지에서 가져오고 그 외의 기능은 모두 구현했다. 완성된 로거 패키지는 github 에서 소스를 보거나 아래 명령으로 받아서 사용할 수 있다. $ go get..
Go(Golang)으로 Asynchronous Non-Blocking Logger 만들기 1편 먼저 들어가기 전에 non-block 이나 golang 기본 적인 로깅에 대해서 모르신다면 이 전 포스팅을 확인해주세요. Go(Golang)로 로거 만들기: Logging in Golang 개요 프로그램 개발하면서 로그의 중요성을 말할 것도 없다. 이력 추적이 가능하고, 디버깅에도 유용하기 때문이다. Golang 은 로그 패키지를 기본으로 제공하고 있다. 이 번 포스팅에서는 Golang banaconda.tistory.com 동기, 비동기, 블록, 논 블록 개념: Synchornous, Asynchronous, Blocking, Non-Blocking with Go(Golang) 개요 대부분의 개발자들은 동기(Synchronous)/비동기(Asyncronous)에 대해서는 들어봤을 것이다. 블록(Bloc..
Go(Golang)로 로거 만들기: Logging in Golang 개요 프로그램 개발하면서 로그의 중요성을 말할 것도 없다. 이력 추적이 가능하고, 디버깅에도 유용하기 때문이다. Golang 은 로그 패키지를 기본으로 제공하고 있다. 이 번 포스팅에서는 Golang 에서 제공하는 Logger에 대해서 간단하게 알아보고 이 패키지를 이용해서 추후 포스팅에 개선해 나가는 방법을 기술한다. 기본 사용 log package 를 import 하는 것만으로 로그를 사용할 수 있다. package main import "log" func main() { log.Println("Log") } 실행해보면 아래와 같은 출력 결과를 볼 수 있다. 기본적으로 log 패키지는 날짜, 시간, Text 를 출력한다. 2022/07/02 14:13:11 Log 하지만 milli or microse..
견고한 Go 모듈 만들기 개요 golang 은 쉽게 패키지를 가져오고 내보낼 수 있는 언어이다. 이 번 장에서는 go 모듈을 만드는 과정을 써내려가려한다. 저자는 nb-logger 라는 non-bloking logger 를 만드려고 하기 때문에 nb-logger 와 관련된 부분은 독자가 원하는 패키지 명으로 변경해서 작성하면 된다. 먼저 모듈 소스 코드를 작성할 디렉토리를 만들고 이동한다. $ mkdir nb-logger $ cd nb-logger 또한 라이브러리 형태의 go 모듈을 만들기 위해서는 패키지를 가져오고 내보낼 repository 가 필요하다(repo 없이하려면 매우 귀찮다). github를 이용해서 repository 를 만들고, go 모듈을 초기화할 때 사용한다. go mod init {repository pat..