SlideShare une entreprise Scribd logo
1  sur  36
Télécharger pour lire hors ligne
---------- 1
GO
CONCURRENCY
FOR BEGINNERS
https://fb.com/me.adunhansa
https://twitter.com/arahansa
http://adunhansa.tistory.com/
사이트 : http://arahansa.com
ABOUT
CONTACT
SOURCE
1
1. 작성자 소개 2
-------------------------------------------------------------------
평소 정리를 즐겨합니다. 한 때 동영상강좌도
만들다보니.. 비실명과 만화캐릭터를 쓰네요
양해 부탁드립니다 ㅎㅎ
목차 3
1. Go 역사
2. GO 특징 - 시스템 프로그래밍
동시성
웹개발자로써, 바라보는 Go 4
2014년 말...
CRUD
CRUD
CRUD
GO!
Channel~
Pointer variable
Go 좀 공부해볼까?! 5
Hello World ! Go !
1. Go의 역사 6
2007
1. Go의 역사 7
2009
2. Go의 특징 - 시스템 프로그래밍 8
Hard
Ware
O S
User
App
System
Programming
Application
Programming
2. Go의 특징 - 시스템 프로그래밍 9
Hard
Ware
O S
User
App
System
Programming
Application
Programming
2. Go의 특징 - 시스템 프로그래밍 10
빠른 컴파일, 높은 동시성 지원, 저수준의 interface지원
정적타입, 덕타이핑, multi arch build
2. Go의 특징 - 동시성 11
built in
4KB~8kb
Multiplexed
a kind of thread
2. Go의 특징 - 동시성 12
잠시.. GO에서의 동시성과 관련된 이야기를
조금 세부적으로 해보겠습니다^.^
2. Go의 특징 - 동시성 - Go 13
GO 함수명()
Keyworkd: GO루틴
2. Go의 특징 - 동시성 - Go 14
main function
안녕
세계!
안녕
GO
1 second
CHANNEL!
2. Go의 특징 - 동시성 - Go 15
변수명 := make(채널 타입)
Keyworkd: 채널
Go! Stop!
CHANNEL!
2. Go의 특징 - 동시성 - 채널 16
main function
안녕
세계!
End!
2. Go의 특징 - 동시성 - 채널 17
pongping
2. Go의 특징 - 동시성 - 채널 18
운동했더니
힘들군..
회나 먹으러
GO할까?
2. Go의 특징 - 동시성 - 채널 19
GO 초밥집
CHANNEL!
회 ?
2. Go의 특징 - 동시성 - 채널 20
2. Go의 특징 - 동시성 - 채널 21
• 다른 언어 방식
출처 : 하룻밤에 읽는 Go 언어 이야기 - 싞제용님
Shared Memory
Thread - A Thread - B
• GO 채널 방식
출처 : 하룻밤에 읽는 Go 언어 이야기 - 싞제용님
채널
2. Go의 특징 - 동시성 - 채널 22
GO 루틴 GO 루틴
• GO 채널 방식
• 출처 : 하룻밤에 읽는 Go 언어 이야기 - 싞제용님
동기화 데이터 =>
2. Go의 특징 - 동시성 - 채널 23
GO 루틴 GO 루틴
CH
CH
2. Go의 특징 - 동시성 - select 24
select{
case msg := <-ch1 :
case msg2 := <-ch2 :
}
Keyworkd: 셀렉트
Go!
Go!
select
CHGo!
2. Go의 특징 - 동시성 - select 25
CH
Go!
select
CHGo!
2. Go의 특징 - 동시성 - DeadLock 26
2. Go의 특징 - 동시성 - DeadLock 27
• 채널로 메시지 수싞 대기를 하고 있지만 메시지를 보내지 않는
Go루틴...
CHANNEL!
2. Go의 특징 - 동시성 - Data race 28
Go!
Go!
Go!
2. Go의 특징 - 동시성 - Data race 29
-race 로 감지!
Keyworkd: -race
2. Go의 특징 - 동시성 - race Detector 30
2. Go의 특징 - 동시성 - Example 31
실제로 어떻게
쓰이냐구요..?
2. Go의 특징 - 동시성 - Example 32
GO를 배우기 위한 링크! 33
• Go Tour : http://go-tour-kr.appspot.com/#1
• 가장 빨리 만나는 GO : http://pyrasis.com/go.html
• Go 페이스북 :
https://www.facebook.com/groups/golangko
• GDG google :
• https://plus.google.com/communities/115721275599816
202991
참고 문헌 34
• 하룻밤에 읽는 Go 언어 이야기 – 싞제용님
http://hanbit.co.kr/ebook/look.html?isbn=9788968487903
• GO 동시성 http://www.nada.kth.se/~snilsson/concurrency/
• Rop Pike Slide :
https://talks.golang.org/2012/concurrency.slide#1
• Sammer Ajmani :
https://talks.golang.org/2013/advconc.slide#1
이미지 출처 35
• Gonuts with computer = http://kirael-
art.deviantart.com/art/Go-lang-Mascot-458285682
• pingpong table ; http://www.osundefender.org/ijesa-youths-
compete-in-1st-aregbesola-table-tennis-tourney/
• conveyor belt : http://www.flaticon.com/free-icon/box-on-
band-conveyor-logistics-outline_59355 -- Designed by
Freepik
• sushi : http://www.freepik.com/free-vector/sushi-
illustrations-pack_761463.htm -- Designed by Freepik
• lcok : http://www.freepik.com/free-vector/colorful-round-
business-icons_745371.htm">Designed by Freepik</a>
• thread - http://www.flaticon.com
• skull - http://www.flaticon.com
• gopher wrench - talks.golang.org
36
THANK YOU !
즐거운 개발됩시다
arahansa
------
------
페북 : https://fb.com/me.adunhansa
트위터 : https://twitter.com/arahansa
블로그: http://adunhansa.tistory.com/
사이트 : http://arahansa.com

