티스토리 뷰

 

Go언어 살펴보기

 

- Go 언어

 구글이 개발한 프로그래밍 언어, 빠른 성능, 안전성, 편의성 C언어기반으로 하고 있으며 C++의 복잡한 문법 대신 간단하고 간결한 문법 추구

 

- Go 언어 특징

 1. 정적타입, 강타입
 2. 컴파일 언어
 3. 가비지 컬렉션
 4. 병행성
 5. 멀티코어 환경지원
 6. 모듈화 및 패키지 시스템
 7. 빠른 컴파일 속도

 

1. 정적타입과 동적타입

정적타입 : 자료형을 컴파일 할 때 결정

동적타입 : 자료형을 실행시 결정

자료형이란? int, float, char, string 등등

※ 고언어는 정적타입을 사용

 

 

2. 컴파일 언어

고 언어는 컴파일 언어이다. 프로그래밍 언어는 크게 컴파일언어, 인터프리터 언어가 있음

컴파일 언어 : C, C++, C#, Java, Go

인터프리터언어 : Python, Ruby, Perl, PHP, Javascript

컴파일 언어는 CPU에서 바로 실행되기 때문에 속도가 빠름

자바와 C#과 달리 가상 머신을 설치하지 않아도 실행이 되어 복잡하지 않음

 

 

3. 가비지 컬렉션

C, C++은 동적할당으로 메모리를 생성하면 반드시 해제해 주어야 하지만 GO언어는 가비지 컬렉션 기술로 메모리를 알아서 관리해 줌. 즉 메모리 할당 후 해제를 할 필요가 없음

로직 작성에 집중을 요함

 

 

4. 병행성(동시성)

Go언어는 go 키워드를 통하여 함수 여러개를 동시 실행 할 수 있다. 이렇게 실행되는 함수를 고루틴이라고 불리는데 스레드와는 분명 차이가 있다.

스레드는 운영체제의 커널에서 제공하는 리소스이어서 많이 생성할수록 CPU부담이 커짐.

고루틴은 적정량의 스레드를 생성해서 처리함. 최대 프로세서 개수 설정에 따라 멀티코어도 지원

 

 

5. 모듈화 및 패키지

파이썬, 루비, 노드, 자바(메이븐) 등의 패키지 시스템은 인터넷 저장소에서 패키지를 받아와 의존성을 관리해줌

Go언도 마찬가지로 언어자체에서 모듈화를 제공을 하기도 하고 인터넷 저장소에서도 받아와 사용이 가능

 

 

6. 컴파일 속도

Go 언어의는 헤더파일이 없고 소스 코드를 패키지화하여 변경된 부분만 컴파일을 하여 속도가 빠르다. 문법적으로도 복잡한 요소를 최대한 줄여 컴파일 속도를 유리하게 만들었음

 

 

7. 활용범위

웹 브라우저, 서버, 데이터베이스등 규모가 크고 복잡한 애플리케이션을 개발하는데 적합.

메모리관리를 중요시 하는 시스템 라이브러리 개발에는 적합하지 않으며 메모리 관리가 약하고 규모가 크고 복잡한 유지보수가 자주 있는 곳에서 유용함