Go란?
Go 언어는 구글이 개발한 프로그래밍 언어로 빠른 성능, 안정성, 편의성, 쉬운 프로그래밍을 목표로 개발된 범용 프로그래밍 언어이다.
Go언어의 문법은 C언어를 기반으로 하고 있으며, C++의 복잡한 문법 대신 간단하고 간결한 문법을 추구한다.
GO 언어의 특징
1. 정적, 강 타입 > 안정성
2. 컴파일 언어 > 빠른 컴파일 속도
3. 가비지 컬렉션 > 메모리 관리 용이
4. 병행성
> GO언어는 go 키워드를 통해 여러 함수를 동시에 실행할 수 있는데 이렇게 실행된 함수를 Go루틴이라 한다
5. 멀티 코어 환경 지원
6. 모듈화 및 패키지 시스템
GO 언어의 장점
1. GO 루틴
- 스레드보다 시작 시간이 빠르다
- 내장된 기본 요소로 안전하게 통신 가능하다
- 데이터 구조를 공유할 떄 뮤텍스 잠금에 의존하지 않는다
- 최적화된 다수의 스레드에서 실행한다
- Go 루틴은 동시성 및 직관성으로 언어의 효율이 좋다.
GO루틴과 스레드의 차이점
스레드는 운영체제의 커널에서 제공하는 리소스이므로 많이 생성될 수 록 부담이 커지지만
Go언어는 적정량의 스레드를 생성하여 GO루틴을 처리한다.
또한 최대 프로세서 개수 설정에 따라 멀티 코어도 지원한다.
x 직관성 // y 동시성
2. 기본 하드웨어 에서 직접 실행
GO는 C처럼 직접 컴파일 하면서 자동으로 개체를 할당하고 제거해 메모리 함수인 malloc이나 free가 필요없다.
3. 쉬운 유지 보수
성능은 C계열의 언어면서 파이썬과 유사하게 깔끔하고 쉬운 구문을 사용한다.
예전과는 다르게 지금은 소프트웨어의 규모가 크고 복잡해 코드의 재사용성이 중요해졌다.
Go언어는 언어 자체에서 모듈화를 제공하여 인터넷에 있는 소스 코드를 바로 가져와 사용할 수 있다.
그리고 다양한 패키지 관리 도구로 패키지간의 의존성을 쉽게 관리할 수 있다.
GO 언어는 컴퓨터와 인간 모두에게 가까운 언어이다.
x 컴퓨터에게 빠르고 효과적인가 // y 인간에게 빠르고 효과적인가
4. 활용 범위
GO언어는 웹 브라우저, 서버, 데이터베이스 등 규모가 크고 복잡한 애플리케이션을 개발하는데 적합하다.
메모리를 일일이 신경 쓰지 않아도 GO언어로 작성하면 생산성을 높일 수 있다.
참고 자료
'Go' 카테고리의 다른 글
GO) GO - web 프레임워크 (0) | 2023.03.22 |
---|