전체 글 162

[Go/Golang] go test 실행 시 gcc 에러가 발생하는 경우(mac, windows, linux)

vscode로 testing을 수행하다 -v 옵션을 주는 방법을 찾을 수가 없어서, windows 터미널에서 wsl을 켜고 go test -v를 수행했는데 에러가 발생했다. cgo: exec gcc: exec: "gcc": executable file not found in $PATH 이런 에러가 발생하는 경우, 간단하게 해결 가능하다. CGO이기 때문에 GCC로 컴파일 등을 해야하는데, GCC가 없어서 발생하는 에러이기 때문이다. 다음의 패키지를 설치해주자. sudo apt-get install -y build-essential

IT/Go 2021.02.19

[Go/Golang] go get 과 go install 은 어떻게 다른 것일까?

go install vs. go get Golang을 사용하다보면 go get 명령과 go install 명령을 자주 마주친다. 이참에 차이를 알아보고자 정리해보았다. go install은 local에서 작업할 때 이용하는 명령어이다. 예를 들어, 어떤 라이브러리를 사용하고자 하는데 몇몇 이유로 인해 해당 라이브러리에 수정이 필요한 경우 다음과 같은 워크플로우를 가져갈 수 있다. go get -d library - 라이브러리를 다운로드만 받음. 다운로드 받은 library에 필요한 수정 사항을 반영 go install library - 로컬 버전의 라이브러리를 설치. 정리하자면, go get 명령어는 외부에 위치한 패키지를 다운로드 받고 수정하는 것은 불가능하다. 따라서 go get은 go install..

IT/Go 2021.02.19

[Go/Golang] Go 1.16 부터 io/ioutil 패키지가 deprecated 됩니다.

오늘 Go 1.16이 릴리즈 되고 나서 릴리즈 노트를 읽던 중에 io/ioutil이 지원 중단될 예정이라는 걸 보았다. (참고 : Go 1.16 Release Notes - The Go Programming Language (golang.org)) 릴리즈 노트에는 다음과 같이 기록되어 있다. The io/ioutil package has turned out to be a poorly defined and hard to understand collection of things. All functionality provided by the package has been moved to other packages. The io/ioutil package remains and will continue to wo..

IT/Go 2021.02.18

[Go/Golang] Go 1.16 정식 Release! Apple Silicon Mac Native 지원

드디어 Go 1.16이 릴리즈 되었다! 가장 눈에 띄는 것부터 짚어 보자면, Go 1.16 부터는 Apple Silicon Mac의 ARM64 아키텍처를 네이티브로 지원하여, 더 이상 Rosetta를 이용하지 않아도 된다. Go 1.16 부터는 Go module을 디폴트로 사용하게 되었다. 2020 Go Developer Survey에 따르면 이미 Go 개발자의 96%가 Go module을 사용하는 쪽으로 전환하였다는 답변을 했다고 한다. Go 1.16은 기존 버전보다 최대 25% 더 빠르고 메모리를 15% 적게 사용하게 되었다고 한다. 이외에도 다양한 수정사항이나 발전사항이 있으니 추후 포스팅에서 작성해봐야겠다! 그동안 Go 1.16 RC 를 사용해오던 유저로서, 정식 버전을 사용할 수 있게 되어 너무..

IT/Go 2021.02.18

[Go/Golang] Go Slice에서 중복 제거 하기(struct 활용)

