본문 바로가기
IT_Developers/Go

Go 언어의 특징 - 동시성(고루틴), 정적,동적 타입

by 고코더 2021. 1. 29.

Go언어의 특징


 

안녕하세요.

고코더 입니다.

 

 

 

이번 시간에는 Go가 가지고 있는 많은 특징 중에 동시성(고루틴), 정적,동적 타입이라는 특징을 차례대로 알아보겠습니다.

 

 


동시성고루틴


 

 

 

동시성은 여러 일을 한꺼번에 다루는 데 관한 것

병렬성은 여러 일을 한꺼번에 실행하는 데 관한 것

 

 1. Go라는 언어의 특징을 말할 때 항상 강조되는 부분입니다. 동시성입니다. 동시성이란 단어는 여러 작업을 동시에 처리한다는 내용을 말합니다. 하지만 병렬 프로그래밍이랑 같은 개념은 아닙니다. Go에서 이러한 동시성을 사용하기 위해 고루틴(Goroutine)이라는 것을 활용합니다. 고루틴은 쉽게 말하면 적은 메모리를 사용할 수 있게 적은 양의 코드로 구현하는 데이터 구조를 말합니다. 비동기 매커니즘을 말합니다. 그렇기 때문에  CPU 코어와 무관하게 대량의 고루틴을 작성해도 성능에 문제는 발생하지 않습니다. 또한 필요한 데이터를 먼저 사용하기 위한 경쟁이 아닌 고루틴 간에 데이터를 서로 전송하는 특징을 가지고 있습니다. 예를 들면 다른 언어에서는 스레드를 사용하지만 Go에서는 고루틴을 사용하는 것입니다. 

 

 

 

 


정적 타입, 동적 타입


 

 

 2. 컴파일 시 경정되는 자료형을 "정적 타입"이라고 합니다. 그리고 실행 시에 결정되는 자료형은 "동적 타입니다." Go 언어의 특별한 특징 중 하나는 정적 타입 이면서 강타 입이라는 것입니다. 이러한 특성 덕분에 Go는 컴파일 타임에서 에러를 찾을 수 있습니다. 정적 자료형 언어이면서 동적 자료형 언어로 프로그램을 작성하는 안락한 느낌을 주는 아주 매력적이고 강력한 언어입니다.

 

 


마무리


 

장점이 정말 많은 최신의 언어

 

 

 

댓글