Golang 소개

Download Report

Transcript Golang 소개

GO LANG 리뷰
2016.02.25 이동은
목차
 Go Lang
Go Programming
 https://golang.org/

구글의 서버 프로그램 언어

2009년 발표
 A Tour of Go

https://go-tour-kr.appspot.com
GO 특징

GO 언어의 목표 : 시스템 개발

적용 가능 분야 : 웹서버, 웹브라우저, 웹로봇, 검색엔진, 컴파일러, 프로그래밍 도구, IDE, 운영체제

C와 비슷한 성능, C/C++로 개발돼 온 분야 대체

가비지 콜렉션

병렬 처리

컴파일 언어

파이썬 수준의 서버 프로그래밍

웹서버, 소켓, OS 내부 기능

크로스 컴파일

class, inheritance(상속)을 없애고 struct와 interface만 제공
Go / 설치 (Win, OSX, Linux)
GO / Getting Started
 설치 테스트

GOPATH 설정

hello.go 작성

src/github.com/user/hello 폴더

compile

execute
GO / Tool 설치 – Visual Studio Code
GO / Tool – Visual Studio Code
 go ext 설치

‘F1’ -> ‘ext inst’

go 설치

Analysis Tool 설치

delve 설치 (디버거)
 git 설치
Visual Studio Market
Visual Sutio Code Debug
Go / defer
 defer /지연

해당 함수 완료 시 실행

파일/소켓 등을 열고 닫을때 사용
f, _ := os.Open(filename)
defer f.Close()
Go / struct, interface
 struct

type 키워드 사용

메소드 : func와 함수명 사이에 “수신자” 추가
 interface

type ‘이름’ interface

인터페이스 타입을 함수의 인자로 사용
Go / go
 go /고 루틴

다른 함수를 동시에 실행

생성 비용이 많이 들지 않는다
Go / channel
 chan / 채널

선언 : chan [타입]

c <- //채널에 메시지 전달

<- c //채널에 메시지 수신

단방향 채널

2개의 고루틴 동기화
pinger가 메시지를 채널에 전송하려고 시도할 경우
printer가 해당 메시지를 받을 준비가 될 때까지 대기 (블로킹)
GO / HTTP GET
 HTTP GET
Go / Post
 HTTP Post

RC Agent 로그인
감사합니다.