Golang와의 첫 만남 - Go series(1)

Date:     Updated:

Categories:

Tags: ,

image

Golang은?

  • 고루틴을 활용한 동시성 프로그래밍

Golang의 특징

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

요약

Golang은 모던하고 빠르며 강력한 표준 라이브러리를 제공하는 언어이다.
Go는 동시성 기능을 자체적으로 내장한다.
Go는 코드 재사용을 위한 Block으로서 인터페이스를 활용한다.

Leave a comment