Go lang

944 views
792 views

Published on

0 Comments
11 Likes
Statistics
Notes
  • Be the first to comment

No Downloads
Views
Total views
944
On SlideShare
0
From Embeds
0
Number of Embeds
4
Actions
Shares
0
Downloads
0
Comments
0
Likes
11
Embeds 0
No embeds

No notes for slide

Go lang

  1. 1. GO
  2. 2. GO• 컴파일, 가베지컬렉션, 동시성 (Concurrency) 지원•켄 톰슨, 롭 파이크, 로버트 그리스머• 구글• 2009
  3. 3. GOALS 는 동적 언어처럼 쉽게 프로그래밍할 수 있도록,• GO 컴파일(정적 타입) 언어의 효율성을 제공한다.• 안정성.• 동시성과 상호 통신.• 효율적이고, 지연없는 가베지 컬렉션.• 빠른 컴파일.
  4. 4. 설명• C언어와 유사한 문법• 코드 블락은 중괄호({})로 묶는다.• if, for, switch등 제어문.• 라인 끝에 세미콜론은 옵션.• 변수 선언은 다르다.(파스칼 또는 옵션)• maps, array slices, channels 등 빌트인 타입 추가.
  5. 5. HELLO WORLDpackage main • 패키지 선언.(실행파일, 라이브러import "fmt" 리)func main() { fmt.Println("Hello, World") • fmt 패키지는 입출력 포맷팅 지} 원. • 모든 함수는 func 으로 시작. • go run main.go • go build main.go
  6. 6. PACKAGE • http://golang.org/pkg/ • godoc
  7. 7. 파일명 일괄 변경 • 커맨드 인자로 디렉토리 입력 받음. • 디렉토리 파일 탐색. • 파일명 변경
  8. 8. 명령행 파싱 • flag package
  9. 9. 파일 순회
  10. 10. 파일명 추출• GO 언어는 하나 이상의 리턴값을 정의할 수 있다.•
  11. 11. 파일명 변경 최종
  12. 12. WEB CRAWL
  13. 13. 동시성(CONCURRENCY) • 4번 호출시 0.18sec
  14. 14. GOROUTINES 은 함수들 • goroutine 을 동시에 수행하는 함수. • go 키워드 사용.
  15. 15. CHANNELS • Channels은 goroutine간의 통신 기능을 제공하고 goroutine 수행을 동기화시 킴. •총 0.08 초.
  16. 16. CRAWL•총 520,000 개 표제어.• PHP : 1000개를 30분 => 10일 20시간 /6개 -> 2일• goroutine : 10개 0.2초 => 10400 초 -> 2.9시간.
  17. 17. WEB APP• Google App Engine
  18. 18. GO• 스크립트 작성하듯 높은 생산성 제공• C/C++ 실행 속도 유사• 단일 실행 파일• WebApp 은 C, Scheme ... 으로도 작성가능하다.• 자신만의 제 2의 언어가 없다면 배울 가치가 있다.• 그래도 스크립트 언어 2개정도는 사용 가능해야 할 듯.

×