전체 보기 160

[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

[Wiki] 리눅스 기본 편집기를 변경하는 방법 nano -> vim

리눅스 기본 편집기를 변경하는 방법 (feat. nano -> vim) visudo처럼 리눅스에서 특정 작업을 수행할 때, 에디터를 열어서 수행하는 경우가 있습니다. 이럴 때 자신에게 익숙치 않은 에디터가 열리면, 저장은 어떻게 하는지, 편집은 어떻게 수행해야 하는지 난처해지기 마련입니다. 제 경우, nano 편집기보다는 vim 편집기를 주로(거의 99.9%) 사용해왔기 때문에, nano 편집기가 열리면 저장조차 할 줄 모릅니다. (자랑은 아닙니다.) 따라서 어떤 명령어를 수행했을 때, 원하는 편집기가 켜지지 않는 경우, 어떻게 수정을 해주면 될지에 대해 알아보고자 합니다. 전체 흐름을 요약하자면, bashrc 파일 등을 열어서, 자신이 원하는 편집기를 리눅스 환경 변수로 등록해두는 작업입니다. bash..

IT/IT WIKI 2020.08.15

[OpenStack] Snapshot Image를 qcow2 Image로 변환해서 업로드하기

[OpenStack] Snapshot Image를 qcow2 Image로 변환해서 업로드하기 Introduction 오픈스택을 사용하다보면 종종 운용중인 인스턴스의 현재 상태를 스냅샷으로 저장하고 싶을 때가 있습니다. 그리고 제 경우, 이렇게 저장한 스냅샷을 이미지 파일로 가지고 다니고 싶을 때가 있었죠. 사실 컨테이너 진영에서는 이러한 작업이 매우 간단하게 이루어집니다. 기존 이미지에 필요한 작업을 수행한 레이어만 쌓아주면 해결되는 문제니까요. 오픈스택에서도 이러한 작업을 수행할 수 있습니다. 다만 이렇게 수행하고 난 이미지의 크기는 굉장히 큽니다. 어쩌면 이게 정석적인 방법이 아니라 속칭 '야매' 일 수도 있겠다는 생각이 듭니다. 어찌 되었건, 필요하고, 떠오르는 건 이 방법밖에 없으니..

IT/OpenStack 2020.07.26