728x90
최근 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 배워야하는 이유
1. Go 루틴
- 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 |