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
《An Introduction to Programming in Go》의 한국어 번역판 - 공식 아님
프로그래머스 30분 Go
Go 언어 웹 프로그래밍 철저 입문
예제로 배우는 Go 프로그래밍
가장 빨리 만나는 Go 언어
'Go' 카테고리의 다른 글
Go 기본 문법 4 (2) | 2023.07.24 |
---|---|
Go 기본 문법 3 (0) | 2023.07.24 |
Go 기본 문법 2 (0) | 2023.07.23 |
Go 기본 문법 (0) | 2023.07.23 |