본문 바로가기
Computer language and framework/GO

[Go] Go workspace 설정 , 패키지, 변수 , 자료형, 포인터

by WhiteGoblin 2020. 4. 8.
반응형

이 글은 우선 Golang 을 설치 했다는 가정하에 진행하겠습니다. 

 

기본적으로 Go Lang 을 배우는 입장에서 작성하는 글이어서 부족한 부분이 많기에 많은 비판과 수정할 사항들을

 

적어주시면 감사하겠습니다.  : ) 다양한 Go lang 서적을 참고 하고 있습니다. 

 

Hands-On Full stak development with Go ( Mina Andrawos )

 

1. 워크 스페이스 설정 

 

우선 작업을 진행할 폴더를 생성해줍니다. 

 

폴더를 생성한후 생성 해야하는 폴더가 3가지가 있는데 

src , pkg , bin 이렇게 3가지입니다. 

 

  • src  : 모든 소스 코드 저장
  • pkg : 컴파일된 패키지 파일을 저장
  • bin  : 프로그램 바이너리 파일 저장 

 

주요 환경변수 

 

  • goroot : go의 설치 경로 ( 설치시 기본으로 설정이 되지만 , 다른 위치에 설치 할 경우 설정해주어야 한다. )
  • gopath : 현재 작업중인 workspace 폴더 경로를 가리킨다. 설정하지 않았을 경우 기본 경로로 설정되어있다. 

 

맥 의 경우 

 

~/.bash_profile 에 가서 

 

export GOPATH="workspace의 경로 입력"

 

해준 다음 source 명령어를 통해 다시 새로 고쳐주고 go env ( go 의 환경 설정을 볼수 있는 명령어 ) 를 통해서 보면

 

gopath 가 설정된것

위 그림 처럼 gopath 가 설정된것을 확인 할 수 있다. 

 

2. 패키지 , 변수 , 자료형 , 포인터 

  • 패키지 
    • Go 프로그램은 기본적으로 하나 이상의 패키지로 구성된다.
    • 패키지 폴더는 src 폴더 하위에 위치한다. 
    • 일반적으로 소문자로 선언 , 패키지 폴더명은 패키지 이름과 동일하게 하는것이 나중에 혼돈을 방지 한다. 
    • import 를 통해서 다른 패키지를 불러올수 있다. 

      ex)

      import "fmt" 
      // 가장 기본적인 fmt 패키지를 불러온다. 
    • go install vs go build 
      • 둘 다 실행하게 되면 실행 파일을 만들게 된다. 
      • go install -> 컴파일 완료되면 바이너리 ( binary )는 워크스페이스 bin 안에 저장된다. 
      • go build -> 현재 폴더 안에 생성된다. 
        ※차후 둘에 대한 차이를 확실하게 알게 되면 추가적으로 기재 하겠습니다. 
  • 변수와 자료형 
    • var 를 이용한다. 
      • var s string 
    • 자료형 선언 안하고 초기화 하는 경우 
      • s := "hello"
        • s는 자동으로 string 형의 hello 값을 가지게 된다. 
      • bool , string , int , int8 ... 
      • uint ,uint8... ( 부호가 없는 양수의 정수형 )
      • byte ( uint8과 같고 크기는 바이트를 나타내는 8 비트 ) 
      • rune ( int32 과 같다 , 보통 유니코드 문자를 나타내기 위해 사용)
      • float32 , float64 ( 소수 ) 
      • complex64 , complex128 ( 복소수 , 아직까지는 한번도 사용해본적이 없다....) 
    • 포인터 
      • C 언어에 익숙한 사람들이라면 반드시 접해본 경험이 있는 항목이지만 누구나에게나 처음은 어려운 항목이다. 
      • " 주소를 나타내는 변수" 라는 말이 포인터에게는 가장 맞는 말인거 같다. 
        • 주소를 나타내는 변수 
        • 주소에 있는 값을 가지고 올수 있는 변수
        • 주소에 있는 값을 변경 할수 있는 변수 
        • 주소 참조 vs 값 복사
        • 위 네가지 정도가 포인터를 사용함에 있어서 개념을 정리하는데 도움이 되는것 같다. 
      • 선언 
        • var iptr *int 

이 처럼 기본적인 워크스페이스 ( 작업장 ) 패키지 개념 , 변수 자료형 종류 , 포인터 이렇게 정리를 해보았다 

 

설명이 매우 부족하지만 개념을 정리하여 간단하게 보고 난 다음에 세세하게 공부해보는것도 나쁘지 않다고 생각된다. 

반응형

'Computer language and framework > GO' 카테고리의 다른 글

[GO] graceful shutdown 이란?  (0) 2023.02.20
[GO] Golang http  (2) 2023.01.26
[GO] Golang json 사용하기  (0) 2023.01.15
[Go] 간단한 gorm 사용기  (0) 2022.06.24
[Go] Go 자료 구조  (0) 2020.04.15