이 강의는 첫날 첫번째 강의였는데 사진보다는 열심히 메모했던것 같다.
Go언어 공부를 시작하려는 사람들이나 서버개발을 시작하려는 사람들에게 도움될만한 강연이었다.
Go언어란 구글이 개발한 프로그래밍 언어로 고성능 네트워크 프로그래밍에 사용하기 좋다.
Go언어는 C언어에서 진화된 형태로 C++과는 다르다. 비슷하다면 phyton과 비슷.
Go언어에는 Go루틴이라는 것이 있으며 stateless에는 사용하기 좋지만, stateful에서는 한계가 있다.
(stateless - 무상태 프로토콜, stateful - 상태 프로토콜
이 블로그에 잘 정리되어있더라 → http://ssaturn.tistory.com/190)
Go언어의 장점
메모리 자동관리
네트워크 프로그래밍
병렬 프로그래밍
그렇지만 VM(Virtual Machine)은 아니다!
스레드를 막 만들어도 괜찮다. (고루틴)
채널은 고루틴간의 통신통로를 말한다.
Go를 사용하는 이유
클라이언트 접속마다 고루틴을 만들어도 10k문제는 걱정없음
C++은 IOCP, epoll 써야하지만 (자세히는 이해를 못했다. 강제 멀티스레드 프로그래밍 방식을 고수해야 한다는듯)
→ Go는 BSD Socket 쓰듯이 사용하면 된다.
크로스플랫폼 개발이 쉽다. (ex : 윈도우 + 리눅스 동시개발)
IDE를 지원한다.
IDE에는 VSCode와 유료인 GoLand가 있는데 GoLand가 더 좋은것 같다고 하심.
클래스는 없음.
struct는 있지만 C에 가깝다.
금방 배운다 → 즉 배울 것이 적다 → 기능이 적다. (장점이자 단점)
const, generic, STL 같은 것이 없음.
비실시간통신(http)에서는 고루틴이 최고로 좋음.
실시간통신에서 고루틴은 네트워크 통신에서만 도움.
빠르긴하지만 C++보다는 느리다.
예외처리
defer, panic, recover
대규모 분산 게임서버의 경우 Front Server(클라이언트와 서버간 패킷전달)는
stateless에 가까우므로 Go언어 사용하면 아주 좋다.
기타 강의자료
golangkorea github - https://github.com/golangkorea
발표자료 외 기타 - https://github.com/jacking75/conf_ndc_2018
NDC18_golang으로 네트워크 프로그래밍 하기.ppt
추천도서로는 가장 빨리 만나는 Go언어(길벗) - 네이버 책 링크
'프로그래밍 공부 > NDC 2018' 카테고리의 다른 글
[1일차] 안드로이드에서 유니티 프로젝트 네이티브 프로파일링 삽질기 (0) | 2018.04.26 |
---|---|
[1일차] 서버개발 생산성 향상을 위한 ORM 구현 경험 공유 (0) | 2018.04.26 |
[1일차] 인하우스 웹프레임워크 Jul8 제작기 - 게임 운영 툴에 좋음 (0) | 2018.04.26 |
1, 2, 3일차 시간표 참고 + 기타 (0) | 2018.04.26 |
NDC 2018에 다녀왔다. (0) | 2018.04.26 |