Golang와의 첫 만남 - Go series(1)
Categories: Golang
Golang은?
고루틴
을 활용한 동시성 프로그래밍
Golang의 특징
- 개발속도
- Java나 C는 컴파일러들이 전체 라이브러리의 의존성을 탐색하지만 GO 컴파일러는 직접참조 라이브러리의 의존성만 해석함.
- 동시성
- Golang의 강력한 기능 중 하나.
- 고루틴(goroutine)은 스레드와 유사하지만 더 적은 메모리를 소비하며 더 적은 양의 코드로 구현 가능.
- 프로그램의 진입점을 비롯하여 다른 고루틴과 함께 동시에 실행되는 함수.
- Go는 여러 개의 고루틴이 하나의 스레드에서 동작한다.
- 채널(channel)은 내장된 동기화 기능을 이용해서 고루틴 간의 형식화된 메세지를 공유할 수 있는 데이터 구조이다.
- 공유 메모리 접근을 허용하는 프로그래밍 언어에서 발생하는 문제들을 손쉽게 피할 수 있음.
- 동시에 발생하는 수정요청으로부터 데이터를 안전하게 보호하기 위한 패턴을 제공함.
- 채널을 통해 어느 한 시점에 하나의 고루틴만이 데이터를 수정할 수 있는 패턴임.
- 타입 시스템
- 메모리 관리(GC)
요약
Golang은 모던하고 빠르며 강력한 표준 라이브러리를 제공하는 언어이다.
Go는 동시성 기능을 자체적으로 내장한다.
Go는 코드 재사용을 위한 Block으로서 인터페이스를 활용한다.
Leave a comment