Contenu connexe

En vedette

Scala로의 산책
Scala로의 산책Scala로의 산책
Scala로의 산책Youmi Bae
 
영속성 컨텍스트로 보는 JPA
영속성 컨텍스트로 보는 JPA영속성 컨텍스트로 보는 JPA
영속성 컨텍스트로 보는 JPA경원 이
 
Scala, Spring-Boot, JPA의 불편하면서도 즐거운 동거
Scala, Spring-Boot, JPA의 불편하면서도 즐거운 동거Scala, Spring-Boot, JPA의 불편하면서도 즐거운 동거
Scala, Spring-Boot, JPA의 불편하면서도 즐거운 동거Javajigi Jaesung
 
SLiPP 스터디 - MSA
SLiPP 스터디 - MSASLiPP 스터디 - MSA
SLiPP 스터디 - MSADaekwon Kang
 
Slipp 발표 자료 20151212
Slipp 발표 자료 20151212Slipp 발표 자료 20151212
Slipp 발표 자료 20151212Jinsoo Jung
 
Slipp clojure-1212
Slipp clojure-1212Slipp clojure-1212
Slipp clojure-1212완수 양
 
딥러닝(Deep Learing) using DeepDetect
딥러닝(Deep Learing) using DeepDetect딥러닝(Deep Learing) using DeepDetect
딥러닝(Deep Learing) using DeepDetectJunyi Song
 
스프링 Generic autowired 로 구현하는 제너릭 컨트롤러 이야기
스프링 Generic autowired 로 구현하는 제너릭 컨트롤러 이야기스프링 Generic autowired 로 구현하는 제너릭 컨트롤러 이야기
스프링 Generic autowired 로 구현하는 제너릭 컨트롤러 이야기라한사 아
 
자바로 Mnist 구현하고_스프링웹서버붙이기
자바로 Mnist 구현하고_스프링웹서버붙이기자바로 Mnist 구현하고_스프링웹서버붙이기
자바로 Mnist 구현하고_스프링웹서버붙이기라한사 아
 
아라한사의 스프링 시큐리티 정리
아라한사의 스프링 시큐리티 정리아라한사의 스프링 시큐리티 정리
아라한사의 스프링 시큐리티 정리라한사 아
 
구글 검색엔진 최적화(Seo) 정리
구글 검색엔진 최적화(Seo) 정리구글 검색엔진 최적화(Seo) 정리
구글 검색엔진 최적화(Seo) 정리라한사 아
 
jQuery angular, React.js 로 댓글달아보기 공부했던 기록
jQuery angular, React.js 로 댓글달아보기 공부했던 기록jQuery angular, React.js 로 댓글달아보기 공부했던 기록
jQuery angular, React.js 로 댓글달아보기 공부했던 기록라한사 아
 
