본문 바로가기

golang18

Golang Constants(상수) 상수란?상수는 프로그램 실행 중 변경되지 않는 고정된 값을 나타냅니다. 상수 정의Golang에서 상수는 const 키워드를 사용하여 정의합니다.const Pi = 3.14159const MaxUsers = 100const Greeting = "Hello, World!" 여러 상수를 그룹으로 정의할 수도 있습니다const ( StatusOK = 200 StatusNotFound = 404 StatusInternalServerError = 500)타입이 있는 상수와 없는 상수1. 타입이 없는 상수const MaxValue = 100 2. 타입이 있는 상수const MaxValue int = 10 타입이 없는 상수는 더 유연하게 사용할 수 있으며, 필요에 따라 암시적으로 타입 변환이 가능합니다.. 2024. 7. 20.
Golang 변수와 Scope(스코프) 이해하기 변수선언var 키워드 사용Golang에서는 var 키워드를 사용합니다.`var {변수_이름} 타입` 의 형태를 따릅니다.var name stringvar age intvar isStudent bool short variable declarationGolang에서 타입추론이 가능합니다.`:=`구문은 암묵적으로 타입 할당문을 사용할 수 있습니다.`:=`구문은 함수 내에서만 사용할 수 있습니다. 패키지 레벨에서는 사용할 수 없습니다.함수 내부에서 암묵적 유형의 선언 :=대신 짧은 할당 문을 사용할 수 있습니다.name := "Gopher"age := 25isStudent := true패키지 레벨 선언의 제한사항명확성과 일관성Go는 코드의 명확성과 일관성을 매우 중요하게 여깁니다. := 연산자는 변수의 선언과 .. 2024. 7. 19.
Golang Module(모듈) 발행 가이드: GitHub에 패키지 배포 Go 모듈, 왜 사용해야 할까?버전 관리 용이: 특정 버전 지정으로 프로젝트 재현성을 보장합니다.종속성 관리 간소화: go.mod로 종속성을 명확히 정의하고 관리합니다.외부 패키지 사용 편리: go get으로 쉽게 패키지를 추가하고 관리합니다.$GOPATH 의존성 제거: 프로젝트의 독립적인 관리가 가능해집니다.빌드 성능 향상: 필요한 패키지만 사용하여 빌드 속도가 개선됩니다.프로젝트 생성예제 프로젝트를 생성하겠습니다.$ go mod init slowin.com/examplego: creating new go.mod: module slowin.com/example$ go get rsc.io/quote/v3go: downloading rsc.io/quote/v3 v3.1.0go: added golang.or.. 2024. 7. 18.
Golang Package(패키지) 종속성 관리와 모듈화 Go 언어의 창시자 중 한 명인 Rob Pike는 Google에서 대규모 C++ 프로젝트를 개발하면서 정말 답답한 상황에 직면했습니다. 그의 팀은 대규모 컴퓨팅 클러스터를 구축하고 있었는데, 전체 시스템을 컴파일하는 데 무려 1시간이나 걸렸습니다. 이런 긴 컴파일 시간의 주요 원인은 바로 복잡한 종속성 계층 구조였고, 이는 개발자들에게 엄청난 스트레스를 주고 있었습니다. Rob Pike : "어느 날 보니 이해할 수 없는 종속성 패키지가 빌드되고 있었습니다. 찾아보니 전혀 사용하지 않는 패키지였고, 그 패키지의 빌드를 위해 37,000번이나 컴파일되고 있었습니다. 정말 머리가 아픈 상황이었죠." [Google I/O 2012 - Meet the Go Team ] 이러한 짜증 나고 비효율적인 경험은 롭파이.. 2024. 7. 17.
Golang Package(패키지) 네이밍 가이드: 효과적인 패키지 이름 짓기 12가지 팁 [go.dev/blog/package-names 포스팅 참고]좋은 패키지 이름은 짧고 명확해야 합니다.1. 소문자로 작성되며, 밑줄이나 혼합 대소문자가 없습니다.좋은 예시:* time (시간 측정 및 표시 기능 제공)* list (이중 연결 리스트 구현)* http (HTTP 클라이언트 및 서버 구현) 2. 다른 언어에서 사용되는 일반적인 패턴이 Go에서는 관용적으로 사용되지 않을 수 있습니다.좋지 않은 예시:* computeServiceClient* priority_queue 3. 약어는 신중하게 사용되어야 하며, 프로그래머 누구나 쉽게 이해할 수 있는 영역에서는 축약된 단어를 사용할 수 있습니다.축약 사용 예시:* strconv (문자열 변환)* syscall (시스템 호출)* fmt (형식화된 I/.. 2024. 7. 16.
Golang Package(패키지) 기본 개념: 구조, 사용법 및 모범 사례 가이드 Golang Package 기본개념 [https://go.dev/blog/organizing-go-code 참고]Golang 에서 package 란?패키지는 관련된 Go 코드들을 모아놓은 폴더라고 생각하면 됩니다. 예를 들어, 수학 계산과 관련된 코드를 모아놓은 패키지를 "math"라고 하고, 문자열을 다루는 코드들을 "strings"라는 패키지로 모아둡니다.이처럼 패키지의 특성을 명확히 나타내는 이름을 지정하면, 패키지 이름만 보고도 어떤 기능들이 있는지 유추하기 쉬워집니다. 또한, 관련된 코드가 한 곳에 모이기 때문에 코드의 응집성이 높아지고 유지보수성이 향상될 수 있습니다. 구문(Syntax)1. 패키지 선언package main각 소스 파일은 파일의 맨 위에 `package` 키워드를 사용하여 자.. 2024. 7. 15.