넥슨코리아 사내 발표자료로 왓 스튜디오에서 파이썬으로 《야생의 땅: 듀랑고》 서버를 비롯한 여러가지 도구를 만든 경험을 공유합니다.
- 게임서버와 각종 툴, 테스트/빌드/배포 시스템을 만들 때 사용한 재료
- 파이썬 코드 품질 개선, 디버깅, 프로파일링, 최적화
- 파이썬 오픈소스 생태계와 왓 스튜디오가 하는 오픈소스 활동
[야생의 땅: 듀랑고] 서버 아키텍처 - SPOF 없는 분산 MMORPG 서버Heungsub Lee
NDC14에서 발표한 "[야생의 땅: 듀랑고] 서버 아키텍처" 세션의 슬라이드입니다.
슬라이드에 설명이 많지 않은데, 디스이즈게임에서 발표 내용을 잘 정리해주었습니다. 기사도 함께 보시면 좋을 것 같습니다.
http://www.thisisgame.com/webzine/news/nboard/4/?n=54955
넥슨코리아 사내 발표자료로 왓 스튜디오에서 파이썬으로 《야생의 땅: 듀랑고》 서버를 비롯한 여러가지 도구를 만든 경험을 공유합니다.
- 게임서버와 각종 툴, 테스트/빌드/배포 시스템을 만들 때 사용한 재료
- 파이썬 코드 품질 개선, 디버깅, 프로파일링, 최적화
- 파이썬 오픈소스 생태계와 왓 스튜디오가 하는 오픈소스 활동
[야생의 땅: 듀랑고] 서버 아키텍처 - SPOF 없는 분산 MMORPG 서버Heungsub Lee
NDC14에서 발표한 "[야생의 땅: 듀랑고] 서버 아키텍처" 세션의 슬라이드입니다.
슬라이드에 설명이 많지 않은데, 디스이즈게임에서 발표 내용을 잘 정리해주었습니다. 기사도 함께 보시면 좋을 것 같습니다.
http://www.thisisgame.com/webzine/news/nboard/4/?n=54955
[17.01.19] docker introduction (Korean Version)Ildoo Kim
Docker(도커) 소개를 위해 사용했던 자료입니다.
제가 속한 개발팀에서는 도커 컨테이너를 기반으로 개발부터 배포까지 가능한 환경 및 인프라를 구축하여 개발팀에서 대다수의 오퍼레이션까지 관여하면서 Devops 형태로 운영합니다.
Docker(도커)를 처음 사용하거나 개념적으로 익숙하지 않은 초보를 위해 만든 자료입니다.
슬라이드에서 사용된 스크립트/코드는 아래에 있습니다.
https://github.com/ildoonet/docker_introduction
----
김일두, Software Engineer @ Kakao
Github : https://github.com/ildoonet
Linkedin : https://www.linkedin.com/in/ildoo-kim-56962034/
Origin Link : http://www.oss.kr/oss_information6/1435
세션2 : 공개SW개발과 우분투 환경의 개발툴
우분투 이야기
- 우분투 한국 이야기
- 우분투 장점
- 우분투 개발 환경
- 우분투에서의 협업 툴 활용
(강사) 강분도 (우분투한국사용자모임 대표)
11. Elixir is a
dynamic, functional language
designed for building scalable and maintainable applications.
Elixir is a
dynamic, functional language
designed for building scalable and maintainable applications.
21. - Dynamic type임 (요즘 대세)
- UnitTest, Dynamic Supervisor 로 보안.
- Dynamic Supervisor
- 프로세스를 무한히 늘리기 편함
22. - 도데체 함수형 언어란 무엇인가??????????
- 함수형 프로그래밍은 자료 처리를 수학적 함수의 계산으로 취급하고 상태와 가변 데이터를 멀
리하는 프로그래밍 패러다임의 하나이다. 명령형 프로그래밍에서는 상태를 바꾸는 것을 강조하
는 것과는 달리, 함수형 프로그래밍은 함수의 응용을 강조한다. (from 위키)
- 특징은 다음과 같다
- Pure function (스레드 안전 -> 병렬처리 간단함 -> WA!!!) 사실 완벽한건 아님
- 익명함수, higher-order function(아직도 익명함수, 1급함수 안되는 언어 없제????)
- 사실 중요한건 Stateless라는 특성
- C 같은 State(상태) 중심 언어와는 달라서 코딩할 때 적응이 필요
- 어떤 현상의 재현이 간단함 (버그가 엄청 생기지 않음!)
- (딴이야기긴 한데) 재귀 짜기가 쉬움.
- 패턴매칭덕분임
23. - Erlang 승차감 조쿠요
- 언어단에서 지원해주는 것도 많음
- 저는 자세히 모르고 Discord가 잘 압니다
- https://blog.discordapp.com/scaling-elixir-f9b8e1e7c29b
24. - 얼랭 자체가 안전성에 미친 사람들이 만듬
- 실시간 코드 변경
- 유닛 테스트
- Supervisor 모델
25. - 문제가 되는 놈만 죽이자!
- 초기상태? 그냥 바로 만들어보자
- 이걸 해주는 것이 Supervisor
사실 Erlang꺼임
ㅎㅎ;;;ㅈㅅ…ㅋㅋ!!
44. - 기능이 안정적이다
- 언어 버전이 올라갈 때 묶인 기능이 같이 올라감
- 선택의 고민을 할 필요가 없음 (선택의 여지가 없다는 말도 되지만…)
- 서포트가 안 끊긴다(언어가 살아있는 한 아마도…)
- 간단하게 올리기 쉽다.
- 기본 제공하고 플러그인 설치는 다르지 않을까요. 이미 제공되어있는거니…
46. Actor 끼리 Message로 통신
https://www.brianstorti.com/the-actor-model/ https://hamait.tistory.com/716
•Create more actors
•Send messages to other actors
•Designate what to do with the next message
47. 편하게 쓸 수 있게
이미 준비되어있다.
https://hamait.tistory.com/716
48. - 기능이 안정적이다
- 언어 버전이 올라갈 때 묶인 기능이 같이 올라감
- 선택의 고민을 할 필요가 없음 (선택의 여지가 없다는 말도 되지만…)
- 서포트가 안 끊긴다(언어가 살아있는 한 아마도…)
- 간단하게 올리기 쉽다.
- 기본 제공하고 플러그인 설치는 다르지 않을까요. 이미 제공되어있는거니…
56. 아까 봤던 액터 모델
그럼 데이터는 어떻게 주고받지?
DB는 하나일텐데, DB도 액터인가?
-> 공유자원을 쓸 수 밖에 없는 상황이 생기기
에 완벽하게 모든게 Pure Function인건 아님
EX) ETS, DB ADAPTER, FILE
대체적으로 원칙이 지켜짐.
(가끔 안되서 짜증나긴 하는데) 편함