버전에 따른 변화 1.11 버전부터 의존성 관리, 패키지 관리기능이 추가 1.16 버전부터 go.mod를 GOPATH 대신 디폴트로 사용하도록 변경 GOPATH의 문제 1. GOPATH를 바꾸지 않으려면 모든 프로젝트는 한 workspace에 저장되여야한다. 2. 새로운 directory를 만들어서 개발하려면 GOPATH를 변경하고 또 필요한 패키지를 가져와야한다. 3. 패키지가 저장되는곳은 패키지네임과 같은 directory라서 여러버전을 설치할수 없다. 위와 같은 문제로 개발을 위한 workspace가 GOPATH에 고정이 되어버려서 의존성 관리가 불가능해진다. 이와 같은 문제를 해결한 GoModule은 위의 문제들에 구애받지 않고 사용이 가능하다. 관련 명령어 1. go mod init [path]..
go
서버에 접속해서 항상 직접실행하여 실행시키는것이 번거로워 자동으로 실행되게 수정 1. 서비스 파일 생성 /etc/systemd/system 위치 이동후 sudo vi 서비스이름.service 생성 nano로 하여도 상관 없음 2. [Unit] Description=Service Example [Service] ExecStart=/var/projects/myapp WorkingDirectory=/var/projects [Install] WantedBy=multi-user.target WantedBy : systemctl enable 명령어로 유닛을 등록할때 등록에 필요한 유닛을 지정해줍니다. ExecStart : 실행할 어플리케이션의 전체 경로 ( 실행파일 ) WorkingDirectory : 프로세스의 ..
Go에서 fmt 패키지는 콘솔에 출력하는 함수들을 제공하고, fmt 패키지의 함수를 이용하여 텍스트 입출력을 할 수 있다. 출력 Print는 인자로 받은 값을 그대로 출력한다. package main import "fmt" func main() { fmt.Print("hello, world") } 위 코드를 실행하면 hello, world 라는 문구가 콘솔에 출력된다. Printf는 C 언어의 printf 함수와 유사한 형식으로 출력할 수 있도록 해줍니다. package main import "fmt" func main() { name := "John" age := 30 fmt.Printf("My name is %s and I'm %d years old.\n", name, age) } 위 코드에서 %s는..
Go언어의 변수는 값을 저장하기 위한 공간을 의미한다. 변수를 사용하여 값을 저장하고 필요한 곳에서 다시 사용할 수 있고, 변수는 데이터 타입에 따라 다른 크기와 형태를 가질 수 있다. Go언어에서 변수는 다음과 같이 선언한다. var 변수명 데이터타입 예를 들어 정수형 변수를 선언하고자 한다면 var age int 이런식으로 사용할수 있다. 이 코드는 age라는 변수를 선언하고, 이 변수는 정수형 데이터 타입을 가지는 것을 의미한다. 변수를 초기화하지 않으면 Go언어에서는 해당 데이터 타입의 기본값으로 초기화된다. 예를 들어, 정수형 변수는 0으로 초기화된다. 변수에 값을 할당하려면 다음과 같이 변수 이름과 할당할 값을 = 기호로 연결하여 작성해야한다. var age int age = 27 당연하게도 ..