Python에서 중복을 제거할 땐 원소의 위치가 중요하지 않다면, 셋으로 변환한 후, 다시 리스트로 변환해주면 중복을 제거할 수 있다. Go에서는 이런 트릭은 따로 존재하지 않는다. 따라서 직접 로직을 구현해야 한다. (요즘 Go에 푹 빠져서 살고 있는데, 이런 점이 매력인 것 같다) 아래는 String 타입의 Slice에서 중복을 제거하는 코드이다. 다른 자료형의 Slice라면 해당 자료형에 알맞은 코드를 구현하면 된다. func makeSliceUnique(s []string) []string { keys := make(map[string]struct{}) res := make([]string, 0) for _, val := range s { if _, ok := keys[val]; ok { cont..

IT/Go 2021.02.14

[Kubernetes] CKA (Certified Kubernetes Administrator) (v1.19 기준) 시험 후기

3줄 TL;DR - 시험 구매는 할인을 많이 할 때.. - 시험공부는 Udemy에서... - Imperative 명령어는 사드세요... 제발... 후기 및 시험 준비 과정 지난 20년 12월 31일, 작년의 마지막을 Kubernetes와 함께 하겠다는 마음가짐으로 CKA 시험을 치르게 되었다. 비싼 시험 비용을 지불했기 때문에 꼭 붙어야 한다는 생각이 컸다. 특히 시험의 기준 버전이 v1.18에서 v1.19로 올라 v1.18에서 쓰인 후기들은 많이 봤지만 v1.19 후기가 별로 없어 v1.20으로 오르기 전에 빨리 쳐야 할 것 같은 압박감 아닌 압박감을 느끼고 있던 중이었다. 내 경우, 20년 블랙 프라이데이가 끝나고 찾아온 Cyber Monday 때 할인을 받아, CKA+LF Training cours..

IT/Kubernetes 2021.01.16

[Mac/Python] ARM Mac에서 Pygame 라이브러리 사용하기 (Using pygame library in M1 ARM Mac)

Pygame을 찾아서 Intel을 떠나 ARM Mac으로 이주하게 된 지 얼마 되지 않았지만, 벌써부터 곳곳에서 개발 환경 구축에 어려움을 겪고 있다. 오늘도 어김없이 하드 한 시간을 보냈고, 기억을 위해 기록을 해보고자 한다. pygame 라이브러리를 받아다가 게임이나 만들어볼까 하던 차에, $ python3 -m pip install pygame을 해보았지만, 아래에서 보게 될 에러를 내뿜고 있었다. 에러를 해결하는게 귀찮아서, pygame github release를 확인해보니 intel만 제공하고 있는 것이 아닌가. 눈물을 머금고 구글신께 의탁해 M1 선배님들께서 빌드를 해놓으시지 않을까 하는 일말의 희망을 갖고 열심히 검색해보았지만 허사였다. 눈 앞이 캄캄해지고, 가슴이 턱 막혔다. 별 수 없다..

Apple/Mac 2020.12.25

[Kubernetes] Kubernetes와 Docker (Kubernetes v1.20)

Kubernetes가 v1.20 업데이트 이후로 Docker를 Deprecate 하기로 결정했다. (출처 : https://github.com/kubernetes/kubernetes/blob/master/CHANGELOG/CHANGELOG-1.20.md#deprecation) Deprecate Dockershim #94624 정확히 말하자면, Kubelet에서 Dockershim의 지원이 Deprecation 된 것이다. Kubernetes는 CRI (Container Runtime Interface) 인터페이스를 통해 컨테이너 런타임과 통신한다. CRI는 컨테이너 런타임과의 인터페이스 표준(API)을 정의한 것으로, Kubernetes CRI를 지원하면, 엔드 유저 입장에선 지금까지 써오던 Kubern..

IT/Kubernetes 2020.12.22

[Mac] M1 Mac에서 재부팅 또는 시스템 종료할 때 커널 패닉이 발생하는 현상

최근에 Apple에서 발표한 자체 개발 칩 M1. 미친듯한 성능을 보여주며, 많은 사람의 이목을 집중시키는데 성공했고, 나의 지갑을 여는데에도 성공했다. 그러나 며칠 사용하다보니 느낀건, 역시 1세대는 걸렀어야 하는 것인가.. 하는 후회가 든다. 빠른 속도로 많은 소프트웨어들이 M1에 맞춰가고 있긴하지만, 그 속도가 맘에 쏙 들지만은 않는다. 특히 Karabiner.......... 나는 Karabiner로 정말 많은 세팅을 해두었는데, M1 Native하게 동작한대서 기쁜 마음으로 사용하고 있었다. 그런데 이게 웬 걸, 맥을 시스템 종료할 때마다 분홍색 화면이 번쩍 켜지더니, 이내 다시 부팅이 되는 것이 아닌가. 그리고 나타나는 '시동 패닉'이 발생했다는 문구. 워낙에 이런 패닉 현상을 ..

Apple/Mac 2020.12.15

[Mac] Activity Monitor에서 점유율 등의 정보가 나타나지 않는 경우 해결 방법

[Mac] Activity Monitor에서 점유율 등 정보를 볼 수 없는 경우 얼마전에 CPU 점유율 등을 확인하려고 액티비티 모니터를 열었습니다. 그런데 이게 웬걸? 프로세스 이름을 제외하고는 아무 정보가 뜨지 않는 것입니다. 이런 현상이 발생하는 이유는 Activity Monitor의 Property List (plist) 파일이 손상되었기 때문입니다. 따라서 plist 파일을 지워주면 간단히 해결할 수 있습니다. 우선 현재 Activity Monitor가 실행중이라면 종료합니다. Activity Monitor의 plist 파일은 다음의 경로에 위치합니다. ~/Library/Preferences/com.apple.ActivityMonitor.plist Finder에서 cmd + shift + G 단..

Apple/Mac 2020.08.23