• Q&A
  • 회원가입
  • 로그인

GO - Intro (고랭 소개)

79  
목차
  1. Go 소개
  2. Go 용도
  3. Go 사용 이유
  4. Go / Python / C++ 비교
  5. Go 학습에 필요한 지식

 

Go 소개

 

  1. 고성능 애플리케이션 제작에 사용 가능. (예: Docker, Git)
  2. 빠르고 정적 타입의 컴파일 된 언어. (동적 타입의 해석된 언어처럼 느껴질 정도임)
  3. 2007년 Robert Griesemer, Rob Pike, Ken Thompson에 의해 Google에서 개발됨.
  4. 구문은 C++과 유사.

 

 

Go 용도

 

  1. 웹 개발(서버 측)
  2. 네트워크 기반 프로그램 개발
  3. 크로스 플랫폼 엔터프라이즈 애플리케이션 개발
  4. 클라우드 네이티브 개발

 

 

Go 사용 이유

 

  1. 재밌고 배우기 쉬움.
  2. 실행 및 컴파일 빠름.
  3. 동시성 지원.
  4. 메모리 관리 기능 보유
  5. 다양한 플랫폼(Windows, Mac, Linux, Raspberry Pi 등)에서 작동.

 

 

Go / Python / C++ 비교

 Go  Python  C++
 정적 typed  동적 typed  정적 typed
 빠른 run time  느린 run time  빠른 run time
 Compiled  Interpreted  Compiled
 빠른 compile time  Interpreted  느린 compile time
 goroutines과 channel 통해 동시성 지원  내장된 동시성 메커니즘 존재 X  threads 통해 동시성 지원
 자동 garbage 수집 O  자동 garbage 수집 O  자동 garbage 수집 X
 classes/objects 지원 X  classes/objects 지원 O  classes/object 지원 O
 inheritance 지원 X  inheritance 지원 O  inheritance 지원 O

 

 

PS. 용어 해설

 

Run time (런 타임 = 실행 시간)

컴퓨터 과학에서 컴퓨터 프로그램이 실행되고 있는 동안의 동작

 

Compile time (컴파일 시간 = 변환 시간)

: 코드를 실행 가능한 프로그램으로 변환하는 데 걸리는 시간


Concurrencty (동시성)

: 최종 결과에 영향 안 주면서 여러 일을 순서에 안 맞게 수행하거나 동시에 수행하는 것.


static (정적) typed

: 컴파일 시간에 변수 형식을 알고 있음 의미.

 

Garbage Collection (쓰레기 수집)

메모리 관리 기법 중의 하나로, 프로그램이 동적으로 할당했던 메모리 영역 중에서 필요없게 된 영역을 해제하는 기능.

 

Inheritance (상속)

기존 클래스에 기능 추가하거나 재정의해 새로운 클래스를 정의하는 것을 의미

 


Go 학습에 필요한 지식

 

사전 프로그래핑 지식 불필요.

단, 알면 훨신 이해하기 편함.

 



찾아주셔서 감사합니다. Since 2012