GO 언어를 배워야 하는 4가지 이유
- 고 루틴을 가지고 있다.
- 기본 하드웨어에서 직접 실행
- Go 로 작성된 코드는 유지 관리가 쉬움
- Go 는 구글의 지원을 받음
Go Routine
- 최근 하드웨어 업체는 싱글코어보다는 멀티코어, 하이퍼스레드 기능을 통해 성능을 향상 시킴
- 소프트웨어 또한 이러한 추세에 맞게 싱글 스레드보다 동시성을 쉽게 지원할 수 있는 형태로 지원해야함
- Java 나 Python은 90년대 단일 스레드 환경에서 사용되는 언어였으므로 멀티 스레딩 응용프로그램을 만들기가 쉽지 않음
- Go Routine은 필요할 때만 더 많은 메모리를 사용 (성장 가능한 세그먼트 스택 사용)
- GO Routine 은 스레드보다 시작 시간이 빠름
- GO Routine에는 내장된 기본 요소가 제공되어 자체적으로 안전한 통신 사용
- GO Routine을 사용하면 데이터 구조를 공유 할 때 뮤텍스 잠금에 의존하지 않음
( 뮤텍스 = 공유 자원에 여러 쓰레드가 접근하는 것을 막는 것, 둘 이상의 쓰레드가 동일한 데이터를 공유하여 발생하는 문제를 해결하기 위한 동기화 기법)
- GO Routine과 OS thread 에는 1:1 매핑이 없으므로 최적화된 다수의 스레드에서 실행
기본 하드웨어에서 직접 실행
- Java/python 에 비해 C, C++ 를 사용하면 성능이 월등히 좋음
- Java 는 JVM, 파이썬은 스크립트언어로 인터프리터에 의해 해석되며 실행
- Go 는 C, C++과 동일하게 바이너리로 직접 컴파일되므로 다른 최신언어에 비해 좋은 성능을 발휘(low-level lang)
- 가비지 수집을 사용하여 개체를 할당하고 제거하므로 malloc 이나 free가 필요 없음
유지관리가 쉬운 코드
- 매우 깔끔한 구문을 사용
- 현대 OOP언어의 많은 기능을 의도적으로 제외 (Class, 상속, 생성자, 등이없음)
- 거의 파이썬 만큼 쉽고 빠른 제작 가능
Google's support
- 구글에서 설계하고 지원
- 구글에서 확장성 및 효율성 지원문제를 해결하도록 설계
- 우리의 서버나 프로그램을 제작할 때 직면할 만한 문제에 대한 고민과 발전을 함계할 수 있음.
출처:
GO 언어를 배워야 하는 4가지 이유(유튜브)
why should you learn go