[GO] 개념

[GO] 개념

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

Golang

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

Golang 특징

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

Golang 배워야하는 이유

Go 루틴 Go는 기본 하드웨어에서 직접 실행 작성된 코드가 유지 관리가 쉬움 구글의 지원

더보기 Go 루틴 https://medium.com/@kevalpatel2106/why-should-you-learn-go-f607681fad65 참고 Go는 멀티코어를 감안하여 만들어진 언어 (자바 / 파이썬 같은 경우 멀티코어 시대가 아니라 싱글코어 시대인 90년대 단일 스레드 환경에서 만들어진 언어라 멀티스레딩 응용프로그램을 만들기가 어려움)

Go 루틴은 Go 런타임에 의해 관리되는 경량 스레드이며 Go 루틴을 사용하면 동시성을 다루기가 쉬워짐 (Go가 인기가 많은 이유)

런타임에 의해 관리되기 때문에 개발자는 기존 스레드와 다르게 명시적으로 종료하거나 반납의 과정을 거치지 않아도됨

경량스레드라 Go 루틴 생성 작업 전환에 사용되는 리소스 및 시간이 적어서 다량 생성해도 부담이 적음

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

from http://tgyun615.com/78 by ccl(A) rewrite - 2021-09-24 23:27:12