최민호 - 국내 포털에서의 우분투 (2012Y03M31D)Ubuntu Korea CommunityOrigin Link : http://www.oss.kr/oss_information6/58382
2012년 3월 31일 "제 22회 Open Technet"이 열렸습니다.
다음 커뮤니케이션 한남동 사옥 5층 교육장에서 우분투 커뮤니티와 함께 진행된 제 22회 Open Technet 은 '우분투와 함께하는 공개SW 활용'에 관한 주제로 진행되었습니다.
<session>
'국내 포탈에서의 우분투'
(강사) 다음 커뮤니케이션 최민호(시스템엔지니어)
게임서버프로그래밍 #8 - 성능 평가Seungmo KooNHN NEXT 게임 서버 프로그래밍 강의 자료입니다. 최소한의 필요한 이론 내용은 질문 위주로 구성되어 있고 (답은 학생들 개별로 고민해와서 피드백 받는 방식) 해당 내용에 맞는 실습(구현) 과제가 포함되어 있습니다.
참고로, 서버 아키텍처에 관한 과목은 따로 있어서 본 강의에는 포함되어 있지 않습니다.
NDC14 모바일 게임서비스를 위한 사설 클라우드 구축/운영 분투기Jinuk Kim모바일 게임 서비스를 위한 사설 클라우드를 개발/운영/디버깅 하면서 얻은 점들을 공유한다.
일반적인 하드웨어랑 오픈소스소프트웨어를 써서 사설 클라우드를 만들고 게임을 런치하면서 고생한 부분, 문제되었던 부분들을 짚어본다.
게임서버프로그래밍 #7 - 패킷핸들링 및 암호화Seungmo KooNHN NEXT 게임 서버 프로그래밍 강의 자료입니다. 최소한의 필요한 이론 내용은 질문 위주로 구성되어 있고 (답은 학생들 개별로 고민해와서 피드백 받는 방식) 해당 내용에 맞는 실습(구현) 과제가 포함되어 있습니다.
참고로, 서버 아키텍처에 관한 과목은 따로 있어서 본 강의에는 포함되어 있지 않습니다.
KGC 2014: 분산 게임 서버 구조론Hyunjik Bae분산 서버 설계는 원리 이해가 중요하다. 이를 모르고서는 잘못된 설계로 인해 고생은 고생대로 하고 결과는 결과대로 나쁠 수 있다. 본 강연에서는 분산 게임 서버 구조를 짜기 전에 반드시 이해해야 하는 원리를 설명한다.
Jdk(java) 7 - 6 기타기능knight1128This document summarizes new features in JDK 7 including updates to XML stack, JDBC, RowSet, class loading, JVM performance improvements, garbage collection, I/O, graphics APIs, collections, and strict class file checking. It also previews planned features for JDK 8 such as support for modular programming, annotations, collections improvements, lambda expressions, and modularization.
Spring MVC 3 Restfulknight1128Spring 3 MVC can be used to build RESTful web services. It supports annotations like @Controller, @RequestMapping and @PathVariable to map HTTP requests to controller methods. Requests and responses can be in various formats like JSON, XML, RSS using ContentNegotiatingViewResolver. Custom converters can be used to convert request parameters to Java objects. Exceptions can be handled using @ExceptionHandler.
Jdk 7 4-forkjoinknight1128This document discusses Fork/Join framework in Java 7. It explains that Fork/Join is designed to maximize usage of multiple processors by recursively splitting large tasks into smaller subtasks. It uses work-stealing algorithm where idle workers can steal tasks from busy workers' queues to balance load. An example of calculating Fibonacci numbers using Fork/Join is provided where the task is split recursively until the subproblem size is smaller than threshold, at which point it is computed directly.
Jersey frameworkknight1128The document summarizes Jersey Framework, a Java REST framework. It provides an overview of Jersey's features such as supporting JAX-RS APIs, Servlet 3.0, JSON/JAXB, and integration with Spring. A code sample demonstrates a simple "hello world" RESTful service using Jersey with annotations like @Path, @GET and @Produces. The document also covers additional Jersey concepts like request/response processing, URI building, exception handling, and security.
Apache Thriftknight1128Thrift is a software framework that allows for efficient cross-language communication. It provides features such as RPC, code generation, and serialization to make it easy to define and develop services that can be used across multiple languages. Supported languages include C++, Java, Python, PHP and more. Thrift handles low-level details like data serialization while providing an interface definition language to define services and data structures.
게임서버프로그래밍 #7 - 패킷핸들링 및 암호화Seungmo KooNHN NEXT 게임 서버 프로그래밍 강의 자료입니다. 최소한의 필요한 이론 내용은 질문 위주로 구성되어 있고 (답은 학생들 개별로 고민해와서 피드백 받는 방식) 해당 내용에 맞는 실습(구현) 과제가 포함되어 있습니다.
참고로, 서버 아키텍처에 관한 과목은 따로 있어서 본 강의에는 포함되어 있지 않습니다.
KGC 2014: 분산 게임 서버 구조론Hyunjik Bae분산 서버 설계는 원리 이해가 중요하다. 이를 모르고서는 잘못된 설계로 인해 고생은 고생대로 하고 결과는 결과대로 나쁠 수 있다. 본 강연에서는 분산 게임 서버 구조를 짜기 전에 반드시 이해해야 하는 원리를 설명한다.
Jdk(java) 7 - 6 기타기능knight1128This document summarizes new features in JDK 7 including updates to XML stack, JDBC, RowSet, class loading, JVM performance improvements, garbage collection, I/O, graphics APIs, collections, and strict class file checking. It also previews planned features for JDK 8 such as support for modular programming, annotations, collections improvements, lambda expressions, and modularization.
Spring MVC 3 Restfulknight1128Spring 3 MVC can be used to build RESTful web services. It supports annotations like @Controller, @RequestMapping and @PathVariable to map HTTP requests to controller methods. Requests and responses can be in various formats like JSON, XML, RSS using ContentNegotiatingViewResolver. Custom converters can be used to convert request parameters to Java objects. Exceptions can be handled using @ExceptionHandler.
Jdk 7 4-forkjoinknight1128This document discusses Fork/Join framework in Java 7. It explains that Fork/Join is designed to maximize usage of multiple processors by recursively splitting large tasks into smaller subtasks. It uses work-stealing algorithm where idle workers can steal tasks from busy workers' queues to balance load. An example of calculating Fibonacci numbers using Fork/Join is provided where the task is split recursively until the subproblem size is smaller than threshold, at which point it is computed directly.
Jersey frameworkknight1128The document summarizes Jersey Framework, a Java REST framework. It provides an overview of Jersey's features such as supporting JAX-RS APIs, Servlet 3.0, JSON/JAXB, and integration with Spring. A code sample demonstrates a simple "hello world" RESTful service using Jersey with annotations like @Path, @GET and @Produces. The document also covers additional Jersey concepts like request/response processing, URI building, exception handling, and security.
Apache Thriftknight1128Thrift is a software framework that allows for efficient cross-language communication. It provides features such as RPC, code generation, and serialization to make it easy to define and develop services that can be used across multiple languages. Supported languages include C++, Java, Python, PHP and more. Thrift handles low-level details like data serialization while providing an interface definition language to define services and data structures.
[아이펀팩토리]2017 NDC 강연 자료_아이펀 엔진 개발 노트iFunFactory Inc.2017NDC 아이펀팩토리 발표자료
1. 강연 주제 : 아이펀 엔진 개발 노트
2. 발표자 : 문대경 CEO
<목차>
(1) 문대경 CEO 소개
(2) 아이펀 엔진 프로젝트 소개
(3) 아이펀 엔진 프로젝트 개발 노트
(4) 소프트웨어 솔루션 개발 중 얻은 교훈
머신러닝 및 데이터 과학 연구자를 위한 python 기반 컨테이너 분산처리 플랫폼 설계 및 개발Jeongkyu Shin머신러닝 및 데이터 과학 분야의 컴퓨팅 수요는 해가 갈수록 급증하고 있습니다. 이와 더불어 분산처리 기술, 데이터 파이프라이닝 및 개발 환경 스택 관리 등의 관련된 다양한 이슈들 또한 엄청나게 늘어나고 있습니다. 머신러닝 모델의 기하급수적인 모델 복잡도 증가 추세와 마찬가지로, 모델 학습을 위한 환경 관리 또한 갈수록 복잡도가 높아지는 추세입니다.
이 세션에서는 이러한 문제를 해결하기 위해 python 언어 기반의 분산처리 스케쥴링/오케스트레이션 미들웨어 플랫폼을 개발한 4년간의 과정에서 겪은 다양한 문제들에 대해 다룹니다. 2015년 컨테이너 기반의 고밀도 분산처리 플랫폼 설계 및 프로토타이핑 과정을 PyCon KR에서 발표한 이후, 실제 구현 및 오픈소스화, 안정화를 거치며 겪은 다양한 기술적/비기술적 문제들에 대한 경험을 공유합니다.
기술적으로는 최근 몇 년 간의 클러스터 플랫폼 관련 기술의 진보와 함께 탄생한 다양한 도구들과, 이러한 도구들을 python 기반으로 엮어내기 위해 사용하고 개발한 다양한 오픈소스들을 다룹니다. Python 기반의 컨테이너 스케쥴링 및 오케스트레이션 과정의 구현과, 다양한 프로그래밍 언어로 만든 SDK를 graphQL을 이용하여 연동하는 과정에서의 몇몇 유의점을 설명합니다. 아울러 python 기반의 SDK를 다양한 언어로 포팅했던 경험을 간단하게 안내합니다.
플랫폼을 개발하는 중 등장한 TensorFlow, PyTorch 등의 다양한 머신러닝 프레임워크들을 도입하며 겪은 문제와 해결 과정에 대해서도 나눕니다. 연구 분야에는 Python 2.7 기반의 프레임워크들이 여전히 많습니다. 이러한 프레임워크 및 라이브러리의 지원을 위하여 Python 2 기반의 프레임워크와 Python 3.7로 구현한 컨테이너 인터페이스를 단일 컨테이너 환경에 중복 빌드 및 상호 간섭 없이 공존시키기 위해 개발한 아이디어를 소개합니다.
마지막으로 Python 기반의 프레임워크를 개발, 배포 및 상용화 하는 과정에서 겪은 다양한 어려움을 소개합니다. 솔루션을 배포 및 보급할 때 겪는 다양한 런타임, 하드웨어 환경 및 개인 정보 보호를 위한 폐쇄망 대상의 디플로이 등에 대응하기 위하여 Python 응용프로그램을 단독 실행용으로 패키징하는 과정에서 겪은 팁들을 설명합니다. 또한 GUI 빌드 및 Python, Go 및 C++을 함께 사용한 드라이버 가상화 레이어 개발 등의 내용도 살짝 다룹니다.
이 슬라이드는 PyCon KR 2019의 발표 슬라이드입니다. ( https://www.pycon.kr/program/talk-detail?id=138 )
(게임개발을위한) printf("Hello World!"); 그 이상의 콘솔 프로그래밍NDOORS일반적인 Visual 기반 프로그래밍 이외, 콘솔 프로그래밍의 필요성을 재조명하고자 합니다.
강연을 통해, Visual 기반 프로그래밍에 익숙해져 있는 (입문)개발자들에게, 콘솔 프로그래밍을 통해, 더욱 효과적으로 개발할 수 있도록 돕고자 합니다.
속도체크knight1128This document compares different methods for measuring performance and timing logic in Java, including System.currentTimeMillis(), System.nanoTime(), the StopWatch class from Apache Commons Lang, and the StopWatch utility from Spring Core. Code examples are provided for each method to demonstrate how to use it and sample output is shown. The Spring and Commons StopWatch implementations are then compared in terms of functionality.
2. 넷북에서의 브라우저 점유율-> (idea) 넷북은 워낙 메모리나 cpu가 떨어지기 때문에 상대적으로 속도가 좋은 firefox나 chrome을 사용하는 경향이 있는것 같다.
3. Google IO (5/11)매달 수익A subscription-sales version aimed at students for $20 a month. Businesses can also buy them for $28 a monthpublicSamsung will offer 12.1-inch model for $429 that’s Wi-Fi-only; $499 gets you 3G capabilities. Acer’s product will have an 11.6-inch screen and sell for $349, presumably Wi-Fi-only. T출처 : http://blog.seattlepi.com/microsoft/2011/05/11/google-announces-chromebooks-netbooks-without-windows/
4. Chromium OS? Google Chrome OS?Chromium OSGentoo리눅스 기반으로 된 오픈 소스 프로젝트 Google Chrome OSGoogle product that OEMs will ship on Netbooks this year. -> 보통 우리가 VirtualBox에서 테스트하는 OS는 Chromium OS 라 부르면 된다. 노트북에 껴서 판매하는 크롬을 크로니움이다.
5. Chromium OS?Chromium ?Chromium is an open-source browser project. -> (Product) chrome browserChromium OS is open source osproejct.-> (Product) chrome oshttp://www.chromium.org/
6. 기존 OS부팅 순서Google chrome os속도를 빨리!!- 빠른 시간내로 웹을 시작할 수 있는 환경으로 가자.- 부팅 시간동안은 불필요한 작업은 모두 넘어가자 (splash window.. Stuff)- Bootloader는 펌웨에 내장되기 때문에 별도의 부트로더 처리 로직이 없다.- 커널을 로드&시작을 하기전에hardware 초기화는 하지 않고, 커널을 읽고 난 뒤에 한다. SSD 기반에서 동작
11. Developer Preliminary requirementsUbuntuLinux (version 10.04 - Lucid)a 64-bit system for performing the buildgit - source control clientkeychain - ssh key management (for committers)depot_tools - Google-maintained set of tools used by Chromium OShttp://www.chromium.org/chromium-os/developer-guide
12. System-level and user-land softwareLinux KernelUpstart – 서비스 어플 관리, 병렬처리 (ubuntu유틸리티)DependentD-Bus: The browser uses D-Bus to interact with the rest of the system. Examples of this include the battery meter and network picker.Connection Manager:Provides a common API for interacting with the network devices, provides a DNS proxy, and manages network services for 3G, wireless, and ethernet. WPA Supplicant:Used to connect to wireless networks.Autoupdate:Our autoupdate daemon silently installs new system images.Power Management: (ACPI on Intel) Handles power management events like closing the lid or pushing the power button.Standard Linux services:NTP, syslog, and cron.
13. 놀라움임베디드 시스템의 가장 약점은 부팅 속도. 이 부분에 대한 최적화를 시도약점) 항상 노트북사와 항상 협의해야 함 (bios에 boot loader를 넣어야 함)기존 리눅스/ 오픈 소스 툴을 활용하여 리눅스 진영의 환영을 받음OS를 오픈 소스화하고, 특화된 기능/성능은 low-level단에서 숨김(LPGL license 이슈를 해결하고 오픈 소스형태로 공개하여 좋은 이미지를 발휘함)
14. 고민구글의 전략 : 사용자가 많은 사용하는 어플리케이션(SaaS)는 구글 웹 서비스를 쓰도록 함. 고객을 위한 클라우드 서비스 : 구글 플랫폼으로 통합될 가능성이 높음구글의 전략은 크롬 웹 브라우져를 통한 하나의 클라우드 서비스 플랫폼화포털이 가지고 있던 장점들이 점점 약화될 가능성이 매우 높음.구글이Native App의 특화된 장점을 크롬니움에 계속 집어넣는 시도를 하고 있음 (webRTC , V8 codec 등..)