
회사에서 Go 언어를 사용해서 공부를 시작한다. Go 언어가 어떻게, 왜, 어떤 계기로 개발 되었는지 누가 개발했는지 궁금해졌다.
📌 언어 소개
- 2007년 구글에서 개발을 시작해 2012년 Go 버전 1.0를 완성했고 2022년 초에는 버전 1.18 출시
- 전통적인 컴파일, 링크 모델을 따르는 범용 프로그래밍 언어
- 1차적으로 시스템 프로그래밍을 위해 개발
- C++, Java,, Python의 장점들을 뽑아 개발
- C++와 같이 go는 컴파일러를 통해 컴파일
- 정적타입 (statically typed) 언어
- Java와 같이 Go는 Garbage collection 기능을 제공
- 단순하고 간결한 프로그래밍 언어를 지향
- Java의 절반에 해당하는 25개의 키워드만으로 프로그래밍 가능
- Communicating Sequential Processes(CSP) 스타일의 concurrent 프로그래밍 지원
📌 개발자
- Robert Griesemer (스위스의 컴퓨터 과학자)
- Rob Pike (캐나다의 프로그래머, 벨 연구소에서 유닉스 팀의 멤버로 활동)
- Ken Thompson (미국의 컴퓨터 프로그래머로, AT&T 벨 연구소에서 유닉스와 플랜 9 운영 체제의 개발을 주도. C언어의 모체가 된 B언어를 개발. 2006년부터 구글에서 근무하면서 고 언어의 개발에 참여, Wikipedia)
📌 사용 이유
- Concurrency is about dealing with lots of things at once. Developers need to write code to prevent conflicts. i.e. when tasks run in parallel, accessing shared data
ex) multiple users editing the same document like google docs, multiple users booking at the same time
📌 주요 활용점
- For Performant Applications
- Running on scaled, distributed systems
📌 특성
- Attempt to combine both:
- Simple and readable syntax of a dynamically typed language like Python
- Efficiency and safety of a lower-level, statically typed language like C++
- Server-side or backend language
- Microservices
- Web applications
- Database services
- 파이썬 보다 빠르다...
📌 추천 강의
📌 공부 다짐
"개발자 답게 공부 하려면 수동적으로 지식을 얻는데
그치는게 아니라 새로운 것을 배워 나가는 방법을 배워야 한다." 드림코딩 Ellie
