만쥬의 개발일기
[Go] - golang 에러처리에 대한 고민과 opaque 에러로 똑똑하게 처리하기

프로그램은 여러 가지 원인으로 인해서 의도하지 않은 방향으로 동작하거나, 종료될 수 있습니다. 따라서 어떤 언어를 선택하든간에 로깅과 에러핸들링, 테스팅은 가장 기본적이며 가장 먼저 체화해야 한다고 생각합니다. 다양한 언어에서 오류/예외를 처리할 때 Opaque(불투명) error handling을 채택하곤 합니다. 그렇다면 golang에서는 왜 Opaque error handling을 선택해야 하며, Opaque erro handling이란 무엇인가 알아보겠습니다. Opaque Type (불투명한 타입) 불투명한 반환 타입이 있는 함수 또는 메서드는 반환값의 타입 정보를 가립니다. 함수의 반환 타입으로 구체적인 타입을 제공하는 대신에 반환값은 지원되는 프로토콜 측면에서 설명됩니다. 반환값의 기본 타입이..

article thumbnail
[Go] - Golang으로 사용자 작성 패키지 import 하는 방법

토이 프로젝트를 만들더라도, 파일 계층은 여러개로 나뉠 수 밖에 없는데, 사용자가 만든 파일을 import 하는 것은 당연히 필요한 일이다. golang에서 사용자 패키지를 import하는 방법을 배워보자. 폴더 계층 main 파일과 같은 계층에 폴더를 생성하고, 그 하위에 import하고자 하는 파일을 생성한다. ex) module ├─ main.go │ ├─ ioView │ └─ ioView.go 패키지와 메서드 작성 해당 파일(ioView.go)의 최상단에 package 이름을 적어준다. 주의사항: 패키지는 반드시 소문자로 작성되어야 한다. (파일명과 폴더 명은 상관없다.) + 내보내고자 하는 함수(export)는 반드시 대문자로 시작해야한다. ex) import하는 패키지에 작성된 함수라도, 소문..

article thumbnail
[Go] - 리눅스 환경에 Golang 설치 후 사용해보기

Go를 쓸 일이 언제 오나 싶었는데, 마침 Golang으로 제작된 오픈소스를 쓸 일이 생겨 이 참에 사용해보았다. tar 파일 받기 https://go.dev/dl/ All releases - The Go Programming Language go.dev 먼저 Go 공식 홈페이지에서 리눅스용 Go를 다운받습니다. tar.gz는 tar 파일을 압축한 상태입니다. 따라서 압축 파일을 받은 뒤 다음 명령어로 압축을 풀어줍니다. tar -xvzf 아카이브파일.tar.gz Go 위치 설정 압축이 풀린 go 폴더가 생성되었다면, 원하는 위치로 위치를 옮겨 줍니다. 저는 다음 명령어를 통해 /usr/local 위치로 옮겨 주었습니다. sudo mv go /usr/local Go PATH 등록하기 저는 Zsh 셸을 사..