익명 사용자
로그인하지 않음
토론
기여
계정 만들기
로그인
IT 위키
검색
Go (프로그래밍 언어)
편집하기
IT 위키
이름공간
문서
토론
더 보기
더 보기
문서 행위
읽기
편집
원본 편집
역사
경고:
로그인하지 않았습니다. 편집을 하면 IP 주소가 공개되게 됩니다.
로그인
하거나
계정을 생성하면
편집자가 사용자 이름으로 기록되고, 다른 장점도 있습니다.
스팸 방지 검사입니다. 이것을 입력하지
마세요
!
고(Go, Golang)는 구글에서 로버트 그리즈머(Robert Griesemer), 롭 파이크(RRob Pike), 켄 톰프슨(Ken Thompson)이 2007년에 개발을 시작하고, 2009년 첫 공개 버전을 발표한 정적 타입의 컴파일 언어이다. 간결성과 성능, 병행성(concurrency)을 중점으로 설계되었으며, 특히 서버·클라우드 환경에서 인기를 끌고 있다. ==개요== 고는 C 언어의 문법적 간결함과 런타임 효율성을 유지하면서도, 가비지 컬렉션, 런타임 타입 검사, 풍부한 표준 라이브러리, 그리고 병행성 지원을 제공하는 것이 특징이다. 대부분의 기능이 언어 스펙 내에 포함되어 있어 외부 의존성이 적고, 빌드 및 배포가 간편하다. ==특징== *'''정적 타입'''과 '''컴파일-타임 오류 검사''' *'''가비지 컬렉션''' 제공으로 메모리 관리 자동화 *'''병행성 지원''': 고루틴(goroutine)과 채널(channel)을 통한 CSP 스타일 지원 *'''단일 바이너리''' 생성: 실행 파일에 모든 의존성 포함 *'''크로스-컴파일''' 내장: 다양한 플랫폼을 타겟으로 손쉽게 컴파일 가능 *'''표준 툴체인''': go fmt, go test, go build, go mod 등 일관된 개발 환경 제공 ==역사== *2007년: 구글 내부 프로젝트 시작 (Griesemer, Pike, Thompson) *2009년: 첫 공개 베타 릴리스 *2012년: Go 1.0 출시, 안정 API 보장 시작 *이후 매 6개월마다 정기 릴리스 진행 ==장단점== ===장점=== *'''간결한 문법'''과 쉬운 학습 곡선 *'''고루틴'''을 이용한 매우 가벼운 병행 처리 *'''빠른 컴파일 속도'''와 고성능 실행 *'''강력한 표준 라이브러리'''와 공식 툴 지원 *'''풍부한 패키지 생태계''' (예: 웹, 네트워크, 데이터베이스 등) ===단점=== *'''제네릭 이후진''': Go 1.18에서 제네릭 도입, 하지만 여전히 C++이나 Rust 같은 언어에 비해 기능 제한 있음 *'''메타프로그래밍 제한''': 리플렉션 지원은 있으나 매크로 시스템 없음 *'''모듈 시스템 복잡''': 초기 GOPATH 방식과 go modules 간의 혼용으로 혼란 발생 가능 ==활용 분야== *서버 / 클라우드 백엔드 (예: Docker, Kubernetes도 Go로 작성됨) *마이크로서비스 / API 서버 *DevOps 도구 및 CLI 유틸리티 *네트워크 서비스 / 분산 시스템 *웹 프레임워크 (예: Gin, Echo) ==주요 생태계== *'''Go Toolchain''': go 커맨드 툴 (go build, go test, go fmt, go mod) *'''패키지 저장소''': pkg.go.dev, GitHub 등 *'''병행성 모델''': 고루틴(goroutine), 채널(channel) *'''웹 프레임워크''': Gin, Echo, Fiber 등 *'''DevOps 도구''': Docker, Kubernetes, Terraform, Consul 등 ==컴파일러 및 런타임== *'''gc''' – 공식 Go 컴파일러 (Go toolchain 내장) *'''gccgo''' – GCC 프론트엔드 버전 *'''TinyGo''' – 마이크로컨트롤러 및 WASM용 경량 컴파일러 ==같이 보기== *[[시스템 프로그래밍 언어]] *[[병행 프로그래밍]] *[[가비지 컬렉션]] *[[WebAssembly]] *[[C 언어]] ==참고 문헌== *Griesemer, R., Pike, R., Thompson, K. (2009). The Go Programming Language: Design and Implementation. *Donovan, A. A., & Kernighan, B. W. (2015). ''The Go Programming Language''. Addison-Wesley. *Official Go Blog 및 Go 1.0 릴리스 노트. ==각주== [[분류:프로그래밍 언어]]
요약:
IT 위키에서의 모든 기여는 크리에이티브 커먼즈 저작자표시-비영리-동일조건변경허락 라이선스로 배포된다는 점을 유의해 주세요(자세한 내용에 대해서는
IT 위키:저작권
문서를 읽어주세요). 만약 여기에 동의하지 않는다면 문서를 저장하지 말아 주세요.
또한, 직접 작성했거나 퍼블릭 도메인과 같은 자유 문서에서 가져왔다는 것을 보증해야 합니다.
저작권이 있는 내용을 허가 없이 저장하지 마세요!
취소
편집 도움말
(새 창에서 열림)
둘러보기
둘러보기
대문
최근 바뀜
광고
위키 도구
위키 도구
특수 문서 목록
문서 도구
문서 도구
사용자 문서 도구
더 보기
여기를 가리키는 문서
가리키는 글의 최근 바뀜
문서 정보
문서 기록