Growing object oriented software guided by test
Growing object oriented software guided by testGrowing object oriented software guided by test
Growing object oriented software guided by test라한사 아
 
동시성 프로그래밍 기초 in GO
동시성 프로그래밍 기초 in GO 동시성 프로그래밍 기초 in GO
동시성 프로그래밍 기초 in GO 라한사 아
 
Aws ses 이메일 보내기 받기 송신 수신
Aws ses 이메일 보내기 받기 송신 수신Aws ses 이메일 보내기 받기 송신 수신
Aws ses 이메일 보내기 받기 송신 수신라한사 아
 
spring data jpa 간단한 튜토리얼
spring data jpa 간단한 튜토리얼spring data jpa 간단한 튜토리얼
spring data jpa 간단한 튜토리얼라한사 아
 
구글앱엔진+스프링+스프링datajpa+메이븐
구글앱엔진+스프링+스프링datajpa+메이븐구글앱엔진+스프링+스프링datajpa+메이븐
구글앱엔진+스프링+스프링datajpa+메이븐라한사 아
 
스프링 프레임워크로 블로그 개발하기
스프링 프레임워크로 블로그 개발하기 스프링 프레임워크로 블로그 개발하기
스프링 프레임워크로 블로그 개발하기 라한사 아
 

En vedette (19)

Scala로의 산책
Scala로의 산책Scala로의 산책
Scala로의 산책
 
영속성 컨텍스트로 보는 JPA
영속성 컨텍스트로 보는 JPA영속성 컨텍스트로 보는 JPA
영속성 컨텍스트로 보는 JPA
 
Scala, Spring-Boot, JPA의 불편하면서도 즐거운 동거
Scala, Spring-Boot, JPA의 불편하면서도 즐거운 동거Scala, Spring-Boot, JPA의 불편하면서도 즐거운 동거
Scala, Spring-Boot, JPA의 불편하면서도 즐거운 동거
 
SLiPP 스터디 - MSA
SLiPP 스터디 - MSASLiPP 스터디 - MSA
SLiPP 스터디 - MSA
 
Slipp 발표 자료 20151212
Slipp 발표 자료 20151212Slipp 발표 자료 20151212
Slipp 발표 자료 20151212
 
Slipp clojure-1212
Slipp clojure-1212Slipp clojure-1212
Slipp clojure-1212
 
딥러닝(Deep Learing) using DeepDetect
딥러닝(Deep Learing) using DeepDetect딥러닝(Deep Learing) using DeepDetect
딥러닝(Deep Learing) using DeepDetect
 
스프링 Generic autowired 로 구현하는 제너릭 컨트롤러 이야기
스프링 Generic autowired 로 구현하는 제너릭 컨트롤러 이야기스프링 Generic autowired 로 구현하는 제너릭 컨트롤러 이야기
스프링 Generic autowired 로 구현하는 제너릭 컨트롤러 이야기
 
자바로 Mnist 구현하고_스프링웹서버붙이기
자바로 Mnist 구현하고_스프링웹서버붙이기자바로 Mnist 구현하고_스프링웹서버붙이기
자바로 Mnist 구현하고_스프링웹서버붙이기
 
아라한사의 스프링 시큐리티 정리
아라한사의 스프링 시큐리티 정리아라한사의 스프링 시큐리티 정리
아라한사의 스프링 시큐리티 정리
 
구글 검색엔진 최적화(Seo) 정리
구글 검색엔진 최적화(Seo) 정리구글 검색엔진 최적화(Seo) 정리
구글 검색엔진 최적화(Seo) 정리
 
jQuery angular, React.js 로 댓글달아보기 공부했던 기록
jQuery angular, React.js 로 댓글달아보기 공부했던 기록jQuery angular, React.js 로 댓글달아보기 공부했던 기록
jQuery angular, React.js 로 댓글달아보기 공부했던 기록
 
Growing object oriented software guided by test
Growing object oriented software guided by testGrowing object oriented software guided by test
Growing object oriented software guided by test
 
동시성 프로그래밍 기초 in GO
동시성 프로그래밍 기초 in GO 동시성 프로그래밍 기초 in GO
동시성 프로그래밍 기초 in GO
 
