[GO] 개념

2021. 9. 24. 22:43·GO
728x90

최근 2021 Stack Overflow Developer Survey - Most wanted(82,914명이 응답) 조사에서 Go가 개발자들이 원하는 기술순위 4위를 차지했음, 많이는 들어봤지만 이유가 무엇일까? (참고로 1위는 파이썬 2위는 타입스크립트)


Golang 

  • Go는 2009년 구글의 로버트 그리즈머, 홉 파이크, 켄 톰슨이 개발한 프로그래밍 언어로 빠른 성능, 안정성, 편의성, 쉬운 프로그래밍을 목표로 한 범용 프로그래밍 언어

Golang 특징

  1. 안정성, 정적 타입 / 강 타입
  2. 컴파일 언어, 빠른속도 (자바보다 빠름 / Go가 2.10secs, 자바 3.07secs)
  3. 가비지 컬렉션 지원
  4. 병행성 (고루틴을 통해 쓰레드를 생성해서 실행)
  5. 모듈화 및 패키지
  6. Learning Curver가 낮음

Golang 배워야하는 이유

1. Go 루틴

https://medium.com/@kevalpatel2106/why-should-you-learn-go-f607681fad65 참고

  • Go는 멀티코어를 감안하여 만들어진 언어 (자바 / 파이썬 같은 경우 멀티코어 시대가 아니라 싱글코어 시대인 90년대 단일 스레드 환경에서 만들어진 언어라 멀티스레딩 응용프로그램을 만들기가 어려움)
  • Go 루틴은 Go 런타임에 의해 관리되는 경량 스레드이며 Go 루틴을 사용하면 동시성을 다루기가 쉬워짐 (Go가 인기가 많은 이유)
  • 런타임에 의해 관리되기 때문에 개발자는 기존 스레드와 다르게 명시적으로 종료하거나 반납의 과정을 거치지 않아도됨
  • 경량스레드라 Go 루틴 생성 작업 전환에 사용되는 리소스 및 시간이 적어서 다량 생성해도 부담이 적음
  • Go 루틴은 동시성 및 직관성으로 언어 효율이 좋음

2. Go는 기본 하드웨어에서 직접 실행

  • Go는 파이썬과 같이 인터프리티 언어가 아님, Go 컴파일 언어이지만 자바 JVM과 같은 VM통해 실행되는 것이 아님, 네이티브 바이너리 형식이기 때문에 VM을 통해 바이트 코드를 컴파일하는 단계가 생략되므로 성능이 더 빠름 (추가적으로 가비지 컬렉션을 통해 개체를 할당 제거도 해줌)

3. 작성된 코드가 유지 관리가 쉬움

  • Go는 내용이 매우 많지 않음, 명세서를 인쇄하면 100p도 안됨 (자바는 참고로 800p 넘음)
  • 파이썬과 비슷한 수준의 깔끔하고 쉬운 구문을 사용 

4. Google의 지원을 받음

  • Go는 구글에서 설계하고 지원함, 구글에서 확장성 및 효율성 지원 문제를 해결하도록 설계하고 있으며, 실제 프로그램 개발에 많이 사용함 (Google 파일저장소도 Go로 개발됨)

 

저작자표시

'GO' 카테고리의 다른 글

[GO] is explicitly required in go.mod, but not marked as explicit in vendor/modules.txt 발생시 처리  (0) 2021.09.13
[GO] "fmt" imported but not usedcompilerUnusedImport  (0) 2021.09.12
[GO] 윈도우 설치  (0) 2021.09.12
'GO' 카테고리의 다른 글
  • [GO] is explicitly required in go.mod, but not marked as explicit in vendor/modules.txt 발생시 처리
  • [GO] "fmt" imported but not usedcompilerUnusedImport
  • [GO] 윈도우 설치
집한구석
집한구석
  • 집한구석
    tgyun615.info
  • 전체
    오늘
    어제
    • 카테고리 (183)
      • JAVA (38)
      • SPRING (15)
      • KOTLIN (23)
      • NETTY (1)
      • DEVOPS (3)
      • DOCKER (7)
      • KUBERNETES (2)
      • JAVASCRIPT (1)
      • SPLUNK (3)
      • ELK (7)
      • KAFKA (2)
      • GO (4)
      • ALGORITHM & DATA STRUCTURE (9)
      • IDE (5)
      • OS (16)
      • NETWORK (14)
      • GCP (2)
      • AWS (2)
      • DATABASE (10)
      • CLEANCODE (7)
      • OTHER (12)
  • 최근 글

  • 태그

    이펙티브 코틀린
    자바
    엘라스틱서치
    cleancode
    Spring
    Kafka
    코틀린
    클린코드
    ElasticSearch
    docker
    java
    SQL
    AWS
    go
    프로그래머스
    이펙티브코틀린
    Elk
    IntelliJ
    splunk
    JPA
  • 링크

    • github
    • linkedin
    • resume
  • hELLO· Designed By 정상우. v4.10.3
집한구석
[GO] 개념
상단으로

티스토리툴바