모듈과 패키지

1. 모듈의 변천과정

  • Go 1.11 이전 : 모듈 존재 X
  • Go 1.11 : 모듈이 소개되었지만 미완성
  • Go 1.13 : 모듈 완성
  • Go 1.16 : 모듈이 이제 기본이 되었다.

1) 모듈

모듈은 패키지의 모음

2) 패키지

패키지는 코드를 묶는 단위로 모든 코드는 반드시 패키지로 묶여야 한다.

우리가 흔히 부르는 프로그램은 다양한 관점에서 의미를 해석할수 있을 텐데 실핼파일 관점에서보면 실행시작 지점을 포함한 패키지. 즉, main함수를 포함한 main패키지이다.

그외의 패키지들은 실행시점을 포함하지 않은 패키지로 프로그램의 보조패키지로 동작한다.



2. 패키지 import

//case 1
import "fmt"

//case2
import (
  "fmt"
  "math/rand"
)
fmt.Println(rand.Int())


//case3
import (
  "text/template"
  htemplate "html/template"
)

◾ 사용하지 않는 package

import (
  "fmt"
  "math/rand"
  _ "strings"
)

별칭으로 _를 주면 import하되 사용하지 않아도 import가 가능

패키지 초기화에 따른 부가효과를 위해서 import해야만 하는 경우가 존재한다.


3. 패키지 외부 공개

함수나 구조체, 구조체 필드들은 대문자로 시작해야 외부에서 접근이 가능하다. 소문자로 시작한다면 같은 패키지내부에서만 접근이 가능하다.





Reference

『Tucker의 Go 언어 프로그래밍』 스터디 요약 노트

Tags :

Related Posts

돈버는 말투, 돈 버리는 말투

돈버는 말투, 돈 버리는 말투

  • Books
  • 2021년 4월 23일

저자는 일본인으로 우리 한국과 일부 사회상이 안맞는 부분이 있긴 하지만 전체적으로 공감할 만한 부분들이 많았고 책도 양이 많지 않아 금방 읽힌 책이었으며, 책을 읽다보면 당연한 소리를 하고있는 것 같지만 그 당연한 것들을 지키기가 어려운 것이기에 공감한 부분들을 이곳에 정리해두려고 한다. 1. 자신의 업무 철학 확립 자신만의 업무 철학을 물었을때는 이것에 대...

Read More
Counting Sort ( 계수 정렬 )

Counting Sort ( 계수 정렬 )

계수 정렬은 삽입, 버블, 선택, 퀵, 합병 정렬들과 같이 비교를 수행하는 방식이 아닌 비교를 하지 않는 Non-Comparisions Sorting Algorithm 이다. 그러면 여기서 값을 정렬하는데 어떻게 비교 없이 수행하나요? 와 같은 질문이 있을 텐데, 계수 정렬은 비교 대신 정렬할 수의 개수와 배열의 인덱스를 가지고 정렬을 수행하게 된다. 1. 기본적인 흐름 2 1 2 4 5 3 6 5 3 을 정렬하고자 한다면 1의...

Read More
Graph

Graph

연결되어 있는 객체 간의 관계를 표현할 수 있는 자료구조로 Tree도 그래프의 일종인데 그래프 중에서도 사이클이 허용되지 않는 그래프이다. 1. 개념 정점(vertex) / 노드(node) : 위치 간선(edge) / 링크(link) : 위치간의 관계 인접 정점 : 간선에 의해 직접 연결된 노드 차수 : 하나의 노드에 인접한 노드의 수 경로 길이 : 경로를...

Read More