Aws ses 이메일 보내기 받기 송신 수신
Aws ses 이메일 보내기 받기 송신 수신Aws ses 이메일 보내기 받기 송신 수신
Aws ses 이메일 보내기 받기 송신 수신
 
spring data jpa 간단한 튜토리얼
spring data jpa 간단한 튜토리얼spring data jpa 간단한 튜토리얼
spring data jpa 간단한 튜토리얼
 
구글앱엔진+스프링+스프링datajpa+메이븐
구글앱엔진+스프링+스프링datajpa+메이븐구글앱엔진+스프링+스프링datajpa+메이븐
구글앱엔진+스프링+스프링datajpa+메이븐
 
Gulp 입문
Gulp 입문 Gulp 입문
Gulp 입문
 
스프링 프레임워크로 블로그 개발하기
스프링 프레임워크로 블로그 개발하기 스프링 프레임워크로 블로그 개발하기
스프링 프레임워크로 블로그 개발하기
 

Plus de 라한사 아

Go revel 구성_루팅_정리
Go revel 구성_루팅_정리Go revel 구성_루팅_정리
Go revel 구성_루팅_정리라한사 아
 
Groovy 시작 입문
Groovy 시작 입문Groovy 시작 입문
Groovy 시작 입문라한사 아
 
프로그래밍 go투어 정리
프로그래밍 go투어 정리프로그래밍 go투어 정리
프로그래밍 go투어 정리라한사 아
 
스프링시큐리티와 소셜연습 이해를 위한 글
스프링시큐리티와 소셜연습 이해를 위한 글스프링시큐리티와 소셜연습 이해를 위한 글
스프링시큐리티와 소셜연습 이해를 위한 글라한사 아
 
개발자를위한 오픈소스라이선스
개발자를위한 오픈소스라이선스개발자를위한 오픈소스라이선스
개발자를위한 오픈소스라이선스라한사 아
 

Plus de 라한사 아 (6)

Go revel 구성_루팅_정리
Go revel 구성_루팅_정리Go revel 구성_루팅_정리
Go revel 구성_루팅_정리
 
Groovy 시작 입문
Groovy 시작 입문Groovy 시작 입문
Groovy 시작 입문
 
프로그래밍 go투어 정리
프로그래밍 go투어 정리프로그래밍 go투어 정리
프로그래밍 go투어 정리
 
스프링시큐리티와 소셜연습 이해를 위한 글
스프링시큐리티와 소셜연습 이해를 위한 글스프링시큐리티와 소셜연습 이해를 위한 글
스프링시큐리티와 소셜연습 이해를 위한 글
 
개발자를위한 오픈소스라이선스
개발자를위한 오픈소스라이선스개발자를위한 오픈소스라이선스
개발자를위한 오픈소스라이선스
 
자바채팅 다중
자바채팅 다중자바채팅 다중
자바채팅 다중
 

