Go

Go가 무엇인고

알맹리 2023. 7. 11. 22:46

Go로 간단하고 안전하며 확장 가능한 시스템 구축

  • Google에서 지원하는 오픈 소스 프로그래밍 언어
  • 배우기 쉽고 팀에 적합
  • 내장 동시성 및 강력한 표준 라이브러리
  • 파트너, 커뮤니티 및 도구의 대규모 에코시스템

라고 공식 홈페이지 메인에서 알려주고 있습니다.


Go는 C언어 기반으로 C++와 Java, Python의 장점을 뽑아 개발되었습니다. Go는 객체지향 프로그래밍(OOP, Object Oriented Programming)을 지원하고, 컴파일 언어지만 컴파일러의 컴파일 속도가 매우 빠르기 때문에 인터프리터 언어처럼 쓸 수 있습니다. 

 

go언어는 코드가 간결하기 때문에 코드량이 줄어들고 가독성이 좋습니다.

내장 라이브러리가 탄탄해 추가 라이브러리나 프레임워크 없이도 http 서버를 쉽게 만들 수 있다고 합니다.

 

Go의 특징

Go는 정적 타입 컴파일 언어의 효율성과 동적 언어처럼 쉬운 프로그래밍을 할 수 있도록 하는 것을 목표로 합니다.

  • 정적 타입 : 자료형에 형이 정해져 있음
  • 강타입 : 자료형 변환(타입캐스팅)이 항상 명시되어야 함
  • 안전성 : 타입 안전성과 메모리 안전성
  • 병행성 : 스레드를 한 단계 더 추상화한 '고루틴'이라는 개념 사용
  • 가비지 컬렉션 : 결과물에 go runtime이 내장되는데 go run time이 메모리를 핸들링
  • 컴파일 언어 : 인터프리터 언어가 아니지만 근접한 수준의 빠른 컴파일
  • 포인터는 존재, 하지만 포인터 연산은 없음

 

Go에 없는 것; 클래스, 상속, 생성자, final, 제네릭

 

Go의 문법

Go의 문법은 대체로 C와 비슷합니다. 코드 블록들은 중괄호로 둘러싸고 for, switch, if를 포함한 일반적인 제어구조를 가지고 있습니다. C와 다르게, 한 라인 끝의 세미콜론은 필수가 아닌 옵션입니다. 변수 선언은 다르게 작성되고 대개 옵션입니다. 형변환은 명시적으로 해야 합니다. 병행성 프로그래밍을 다루기 위해 go와 select 키워드가 사용됩니다. 새로운 타입은 map, 유니코드 문자열, 배열 slice, 그리고 내부 쓰레드 통신을 위한 channel이 있습니다.

 

Go는 웹 프로그래밍의 프레임워크 언어로도 많이 사용되고 있다고 합니다.

 

웹 서버, 웹 브라우저, 웹 로봇, 검색 엔진, 컴파일러, 프로그래밍 도구, 운영체제의 개발 언어로서 사용이 가능합니다.


참고 자료

 

Go Document

 

Get Started - The Go Programming Language

Getting started In this tutorial, you'll get a brief introduction to Go programming. Along the way, you will install Go, write some simple "Hello, world" code, use the go command to run your code, use the Go package discovery tool, and call functions of an

go.dev

《An Introduction to Programming in Go》의 한국어 번역판 - 공식 아님

 

Go 프로그래밍 입문

 

codingnuri.com

프로그래머스 30분 Go

 

30분 Go

현재 IOS/안드로이드 앱 내에서는 결제를 지원하지 않습니다.

school.programmers.co.kr

Go 언어 웹 프로그래밍 철저 입문

 

Go 언어 웹 프로그래밍 철저 입문

더북(TheBook): (주)도서출판 길벗에서 제공하는 IT 도서 열람 서비스입니다.

thebook.io

예제로 배우는 Go 프로그래밍

 

예제로 배우는 Go 프로그래밍

쉽고 재미있는 Go 프로그래밍 예제로 배우는 Go 프로그래밍 I like a lot of the design decisions they made in the [Go] language. Basically, I like all of them. - Martin Odersky, Creator of Scala

golang.site

가장 빨리 만나는 Go 언어

 

PYRASIS.COM: 가장 빨리 만나는 Go 언어 - 목차

© 2003-2023 Jae-Hong Lee. All rights reserved. 상호명 : 제이에이치엘 | 대표자 : 이재홍 사업자등록번호 : 544-03-02533 통신판매업신고 : 2022-서울서초-2713 주소 : 서울특별시 서초구 강남대로107길 21(잠원동) 2

pyrasis.com

 

'Go' 카테고리의 다른 글

Go 기본 문법 4  (2) 2023.07.24
Go 기본 문법 3  (0) 2023.07.24
Go 기본 문법 2  (0) 2023.07.23
Go 기본 문법  (0) 2023.07.23