GoLang - Go Lang의 장/단점 및 Go Lang 설치

dev_swan·2022년 11월 16일

Golang

목록 보기
1/9
post-thumbnail

Go 프로그래밍 언어의 장/단점

Go 언어 장점

  • 매우 간단한 문법으로 배우기 쉽습니다.
    • Loop 문법으로는 While이 없고 오직 For만 있습니다.
    • Class 문법이 없습니다. OOP Bye~~
  • 정적 타입 / 강타입 언어입니다.
  • 컴파일 속도가 빠른 컴파일 언어입니다.
    • 컴파일 속도가 빨라서 인터프리터 언어처럼 쓸 수 있습니다.
  • 속도가 빠릅니다.
    • Go로 알고리즘 문제를 해결한다면 다른 언어와 비교할 수 없는 빠른 속도로 해결할 수 있습니다.
  • 고루틴이 있습니다.
    • 고루틴은 쓰레드보다 매우 가볍고 쉽게 이용이 가능합니다.
  • 풍부한 기본 모듈을 제공합니다.
    • 자체 제공하는 패키지들이 강력해서 별도의 웹 프레임워크를 사용하지 않아도 웹을 개발할 수 있습니다.
  • 신뢰할 수 있는 제작사, 대기업들이 사용합니다.
    • Go는 구글이 만들었고 YouTube 개발에 사용하는 언어입니다. 해외에는 우버, 넷플릭스, BBC가 사용하고 있으며 Docker 또한 Go로 개발하였습니다.
  • 컨벤션이 통일되어 있습니다.
    • 컨벤션에 맞추어 코드를 수정해주는 Go fmt 기능이 있습니다.
  • 채널 기반 언어입니다.
    • 쓰레드라는 것을 명시적으로 주지 않고 고루틴을 생성하면 알아서 쓰레드를 생성해주고 적절한 쓰레드에 고루틴을 할당합니다.
  • 네이티브 바이너리가 나옵니다.
  • 결과를 배포하는 입장에서 네이티브 바이너리가 나온다는 것은 매우 큰 장점입니다.
  • 그러나 바이트 코드를 생성하는 언어가 아니므로 바이너리만 배포하는 경우 타겟 머신에 맞추어 각각 컴파일을 해야합니다.
  • 인터페이스 기반의 폴리모피즘
    • Go에서 폴리모픽한 코드를 작성하는 유일한 방법은 인터페이스를 인자로 넘기는 것입니다. 이 덕분에 인터페이스 단위의 추상화가 자연스럽게 이루어집니다.

Go 언어 단점

  • 없는게 많습니다.
    • Generic 문법, Class 문법, 예외 처리 문법, Public, Private 키워드, this 문법이 없습니다.
    • 메서드를 만들 수 있으며 인터페이스를 이용해서 다형성을 구현할 수 있습니다. Composition으로 상속을 대신할 수 있습니다.
  • 코드가 깔끔해 지지 못합니다.
    • 예외 처리 문법이 없기에 if문이 상당히 많이 사용됩니다.
  • Verbose 한 코드
    • Go는 템플릿도 매크로도 없습니다. 이는 Go의 코드를 단순하게 만들어주는 장점도 있지만, 템틀릿도 매크로도 없어서 단순한 코드가 반복해서 등장합니다.
  • 중앙 저장소의 부재
    • GoGit Hub 등의 원격 저장소에 올라온 패키지를 go get 명령어로 다운로드 및 설치해서 사용합니다.
  • 버전관리
    • 코드를 작성하면 formatter가 코드를 수정하는데 단순히 공백이 추가된 것을 git에서 수정된 라인으로 잡을 때가 있어 커밋의 호흡이 길다면 실제 수정된 로직을 파악하기 힘듭니다.
  • 우리나라 한정 Go를 도입한 회사가 많이 없습니다.. ( 해외는 Go를 도입한 회사가 매~~우 많고 연봉도 높습니다.. )
    • 자바 진형이 대세인 우리나라에서는 타 언어에 비해서 인력풀이 많지 않습니다.
    • 하지만 Go의 빠른 성능, 빅쿼리 등등의 이유로 도입하는 회사가 있습니다.

Go 설치하기 ( for Mac. )

맥북에서 Go를 설치하는 방법은 매우매우 간단합니다.

  • brew update
  • brew install golang

Go 설치가 끝났습니다. 버전을 확인하는 명령어는 아래와 같습니다.

  • go version

참고자료

Go 언어의 장점과 단점
[Go] MAC 에 Go 설치하기


Go 언어 공부 GoGo~~! 엌ㅋㅋㅋㅋㅋㅋㅋ

0개의 댓글