Slipp 발표 - GO

  • 2. 1. 작성자 소개 2 ------------------------------------------------------------------- 평소 정리를 즐겨합니다. 한 때 동영상강좌도 만들다보니.. 비실명과 만화캐릭터를 쓰네요 양해 부탁드립니다 ㅎㅎ
  • 3. 목차 3 1. Go 역사 2. GO 특징 - 시스템 프로그래밍 동시성
  • 4. 웹개발자로써, 바라보는 Go 4 2014년 말... CRUD CRUD CRUD GO! Channel~ Pointer variable
  • 5. Go 좀 공부해볼까?! 5 Hello World ! Go !
  • 8. 2. Go의 특징 - 시스템 프로그래밍 8 Hard Ware O S User App System Programming Application Programming
  • 9. 2. Go의 특징 - 시스템 프로그래밍 9 Hard Ware O S User App System Programming Application Programming
  • 10. 2. Go의 특징 - 시스템 프로그래밍 10 빠른 컴파일, 높은 동시성 지원, 저수준의 interface지원 정적타입, 덕타이핑, multi arch build
  • 11. 2. Go의 특징 - 동시성 11 built in 4KB~8kb Multiplexed a kind of thread
  • 12. 2. Go의 특징 - 동시성 12 잠시.. GO에서의 동시성과 관련된 이야기를 조금 세부적으로 해보겠습니다^.^
  • 13. 2. Go의 특징 - 동시성 - Go 13 GO 함수명() Keyworkd: GO루틴
  • 14. 2. Go의 특징 - 동시성 - Go 14 main function 안녕 세계! 안녕 GO 1 second
  • 15. CHANNEL! 2. Go의 특징 - 동시성 - Go 15 변수명 := make(채널 타입) Keyworkd: 채널 Go! Stop!
  • 16. CHANNEL! 2. Go의 특징 - 동시성 - 채널 16 main function 안녕 세계! End!
  • 17. 2. Go의 특징 - 동시성 - 채널 17 pongping
  • 18. 2. Go의 특징 - 동시성 - 채널 18 운동했더니 힘들군.. 회나 먹으러 GO할까?
  • 19. 2. Go의 특징 - 동시성 - 채널 19 GO 초밥집 CHANNEL! 회 ?
  • 20. 2. Go의 특징 - 동시성 - 채널 20
  • 21. 2. Go의 특징 - 동시성 - 채널 21 • 다른 언어 방식 출처 : 하룻밤에 읽는 Go 언어 이야기 - 싞제용님 Shared Memory Thread - A Thread - B
  • 22. • GO 채널 방식 출처 : 하룻밤에 읽는 Go 언어 이야기 - 싞제용님 채널 2. Go의 특징 - 동시성 - 채널 22 GO 루틴 GO 루틴
  • 23. • GO 채널 방식 • 출처 : 하룻밤에 읽는 Go 언어 이야기 - 싞제용님 동기화 데이터 => 2. Go의 특징 - 동시성 - 채널 23 GO 루틴 GO 루틴
  • 24. CH CH 2. Go의 특징 - 동시성 - select 24 select{ case msg := <-ch1 : case msg2 := <-ch2 : } Keyworkd: 셀렉트 Go! Go! select CHGo!
  • 25. 2. Go의 특징 - 동시성 - select 25 CH Go! select CHGo!
  • 26. 2. Go의 특징 - 동시성 - DeadLock 26
  • 27. 2. Go의 특징 - 동시성 - DeadLock 27 • 채널로 메시지 수싞 대기를 하고 있지만 메시지를 보내지 않는 Go루틴... CHANNEL!
  • 28. 2. Go의 특징 - 동시성 - Data race 28 Go! Go! Go!
  • 29. 2. Go의 특징 - 동시성 - Data race 29 -race 로 감지! Keyworkd: -race
  • 30. 2. Go의 특징 - 동시성 - race Detector 30
  • 31. 2. Go의 특징 - 동시성 - Example 31 실제로 어떻게 쓰이냐구요..?
  • 32. 2. Go의 특징 - 동시성 - Example 32
  • 33. GO를 배우기 위한 링크! 33 • Go Tour : http://go-tour-kr.appspot.com/#1 • 가장 빨리 만나는 GO : http://pyrasis.com/go.html • Go 페이스북 : https://www.facebook.com/groups/golangko • GDG google : • https://plus.google.com/communities/115721275599816 202991
  • 34. 참고 문헌 34 • 하룻밤에 읽는 Go 언어 이야기 – 싞제용님 http://hanbit.co.kr/ebook/look.html?isbn=9788968487903 • GO 동시성 http://www.nada.kth.se/~snilsson/concurrency/ • Rop Pike Slide : https://talks.golang.org/2012/concurrency.slide#1 • Sammer Ajmani : https://talks.golang.org/2013/advconc.slide#1
  • 35. 이미지 출처 35 • Gonuts with computer = http://kirael- art.deviantart.com/art/Go-lang-Mascot-458285682 • pingpong table ; http://www.osundefender.org/ijesa-youths- compete-in-1st-aregbesola-table-tennis-tourney/ • conveyor belt : http://www.flaticon.com/free-icon/box-on- band-conveyor-logistics-outline_59355 -- Designed by Freepik • sushi : http://www.freepik.com/free-vector/sushi- illustrations-pack_761463.htm -- Designed by Freepik • lcok : http://www.freepik.com/free-vector/colorful-round- business-icons_745371.htm">Designed by Freepik</a> • thread - http://www.flaticon.com • skull - http://www.flaticon.com • gopher wrench - talks.golang.org
  • 36. 36 THANK YOU ! 즐거운 개발됩시다 arahansa ------ ------ 페북 : https://fb.com/me.adunhansa 트위터 : https://twitter.com/arahansa 블로그: http://adunhansa.tistory.com/ 사이트 : http://arahansa.com