go 7

[go] vscode Error 및 Warning

개요 vscode에서 코딩시 발생하는 오류들을 정리 합니다. (ST1017) Yoda conditions don't use Yoda conditions (ST1017) go-staticcheck https://knowthecode.io/yoda-conditions-yoda-not-yoda Yoda Conditions: To Yoda or Not to Yoda - Know the Code Tonya explains the Yoda conditions programming style. She discusses its intent and the problem it seeks to solve. A handy guide and litmus test are included to help you decide when..

ProgrammingLang/Go 2023.02.02

[go] go mod vendor 사용법

개요 go mod vendor의 사용법을 알아보겠습니다. go mod vendor 필요 성 go에서는 1.13부터 module이라는 기능을 이용하여 package의 의존성을 자동으로 관리를 해줍니다. 그러나 여기서 하나의 문제점이 발생을 합니다. 그것은 go module을 사용하기 위해서는 항상 internet에 연결이 되어있어야 한다는 것입니다. 하지만 일반적으로 제품 개발 시는 보안을 위해서 폐쇠망에서 build를 합니다. 그러면 go module을 통해서 package를 다운로드할 수가 없습니다. 그래서 필요한 기능이 다운로드한 package에서 compile시 필요한 파일만 보관하는 기능인 go module의 vendor 기능입니다. 우선 간단한 테스트를 위해서 logrus를 사용하는 packag..

ProgrammingLang/Go 2023.01.31

[go] 내부 module 및 package 만들기

개요 이전 post([go] 1. downloading 가능한 module 및 package 만들기)에서 download가능한 module을 만들어 보았습니다. 그러나 program 을 개발 하다보면 외부에 노출 되면 안되는 module들도 많이 개발합니다. 그러면 이러한 module을 어떻게 만들면 되는지 알아보겠습니다. 참조 : https://go.dev/doc/tutorial/call-module-code 절차 1. 내부 모듈 생성 (inner_hello) 2. 내부 모듈 경로 설정 3. main package에서 호출 내부 모듈 생성 (inner) 내부 모듈은 main package directory에서 생성을 합니다. 1. inner 생성 #mkdir inner 2. inner_hello mod..

ProgrammingLang/Go 2023.01.20

[go] downloading 가능한 module 및 package 만들기

개요 go 1.19 기준에서 프로그램을 가끔 만들면 사용자 module 를 만들어야 할 때가 매우 많이 생깁니다. 그런데 항상 module 만드는 방법을 까먹습니다. 우선 첫 번째 post에서 download가능한 module을 만들어 볼것 입니다. 참고로, 모든 정보는 https://go.dev/ 에서 가져왔습니다. 알고 싶은 것 1. 나만의 module를 만드는 순서 필요한 사전 지식 - module과 package의 관계 - module 용도 - package 용도 module과 package의 관계 https://go.dev/doc/tutorial/create-module Go 코드는 package로 그룹화되고 package는 module로 그룹화됩니다. 그래서 나만의 module을 만들때는 mo..

ProgrammingLang/Go 2023.01.19

[go] 개발에 도움되는 오픈소스

1. cli 개발에 도움주는 패키지 각종 옵션 및 서브 명령어를 쉽게 사용 할 수 있도록 도와 줍니다. https://cli.urfave.org/ Welcome - urfave/cli Welcome to urfave/cli urfave/cli is a simple, fast, and fun package for building command line apps in Go. The goal is to enable developers to write fast and distributable command line applications in an expressive way. These are the guides for each major s cli.urfave.org

ProgrammingLang/Go 2023.01.18

[web server] 1. golang web framework 설치

개요 golang을 이용하여 backend web server를 구축해 보겠습니다. 그리고 web server를 k8s에 올리는 방법을 알아보겠습니다. 구축 스펙 항목 버전 OS ubuntu 20.04 golang go 1.18.5 web framework 1. 정보 golang으로 구현된 webframework인 gin gonic 을 사용해서 설치해보겠습니다. 그외 다른 golang webframework 확인 방법 https://github.com/mingrammer/go-web-framework-stars GitHub - mingrammer/go-web-framework-stars: Web frameworks for Go, most starred on GitHub :star: Web framewor..

[Go Lang] 2. 핵심 문법

본 Go에 대한 모든 실습은 Linux(ubunutu)에서 진행 합니다. 1. 선언과 관련 키워드 개념 및 사용법 - 프로그램 개발 순서대로 나열 분류 키워드 설명 사용법 package package 현재 작업하는 파일 어느 package에 속하는지 선언 합니다. - package 패키지명 package main import 현재 작업하는 파일에서 사용 할 package를 선언 합니다 import ( "패키지명" "패키지명" ) import ( "fmt" "log" ) 변수 var - 변수를 선언 합니다. - go에는 초기화 안되는 변수가 없으며 초기화 값 아래 표기 숫자 = 0, boolean = false string = "" interface = nil - 여러 방식의 선언이 가능 합니다. 1. v..

ProgrammingLang/Go 2020.06.09