alpyrithm_알파이리즘

Go 언어 공부 1. Go 언어 파악하기 본문

SM공부/Go

Go 언어 공부 1. Go 언어 파악하기

알파이 2020. 7. 13. 16:41

GO 언어란?

- 실용적인 언어로 빠른 성능, 안정성, 편의성, 쉬운 프로그래밍을 목표로 "생산성"과 "성능"을 위한 언어이다.

 

- 특징

  • 간결하고 유연한 문법
    • 상대적으로 작은 키워드 수로 이해하고 배우는데 시간이 오래 걸리지 않는다.
    • 객체 지향 언어, '타입//속성'과 '메서드'를 분리하여 정의한다.
  • 병행 프로그래밍 / 병행성(Concurrency)
    • 통신 순차 프로세스(Communcating Sequential Processes, CSP) 방식, 메시지 전달하는 방식
    • 고루틴(Go Routinie) : 동시에 처리해야 하는 작업, 동시에 독립적으로 실행되는 흐름의 단위
  • 정적 타입 언어
    • 컴파일할 때 타입(Type) 결정이 이루어진다.
    • 코드 내에서 암시적 형변환이 없다.
    • 덕 타이핑(duck typing)
  • 쉬운 협업
    • gofmt 도구를 제공하여 서식 지정에 도움을 줘 코드 공유가 쉽다.
  • 가비지 컬렉션(garbage collection)
    • 메모리 관리가 별도로 필요 없어 문제 해결에만 집중하면 된다.
  • 빠른 컴파일과 실행 속도
    • 실제로 사용되는 부분만 컴파일한다.
  • 컴파일 언어
  • 멀티 코어 환경 지원

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

추가

- 타입 : 자료형 / int형, short형, float형, bool형, 객체 등

  • 정적 타입 언어(Statically typed language) : '타입/자료형'을 컴파일 시에 결정하는 것
    • C, C#, C++, Java 등
    • 변수에 들어갈 값의 형태에 따라 자료형 지정
    • 컴파일 시에 자료형에 맞지 않은 값이 들어있으면 컴파일 에러 발생
    • 컴파일 시에 타입에 대한 정보를 결정하기 때문에 속도가 빠르고 타입 에러로 인한 문제를 초기에 발견할 수 있어 타입의 안정성이 좋다.
  • 동적 타입 언어(Dynamically typed language) : '타입/자료형'을 실행 시(런타임 시)에 결정하는 것
    • JavaScript, Ruby, Python, SmallTalk 등
    • 매번 타입을 써줄 필요가 없어 개발 속도가 빠르다.
    • Run까지 타입에 대한 결정을 끌고 갈 수 있다.

 

 

 

728x90
반응형
Comments