Why golang?

독수리박박·2023년 8월 23일
0
post-thumbnail

golang을 공부하게 된 이유

여러 수업을 듣고 사람들을 만나다 보니 새로운 언어에 대한 필요성을 느꼈다. 그리고 여러 현업자 분들의 이야기나 채용 공고만 봐도 최근 go에 대한 인기가 상당히 높고 많이 쓰이고 있다는 것을 알수 있었다. 그래서 나도 go에 대해 깊숙히 공부하기로 했다.

일단 공부를 시작하기 전에 왜 go언어가 많이 쓰이고 좋은 언어인지 정리하고 시작해보자!


go언어란?

  • 09년 구글의 로버트 그리즈머, 홉 파이크, 켄 톰슨이 개발하였습니다.
  • go routine이 존재한다.
    - 멀티쓰레드 메커니즘이지만 자체적인 스케줄러에 의해 관리되는 경량 쓰레드이며, OS 에서 관리하는 경량 쓰레드보다 더 경량이다.
    - 일급객체로 정수와 실수와 같은 데이터 타입과 동급으로 취급
    -channel을 통해 동시성을 지원한다.
  • 멀티 패러다임 언어
    - 함수형 언어라고 하기에는 함수의 순수성(Purity), 불변성(Immutability)을 보장하지 않는다.

장점

  1. 안정성, 정적/강타입

    • C언어와 같이 int a=1, 자료형을 정적으로 선언
    • 자료형을 변경할 수 없다.(약 타입은 변경 가능)
  2. 컴파일 언어, 빠른속도

    • 컴파일언어이기 때문에 전처리-컴파일-어셈블-링크 과정을 거친다.
    • 컴파일언어란? 기계어로 번역해 실행파일로 만드는 언어(C,C++,C#,Go)
  3. 가바지 컬렌션

    • C언어는 메모리를 할당하면 반드시 해제하는 과정이 필요하다. 가비지 컬렉션을 지원한다면 해당 과정이 필요가 없다.
  4. 병행성

    • 동시 처리 개념이다. 고 언어의 루틴을 통해 쓰레드를 생성해 실행한다. 병행성을 이용하면 프로그램이 서로 소통하는 동시성 프로그램을 만들 수 있다.
  5. 모듈화 및 패키지

    • 코드의 재사용을 위한 모듈화 시스템, 인터넷을 통해 패키지 사용 가능

직관성, 동시성

사진에서 보이는 것 처럼 고 루틴은 동시성 및 직관성으로 언어 효율이 좋다. 고 언어는 효율성이 우수함과 동시에 직관적이고 깔끔한 코드 작성이 가능하다.


유지관리

또한 사람에게 직관적이면서도 컴퓨터 입장에서도 빠르게 실행 할 수 있는 좋은 언어이다. 따라서 코드의 유지관리 면에서 다른 언어들보다 뛰어나다.

go 언어를 학습하기 전에 go 언어에 대한 간단한 특징과 장점들을 정리해 보았다.

0개의 댓글