Go(golang) 패키지(package) - 1 패키지를 이용하여 프로그램 만들기

 안녕하세요. 알렉스 입니다. 이번에는 패키지의 개념에 대해서 알기 전에 먼저 패키지로 go 프로그램을 짜도록 하겠습니다.


작성할 코드는 간단한 "Hello World"를 출력해 주고 float64배열을 받아서 ASCII코드로 그래프를 그려주는 패키지를 사용할 것입니다. "Hello World"는 직접 패키지를 만들것이고 ASCII코드로 그래프를 그려주는 패키지는 외부에서 받을 것입니다.



사진1) 프로젝트 폴더 생성



사진2) hello폴더 및 go 파일 생성


사진3) hello.go 코딩


위 hello.go는 main함수가 아닌 hello패키지의 한 function입니다. 해당 패키지의 함수를 외부에서 참고하기 위해서는 함부 맨 앞글자가 반드시 대문자여야 합니다. (소문자면 해당 파일에만 사용할수 있음)


사진4) main.go 코딩


새로운 go module 생성하기

$ go mod init [module name]


사진4에서 5번째 줄에서 작성한 패키지의 앞부분은 모듈이름 입니다. 해당 모듈내의 폴더를 참고하는 것입니다. 즉 hello_project(모듈) -> hello(폴더)를 패키지를 부를때 참고하겠다는 것입니다. 그리고 현재 유일하게 있는 패키지는 hello외에 없습니다.


모듈의 요구사항 및 sums을 추가하기 위한 cli

$ go tidy


사진5) 'go tidy' 이후 결과

이제 'go tidy'를 이용하여 외부패키지를 다운 받습니다. 이때 'go.sum'파일이 생성됩니다.


사진6) go.sum파일 

node로 비교하자면 go.mod는 package.json과 비슷하고 go.sum은 package-lock.json과 비슷하다고 볼수 있습니다.


go 파일을 바로 실행하기

$ go run [Main File]



빌드후 실행 파일을 실행하기(참고링크)

$ go build



사진5) go 실행 결과


모듈상태에서 go프로그램을 실행하기 위해서는 2가지 방법이 있습니다. main.go파일을 직접 실행하거나 모듈을 build하여 해당 binary파일을 실행하는 것입니다. 첫번째 방법은 소스코드가 있으면 간단히 실행할수 있습니다. 

 하지만 2번째는 해당 OS환경에 맞춰서 실행파일이 생성되기 때문에 다른 OS에서 실행할려면 실행할려는 OS에서 build를 해야 합니다.




댓글

이 블로그의 인기 게시물

Lesson 12_1 프로퍼티 노드(Property Node)

DAQ로 전압 측정하기-2

Lesson 12_2 참조를 이용한 프로퍼티노드(Property Node)