“ 매주 목요일마다 당신이 항상 하던대로 신발끈을 묶으면 신발이 폭발한다고 생각해보라.
컴퓨터를 사용할 때는 이런 일이 항상 일어나는데도 아무도 불평할 생각을 안 한다. ”- Jef Raskin
맥의 아버지 - 애플컴퓨터의 매킨토시 프로젝트를 주도
구글 GO |
구글이 2009년 개발한 프로그래밍 언어 GO에 대해서 간단히 알아보려고 합니다.
다소 부족할 수 있고 추후 수정이나 추가되는 내용이 있을 수 있습니다.
"빠른 컴파일, 형식 안전성 제공 컴파일 형 언어"
가비지 컬렉션[쓰레기 수집] 기능 : 메모리 관리 기범 중의 하나이며, 프로그램이 동적으로 할당했던 메모리 영역 중에서 필요 없게 된 영역을 해제하는 기능
병행성 : 여러 계산을 동시에 수행하는 시스템의 특성
C언어의 기반인 B언어 개발을 주도적으로 참가한 켐 톤슨, 로버트 그리즈머, 롭 파이크가 분산 운영체제에 관한 작업을 하면서 Go의 역사가 시작될 준비를 합니다.
08년 켐 톰슨은 C 코드를 만들어내는 컴파일러 개발을 시작으로 이안 테일러, 러스 콕스 참여하며, Go의 모습이 갖춰지기 시작함.
C언어와 비슷한 문법을 갖고 있다는 GO언어는 위에서 설명했듯이 가비지 컬렉션 도입
C언어 C++언어언어에서의 동적 할당한 메모리 소멸 책임의 걱정을 덜 수 있고, Go 키워드를 통해 행성 프로그래밍을 쉽게 할 수 있어, 쓰레드를 통한 비동기적 프로그래밍 대신할 수 있게 하였습니다.
고랭[Golang], 어떤 점이 편리 할까 ?
- 설치가 필요없어요, 웹 기반으로 가능하며 [https://golang.org/] 사이트 접속 시 작성하고 실행 할 수 있다.
속도 : 자바스크립트, 파이썬등과 비교하면 훨씬 더 Golang이 빠르다
편리성
이식성 : 톨체인(toolchain) 사용하여 생성된 실행 파일은 외부 종속성 없이 단독 실행 가능
지원 : 여러 운영체제에서 지원이 가능하고 소스를 간편 배포도 가능하며, 여러 툴에서도 고랭을 지원한다.
상호운용성 : 외부 라이브러리 통신 네이티브 시스템 호출이 가능
Go로 만들어진 오픈소스 프로젝트는 여러가지 있지만, 몇 가지만 소개하려고 합니다.
1. 도커[Docker]
2. 휴고[Hugo]
3. 코크로치DB[CockroachDB]
구글의 고가 세상에 나온지 10년이 넘었는데, 많은 변화를 가져다주었습니다.
일단, 그 이유는 가볍고 빠른 컴파일의 속도 그리고 동시, 분산 애플리케이션[Application] 개발을 쉽게 할 수 있으며, 다양한 라이브러리가 있다는 게 이런 고의 능력을 만들어 준 것 아닐까요?
참고:언제나휴일프로그래머, 위키백과