Go언어 5

[Go언어] 알파인리눅스(Alpine Linux)에서 Go 1.20이상 실행하기 (__res_search: symbol not found, libresolv.so.2)

[개발 환경] Kubernetes Alpine Linux (3.16) Go (1.19 → 1.20) go언어로 프로젝트를 진행하던 도중 go 버전을 1.19에서 1.20으로 올린 뒤 빌드를 진행하였다. 그리고 발생한 에러 Error loading shared library libresolv.so.2: No such file or directory (needed by /my_project) Error relocating /my_project: __res_search: symbol not found __res_search 심볼을 찾지 못한다는 에러인데 구글링을 열심히 해보니 경량 OS 이미지인 알파인(Alpine) 리눅스에서 해당 라이브러리가 없다는 사실을 알아냈다. 그럼 어떻게 해결하는지 확인했는데 생각보..

Go언어 2023.10.23
[Go언어] 구조체 패딩 & 패킹 (Golang struct padding & packing)

Go 프로젝트를 진행하면서 다른 프로세스와의 TCP 통신 구조를 만들어야했다. 그래서 Go언어의 구조체는 패딩바이트가 들어가는지 확인을 해보았다. (패딩이 뭔지 모른다면 아래 글을 참조) https://hackerpark.tistory.com/entry/CC-%EA%B5%AC%EC%A1%B0%EC%B2%B4%ED%81%B4%EB%9E%98%EC%8A%A4-%ED%8C%A8%EB%94%A9-struct-class-padding [C/C++] 구조체(클래스) 패딩 (struct, class padding) 패딩 (padding) 패딩이란 CPU의 효율을 높이기 위해서 효율적으로 메모리를 사용하는 기법 중에 하나이다. (여기서의 효율이란 저장 공간 효율이 아닌 데이터 처리 속도 효율을 의미한다.) 어떤 식 h..

Go언어 2022.11.16
[GO언어] Go 환경 변수 및 버전 관리하기 (GOROOT, GOPATH)

[이 포스팅은 Windows 환경을 기준으로 작성하였습니다.] GoLand 설치 이후 개발을 진행하던 도중 환경변수가 꼬이는 탓에 엄청난 삽질을 하고 결국 싹 밀고 다시 정리해서 해결하였다. 이 글을 통해 Windows 환경에서 여러 Go 언어 버전에 대한 관리와 GoLand 를 사용한 개발 시 GOROOT, GOPATH 와 같은 환경변수의 관리 및 정리를 기록하려고 한다. GOROOT java 에 비유하자면 JAVA_HOME 같은 환경변수로 Go SDK 를 설치한 경로를 지정하는 환경변수이다. Windows 에서 Go 를 설치하면 기본으로 C:\Program Files\go 경로에 설치가 되고 동시에 기본 GOROOT 의 경로가 된다. GOPATH 개발하는 Go 프로젝트에서 import 할 모듈들이 설..

Go언어 2022.10.04
[Golang] Go 언어 module (mod) 설정

간단한 Go 예제 샘플이 아닌 실무에서 사용할 수 있는 패키지 구성이 필요했다. Go 프로젝트도 한 개가 아닌 상황에서 프로젝트 안에서 사용하는 go package 가 많아지고 있었기 때문에 기능별 package 를 세분화해서 관리를 하려고 했다. 문제는 같은 프로젝트에서 만든 package 를 못 찾는다는 점이었다. 프로젝트의 module 이 생성되어있지 않아서 생긴 문제로 module 생성을 하면 해결되는 문제이다. 우선 module 을 아래의 방법으로 생성한다. $ cd ${project_directory} $ go mod init ${module_name} go: creating new go.mod: module ${module_name} go: to add module requirements a..

Go언어 2022.09.29
[Golang] go 언어 개발 시작하기

go언어는 2018년도부터 관심을 가지고 틈틈이 공부하고 있었는데 얼마 전 새로운 프로젝트를 go언어로 진행하게 되었다. go언어에 대해서는 많은 것들이 새로운 경험이기 때문에 프로젝트 도중 경험하게 될 수많은 삽질(?) 들을 정리할 예정이다. 그중 처음 시작인 GoLand 설치 과정을 정리해볼까 한다. 개발자에게 IDE 이란 굉장히 중요한 툴이라고 생각한다. (개발자의 눈과 손이다.) 새로운 언어를 접하게 된다면 새로운 IDE 를 알아보는 설렘도 느낄 수 있다. Go언어는 찾아보니 대부분 실무에서 두 종류의 IDE 를 사용하는 것으로 보인다. Microsoft 에서 개발한 비주얼 스튜디오 코드 (Visual Studio Code) JetBrains 에서 개발한 고랜드 (GoLand) 더보기 두 종류라고..

Go언어 2022.09.29
반응형