Go
공유하기:
이 질문은 사용하는 주요 프로그래밍 언어 3개 중 하나로 Go를 선택한 응답자에게만 표시되었습니다.
효율성과 빠른 속도, 동시성 기능, 강력한 표준 라이브러리, 단순성, 가독성으로 잘 알려진 Go는 단연 프로덕션에 잘 대응된 언어이며 작업에 Go를 사용하는 개발자의 비율이 증가하고 있는 것은 놀라운 일이 아닙니다. Go는 Google, Dropbox, Microsoft, PayPal, Netflix 등을 포함한 많은 대형 기업에서 프로덕션에 사용됩니다.
이 데이터는 Go 팀이 실시한 설문조사에서 확인된 내용과 어느 정도 일치합니다. Go는 클라우드 네이티브 애플리케이션과 DevOps 도구를 구축하는 데 널리 사용되기 때문에 종종 '클라우드 언어'라고 불립니다. 이는 Go 개발자들 사이에서 Linux와 macOS가 인기를 누리는 이유를 설명합니다.
Go 개발자의 약 1/3만이 한 번에 프로젝트 1개를 진행하며 2/3는 여러 프로젝트를 동시에 진행합니다.
Go는 이전 버전과의 호환성이 뛰어나지만 일부 사용자는 여전히 여러 버전을 동시에 실행합니다. 사용 사례 중 하나로 개발자들은 회귀를 포착하고 다른 문제를 감지하기 위해 두, 세 가지 다른 Go 버전으로 실행되도록 CI를 설정합니다.
html/template이 최고의 자리를 차지하는 것은 당연합니다. 이 패키지는 사용자 생성 데이터와 같은 잠재적으로 위험한 콘텐츠를 자동으로 이스케이프하고 코드 삽입 공격을 방지하는 데 도움을 줍니다.
최근 Go 설문조사에 따르면 Go 개발자의 37%가 Go를 사용하여 웹사이트와 웹 서비스를 구축합니다. 이 데이터는 왜 그렇게 많은 개발자들이 동일한 프로젝트에서 JavaScript, TypeScript, Go를 사용하는지 설명해줍니다.
Python의 높은 순위는 아마도 많은 Python 프로젝트가 Go로 마이그레이션하는 경향이 있기 때문일 것입니다. 개발자가 Python으로 작성된 프로젝트에 새로운 서비스를 추가하려는 경우 효율성, 동시성 지원, 강력한 네트워킹 및 웹 서비스 성능으로 잘 알려진 Go를 사용하는 경향이 있습니다. 이 접근 방식에는 물론 단점도 있지만 개발자가 코드베이스를 다시 작성해야 할 필요성을 없애줍니다.
GoLand는 기본적으로 JavaScript 및 TypeScript에 대한 지원을 제공합니다. Python Community Edition 플러그인을 설치하고 Python 지원을 활용할 수도 있습니다.
Go 1.18에는 작업 공간 모드가 도입되어 개발자가 각 모듈의 go.mod 파일을 편집하지 않고도 여러 모듈에서 동시에 작업할 수 있습니다. Go 작업 공간을 사용하면 go.work 파일을 사용하여 모든 종속성을 제어할 수 있습니다.
작년과 마찬가지로 Gin 프레임워크는 웹 개발을 위한 가장 인기 있는 솔루션이며, 표준 라이브러리의 net/http 패키지는 계속해서 그 자리를 유지하고 있습니다. Gin과 net/http의 차이점을 더 잘 이해하려면 Go REST 가이드를 확인하세요.
Go에서 벤더링은 특정 프로젝트에 필요한 종속성의 로컬 사본을 만 들고 이러한 사본을 파일 구조에 포함하는 방식입니다. 이렇게 하면 프로젝트에 애플리케이션을 구축하는 데 필요한 모든 코드가 포함되도록 하고 외부 소스에서 종속성을 다운로드할 필요가 없습니다.
대부분의 접근 방식과 마찬가지로 벤더링에도 몇 가지 단점이 있습니다. 일부 개발자는 이로 인해 코드 저장소의 투명성이 떨어지고 변경 사항을 검토하기가 더 어려워진다고 생각합니다. Go 모듈은 종속성을 캐시 처리하고 올바른 패키지 버전을 항상 사용할 수 있도록 보장하는 Go 프록시와 같은 기능을 통해 개발자가 벤더링에서 쉽게 벗어날 수 있게 해줍니다.
널리 사용되는 두 라우터인 gorilla/mux 및 go-chi/chi는 여전히 표준 라이브러리를 능가합니다. gorilla/mux와 표준 라이브러리의 차이점을 더 잘 이해하려면 Go REST 가이드를 참조하세요.
Go 개발자들은 예전부터 제네릭 지원을 요청해왔고, 마침내 2022년 3월 Go 1.18에 추가되었습니다. 1년여가 지난 지금 Go 개발자 중 80% 이상이 제네릭을 사용하고 있거나 사용해 본 적이 있습니다.
TinyGo는 임베디드 시스템이나 WebAssembly를 위한 작고 효율적인 프로그램을 제작해야 할 때 훌륭한 결과를 보여줍니다. 이 설문조사에서 알 수 있듯이 TinyGo는 CLI를 생성하는 데에도 사용됩니다. Go에는 뛰어난 표준 라이브러리가 있지만 기본 작업만 수행하는 CLI를 구축하는 경우에는 모든 기능이 필요하지 않을 수 있습니다. 이 경우에는 CLI를 작고 정확하게 유지할 수 있는 TinyGo가 더 나은 선택입니다.
읽어주셔서 감사합니다!
이 보고서가 여러분에게 도움이 되었기를 바랍니다. 이 보고서를 친구와 동료에게 공유하세요.
질문이나 제안이 있으면 surveys@jetbrains.com으로 연락해 주세요.