본문 바로가기

package4

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.