BLOG main image
분류 전체보기 (313)
교육 (13)
NEIS (6)
Edufine (0)
Programmer (5)
Android Programming (1)
Internet W3 (18)
JAVA Programming (9)
JSP/Servlet (1)
Framework (7)
Spring For Beginner (4)
eGovFrame (10)
MEAN Stack (2)
NodeJS (5)
SublimeText (30)
SublimeText_Tips (18)
Eclipse (16)
JavaScript (8)
jQuery (12)
jQuery_tips (1)
Ajax (3)
DWR(Direct Web Remote) (4)
JSON(JS Object Notation) (4)
Oracle (2)
MySQL (28)
OS (16)
Download (3)
Life (10)
Favorit Site (1)
Books (2)
Healthy (1)
Stocks (1)
HTML5/CSS (1)
Python (4)
Security (7)
CISSP (0)
Ruby On Rails (5)
일기장 (0)
영어 교과서(중2) (3)
알고리즘 (0)
Go Lang (3)
VB 2010 (12)
C# (1)
정보보안기사(네트워크보안) (0)
업무 활용 엑셀 (11)
틈틈이 활용팁 (14)
하루 하루 살아가며 ……. (2)
기술 (1)
파이썬 & 데이터분석 (1)
Visitors up to today!
Today hit, Yesterday hit
daisy rss
tistory 티스토리 가입하기!
2016. 4. 6. 16:16




고 언어(Go Language)는 구글이 개발한 프로그래밍 언어입니다.
GC(Garbage Collector)가 기본적으로 탑재되어 있고, 가장 중요한 병행성 프로그래밍을 잘 지원해줍니다. 또 빠른 컴파일, 타입의 안정성(메모리 안정성), 타 언어보다 효과적인 가비지 컬렉팅이 가능합니다.

강 타입 약 타입
고 언어는 강 타입(Strong-type) 언어입니다. 약 타입은 Python이나 Javascript처럼 따로 자료형을 선언하지 않고 선언하는 형식을 말하고 강 타입은 C언어처럼 자료형을 직접 선언해줘야 하는 형식을 말합니다. 그러나 C언어는 강 타입 언어는 아닙니다. 이재홍의 '가장 빨리 만나는 Go 언어'책의 강 타입 설명을 인용해보자면 "강 타입(String-typed)은 값 자체가 타입이며, 타입을 바꿀 수 없습니다. 즉 컴파일 또는 실행할 때 자료형이 다르면 에러를 발생시킵니다."즉 강 타입은 값 자체가 타입, 선언 시 자료형을 직접 선언해줘야 할 수도 있고 약 타입은 선언 시 자료형을 필요치 않을 수 있고, 타입을 바꿀 수 있다는 점이 있습니다.

컴파일 언어
고 언어는 컴파일형 언어입니다. 따라서 자바(Java)나 C++같이 소스 코드를 작성 후 컴파일 하여 정적으로 사용하는 방식을 컴파일 방식, 흔히 사용되는 파이썬(Python)이나 PHP 같이 소스 코드를 작성하면 컴파일 과정 없이 결과를 바로 도출할 수 있는 방식이 인터 프리터형 방식이라고 합니다. 
컴파일 방식의 장점은 실행 시 빠른 속도를 가져올 수 있다는 큰 장점이 있는데, 고 언어가 컴파일 방식인 점을 생각하면 마찬가지로 고 언어도 컴파일 방식의 장점을 가져올 수 있습니다. 


병행성 프로그래밍 장점
기존의 프로그래밍 방식 중 쓰레드(Thread)를 이용하여 멀티쓰레딩이나, 프로세스(Process)를 만들어 멀티 프로세싱으로 프로그래밍 하여 프로그램에 병행성을 지원했다면, 병행성 프로그래밍이 가장 잘 지원되는 고 언어는 고 루틴(Go rountine)를 사용합니다. 고 루틴은  기존의 병행성을 지원하는 프로그래밍 방식보다 문법이 간단, 시스템 자원을 더 적게 사용합니다. 따라서 더 많은 고 루틴을 생성하여 더 많은 작업을 병행하여서 처리할 수가 있습니다.

문법
고 언어는 C언어의 영향을 받아 어느 정도 C의 문법과 많이 닮아있습니다.
if - else if - else 구조라던가 포인터라던가 여러 가지를 고를 수 있죠. 그러나 C언어와 다르게 세미콜론은 for 문의 식들의 끝을 나타내는 세미콜론을 제외하고는 거의 사용하지 않습니다. 이는 컴파일시에 전부 들어가게 됩니다. 또 C언어의 while 문이 고 언어에서는 없습니다.
고 언어는 파이썬(Python)과 다르게 :(콜론)을 함수의 처음과 끝에 사용하지 않고, C와 C++, Java 등 익히 알고 있는 언어들과 같이 {, }(중괄호) 사용하여 나타냅니다. 단 이 중괄호는 다음과 같이 나타내어야 합니다.

func main() {
}

if(a == 1) {
}

다음과 같이 중괄호를 써야 할 함수 선언이나 if 문, for 문 등은 중괄호를 내려서 사용하는 일이 불가능합니다. 이는 고 언어 자체에서 제한하는 사항입니다.

이상으로 고 언어의 대략적인 정리를 마칩니다.

[출처] Go Language !|작성자 blogcin



Go 언어 학습을 위한 사이트


The Go Programming Language


https://golang.org/#


AN INTRODUCTION TO PROGRAMMING IN GO


http://codingnuri.com/golang-book/



A Tour of Go


https://go-tour-kr.appspot.com/




반응형

'Go Lang' 카테고리의 다른 글

GO :: 문법 요약 정리 #1 (Index 1~35)  (0) 2016.04.08
GO :: LiteIDE 개발 환경 만들기  (0) 2016.04.08