반응형

Go 15

Code Formatting in Go: Using gofmt and goimports

Go 언어는 개발자의 생산성과 코드의 읽기 쉬움을 중요시하는 언어입니다. 그 중에서도 코드 포맷팅은 Go 언어의 핵심 특징 중 하나입니다. Go 언어에서는 gofmt와 goimports 두 가지 주요 도구를 통해 코드를 깔끔하고 일관성 있게 유지할 수 있습니다. gofmt gofmt는 Go 언어의 표준 도구로, 모든 Go 개발자가 흔히 사용합니다. gofmt는 코드를 읽기 좋고 일관된 스타일로 자동 포맷팅해줍니다. gofmt를 사용하면 코드에 일관성을 부여할 수 있으며, 불필요한 논쟁을 피하고 코드 리뷰에 집중할 수 있습니다. # 현재 디렉토리의 모든 .go 파일을 gofmt로 포맷팅합니다. gofmt -w . gofmt는 기본적으로 import 섹션을 알파벳 순서대로 정렬합니다. 아래는 gofmt를 적..

Go 2023.06.19

[Go] Set 구현: map[T]struct{} 와 map[T]bool 방식 비교

Golang에서는 Set(집합) 자료구조를 직접 구현하여 사용하여야 합니다. Set은 중복을 허용하지 않는 원소들의 모임이며, 멤버십 확인 및 집합 연산을 위해 자주 사용됩니다. 보통 Set 구현을 map[T]struct{}와 map[T]bool로 이용해서 합니다. Set을 구현하는 두 가지 방식인 map[T]struct{}와 map[T]bool을 비교해보고자 합니다. Map에 대한 내용은 아래 글에서 확인하시면 됩니다. [Go] Map 활용하기 [Go] Map 활용하기 Map 초기화 Go 언어에서 Map은 make 함수를 사용하여 초기화할 수 있습니다. make 함수는 맵의 타입을 지정하고, 맵의 초기 크기를 지정할 수 있습니다. 만약 초기 크기를 지정하지 않으면, 기본적으 1minute-before6..

Go 2023.06.17

[Go] Generics 의 사용 및 예제

Go 언어는 강력한 타입 시스템과 고성능 컴파일러를 갖추고 있어, 안정성과 높은 성능을 보장해 줍니다. 그러나, Go 언어는 제네릭 기능이 없어서, 유연성과 코드 재사용성 면에서 한계를 가지고 있습니다. Go 1.18 버전에서 제네릭 기능을 제공하기 시작했습니다. 제네릭이란 무엇인가? 제네릭(Generic)은 일반화된 코드를 작성할 수 있게 해주는 프로그래밍 기법입니다. 제네릭은 코드의 재사용성을 높이고, 타입 안정성을 보장하여 코드의 안정성과 가독성을 향상시킵니다. Java, C++, C#과 같은 다양한 언어에서 제네릭 기능을 제공합니다. 제네릭의 장점은 무엇인가? 제네릭을 사용하면, 코드를 일반화할 수 있어서, 타입 별로 중복 코드를 작성하지 않아도 됩니다. 또한, 타입 안정성이 보장되므로, 런타임 ..

Go 2023.04.03

[Go] Map 활용하기

Map 초기화 Go 언어에서 Map은 make 함수를 사용하여 초기화할 수 있습니다. make 함수는 맵의 타입을 지정하고, 맵의 초기 크기를 지정할 수 있습니다. 만약 초기 크기를 지정하지 않으면, 기본적으로 맵은 0으로 초기화됩니다. 예를 들어, string을 키로, int를 값으로 가지는 맵을 초기화하려면 다음과 같이 작성합니다. m := make(map[string]int) make 함수로 초기화된 맵은 nil이 아니기 때문에, 바로 사용할 수 있습니다. m["one"] = 1 m["two"] = 2 Go 언어에서 Map은 make 함수를 사용하여 초기화할 수 있을 뿐만 아니라, 리터럴(literal)을 사용하여 초기화할 수도 있습니다. Map 리터럴은 중괄호({}) 안에 콤마(,)로 구분된 키-..

Go 2023.04.02

[Go] fmt format 에서 Percent sign 사용하기

Go에서 fmt 포맷팅 메소드(Printf,Fprintf,Sprintf)에서 Percent sign(%)를 escape하는 방법에 대해서 알아보자. 우선 fmt 포맷팅 메소드 Percent sign(%)를 그대로 사용하면 어떻게 되는 지 확인해보자. Code: package main import "fmt" func main() { i := 90 fmt.Printf("%d % Completed", i) } Output: 90 %!C(MISSING)ompleted 결과를 확인해보면 Percent sign이 출력되지 않는 것을 확인할 수 있다. Printf,Fprintf,Sprintf에서 문자열 형식을 사용할 때는 Percent sign(%)를 사용하여 형식을 지정하기 때문이다. Percent sign in ..

Go 2023.02.22

[Go] Read File Line by Line

Go에서 File를 Line별로 읽는 방법에 대해서 알아보자. bufio 패키지를 이용해서 해당 작업을 수행할 수 있다. 우선 읽을 파일을 NewScanner 함수로 보내서 Scanner를 반환받자. Scanner는 개행으로 구분된 텍스트 행의 파일과 같은 데이터를 읽기 위한 편리한 인터페이스를 제공한다. func (s *Scanner) Scan() bool {} func (s *Scanner) Text() string {} Scan 메서드는 Sacnner를 다음 Token으로 이동시킨다. 입력의 끝에 도달하거나 오류가 발생하면 False를 반환한다. Text 메서드는 Scan 메서드 호출로 생성된 가장 최근 Token를 반환한다. 예제 /path/my/example.txt line1 line2 line..

Go 2023.02.21
반응형