정글에서 온 개발자

Go가 탄생한 이유 본문

TIL

Go가 탄생한 이유

dev-diver 2025. 1. 19. 16:49

해결하고자 하는 문제

  • 수십분, 수시간이 걸리는 빌드 -> 설명
  • 동일한 내용의 표현 방법이 프로그래머마다 달라서 생기는 가독성 저하 -> gofmt라는 자동 포맷팅 툴 제공
  • 자동화 툴 작성이 어려움 -> net/http, os/exec, sync 등 강력한 패키지 제공
  • 높은 비용이 드는 버전 관리 및 버전 변경
  • 멀티 코어 프로세서, 네트워크 시스템, 대규모 계산 클러스터 및 웹 프로그래밍 모델에서 개발할 때 발생하는 문제 -> 고루틴과 채널

 

이를 해결하기 위한 목표

  • 동적 타이핑 언어의 특징인 쉬운 프로그래밍
  • 정적 타이핑 언어가 가진 효율성과 타입 안정성

-> 타입추론 키워드 := 를 이용하여 동적 타이핑의 쉬운 장점을 가져갔고, 컴파일 타임에 타입 검사를 해 오류 가능성을 줄였다.

  • 네트워크 프로그래밍, 멀티 코어 프로그래밍을 간단하게 구현해주는 병렬 처리 작성법
  • 대규모 시스템 및 대규모 개발 팀에 필요한 효율적인 프로그래밍
  • 간단한 언어 기능

제한 사항

객체제향이나, 함수형 프로그래밍의 기초가 되는 이론이나 수학적 접근법은 Go에서는 표현하기 어렵다.

이런 걸 작성하려면 코드를 길게 작성해야 할 수도 있다.

내 생각

아직 Go에 익숙하지 않아서 그런지,  상속 개념이 없는데에 오히려 불편함을 느꼈는데, go의 자주쓰는 패턴을 공부해 나가면서 해소해야할 것 같다.

참고

Go언어로 배우는 웹 어플리케이션 개발