[KGC2014] 두 마리 토끼를 잡기 위한 C++ - C# 혼합 멀티플랫폼 게임 아키텍처 설계Sungkyun Kim
이미 많은 개발자들이 C#의 장점을 누리고 있으나, 본 PT에서는 높은 성능과 생산성을 동시에 달성하기 위해 C/C++로 개발된 native 게임 코드에 스크립트 언어로서 C#을 통합 할 수 있는 방법을 제시한다. 이를 위해 오픈소스 .Net 프레임웍인 Mono의 사용방법과 모바일 플랫폼에서의 특이사항들을 자세히 설명한다.
또한, C/C++언어에 C#을 비롯한 다양한 스크립트 언어를 효율적으로 혼합하여 게임을 구현할 수 있는 아키텍처를 제시한다. clang과 reflection을 이용하여 서로 다른 언어 간 인터페이스 노출을 자동화하고, 게임 내 오브젝트의 생명주기를 자동으로 관리할 수 있는 기법에 대해 설명한다.
[KGC2014] 두 마리 토끼를 잡기 위한 C++ - C# 혼합 멀티플랫폼 게임 아키텍처 설계Sungkyun Kim
이미 많은 개발자들이 C#의 장점을 누리고 있으나, 본 PT에서는 높은 성능과 생산성을 동시에 달성하기 위해 C/C++로 개발된 native 게임 코드에 스크립트 언어로서 C#을 통합 할 수 있는 방법을 제시한다. 이를 위해 오픈소스 .Net 프레임웍인 Mono의 사용방법과 모바일 플랫폼에서의 특이사항들을 자세히 설명한다.
또한, C/C++언어에 C#을 비롯한 다양한 스크립트 언어를 효율적으로 혼합하여 게임을 구현할 수 있는 아키텍처를 제시한다. clang과 reflection을 이용하여 서로 다른 언어 간 인터페이스 노출을 자동화하고, 게임 내 오브젝트의 생명주기를 자동으로 관리할 수 있는 기법에 대해 설명한다.
TensorFlow.js & Applied AI at the Coca-Cola CompanyModulabs
TF Dev Summit × Modulabs : Learn by Run !
TensorFlow.js & Applied AI at the Coca-Cola Company (발표자 : 민규식)
※ 모두의연구소 페이지 : https://www.facebook.com/lab4all/
※ 모두의연구소 커뮤니티 그룹 : https://www.facebook.com/groups/modulabs
[Main Session] 미래의 Java 미리보기 - 앰버와 발할라 프로젝트를 중심으로Oracle Korea
OpenJDK로 Java 언어 개선 주도권이 넘어간 후 Java의 개선 속도가 몰라보게 빨라지고 있습니다. Java를 언어, 런타임, 표준 API로 나눌 때 프로그래머에게 가장 중요하다고 볼 수 있는 언어 관점에서 Java가 앞으로 어떻게 개선될 지, Java의 미래를 알아보려고 합니다.
[SOSCON 2018] 오픈소스 개발: Behind the scenesJae Sung Park
오픈 소스 개발에 참여한다는 것은 여러분들에게 어떤 의미가 있나요? 포트폴리오 작성을 위해? 불편함을 개선하기 위해? 무언가 멋져 보이기 때문에?
외적으로 보이는 오픈 소스 개발/운영은 여러분들이 생각하는 '모습'과 아주 다를 수 있습니다. 성공적인 오픈 소스가 되기 위해서는 무엇이 필요할까요?
오픈소스 개발자로 성공(또는 살아남기) 할 수 있을까요?
billboard.js 프로젝트를 운영하면서 경험한 내용을 바탕으로, 여러분들이 알지 못하는 오픈소스 운영 과정에서의 경험을 전달하고자 합니다.
TensorFlow.js & Applied AI at the Coca-Cola CompanyModulabs
TF Dev Summit × Modulabs : Learn by Run !
TensorFlow.js & Applied AI at the Coca-Cola Company (발표자 : 민규식)
※ 모두의연구소 페이지 : https://www.facebook.com/lab4all/
※ 모두의연구소 커뮤니티 그룹 : https://www.facebook.com/groups/modulabs
[Main Session] 미래의 Java 미리보기 - 앰버와 발할라 프로젝트를 중심으로Oracle Korea
OpenJDK로 Java 언어 개선 주도권이 넘어간 후 Java의 개선 속도가 몰라보게 빨라지고 있습니다. Java를 언어, 런타임, 표준 API로 나눌 때 프로그래머에게 가장 중요하다고 볼 수 있는 언어 관점에서 Java가 앞으로 어떻게 개선될 지, Java의 미래를 알아보려고 합니다.
[SOSCON 2018] 오픈소스 개발: Behind the scenesJae Sung Park
오픈 소스 개발에 참여한다는 것은 여러분들에게 어떤 의미가 있나요? 포트폴리오 작성을 위해? 불편함을 개선하기 위해? 무언가 멋져 보이기 때문에?
외적으로 보이는 오픈 소스 개발/운영은 여러분들이 생각하는 '모습'과 아주 다를 수 있습니다. 성공적인 오픈 소스가 되기 위해서는 무엇이 필요할까요?
오픈소스 개발자로 성공(또는 살아남기) 할 수 있을까요?
billboard.js 프로젝트를 운영하면서 경험한 내용을 바탕으로, 여러분들이 알지 못하는 오픈소스 운영 과정에서의 경험을 전달하고자 합니다.
[DEVIEW 2017] 14일만에 GitHub 스타 1K 받은 차트 오픈소스 개발기Jae Sung Park
차트란 무엇일까요? 차트는 우리가 일상에서 아주 쉽게 자주 접하지만, 막상 개발자로써의 경험을 하는 동안 차트 개발(적용)은 쉽게 경험해 보기 어려운 영역이기도 합니다.
본 발표는 '차트'라는 영역에 대한 개발 경험기와 함께 오픈소스로 공개 후, 단 기간 내에 많은 주목을 받기 까지의 과정을 통해 어떻게 의미있는 성과를 글로벌 하게 얻을 수 있었는가에 대한 오픈소스 성장에 대한 경험도 같이 공유합니다.
이를 통해 다양한 오픈소스 개발 시도와 참여가 활발히 이루어 지는데 도움을 줄수 있게 되기를 기대 합니다.
Polymer의 기술기반인 Web Componets를 구성하는 표준 스펙들인 Custom Elements, HTML Imports, HTML Templates 그리고 Shadow DOM을 간략히 살펴본다.
Polymer의 아키텍처 및 기본적인 사용방법 그리고 material design이 적용된 paper elements 등을 살펴본다.
7. The purpose of BirthThe purpose of Birth
MarcAndreessenMarcAndreessen
당시웹은정적,DOM인터렉션을통해당시웹은정적,DOM인터렉션을통해
다이내믹한웹을만들고자하는비전다이내믹한웹을만들고자하는비전
Java와JavaApplets큰인기,비개발자에겐덩치가크고복잡
작고단순한작업을대상,비개발자(ex디자이너)도쉽게접근가능한언어필요
9. 새롭게 개발된 이유새롭게 개발된 이유
기존언어채택할수도있었지만,기존언어채택할수도있었지만,
'Java'스럽게보여야함과'Java'를돋보이게하는'Java'스럽게보여야함과'Java'를돋보이게하는
마케팅적측면(Netscape과Sun간의협정)압력마케팅적측면(Netscape과Sun간의협정)압력
Mocha→LiveScript→JavaScriptMocha→LiveScript→JavaScript
10. History of ReleaseHistory of Release
1996/11표준화작업시작1996/11표준화작업시작
상표권이슈로'Java'를사용하지못함
표준화진행을위해ECMA(EuropeanComputer
ManufacturersAssociation)선택→ECMAScript
표준을위한식별자'ECMA-262'부여
담당위원회는TC39: tobecome'standard'5stages
18. Vanilla is not commonVanilla is not common
Vanilla개발은일반적이지않음
Framework+toolchains(transpiler,bundling)
실작업코드는브라우저에서직접적인실행어려움실작업코드는브라우저에서직접적인실행어려움
최종적결과물은transpile을통해JS로변환최종적결과물은transpile을통해JS로변환
19. 오늘날의 JS 개발은?오늘날의 JS 개발은?
프레임워크 + 개발도구프레임워크 + 개발도구
대다수 '기능'들은대다수 '기능'들은
npm 패키지를 사용, '조립'npm 패키지를 사용, '조립'
20. 개발 방식의 진화개발 방식의 진화
Library → FrameworkLibrary → Framework
직접적인DOM핸들링필요성감소
DOMAPInative지원향상(ex.CSSselector엔진불필요)
컴포넌트단위의기능에집중,DOM은프레임워크에맡김
→프레임워크에따라보다효율적인DOM(VirtualDOM등)
처리제공
[참고][참고]RemovingjQueryfromGitHub.comfrontendRemovingjQueryfromGitHub.comfrontend
39. npm vs yarnnpm vs yarn
초기yarn의장점(속도)점점퇴색초기yarn의장점(속도)점점퇴색
[참고][참고]https://github.com/thomaschaaf/npm-vs-yarnhttps://github.com/thomaschaaf/npm-vs-yarn
58. 무엇을 사용하던간에무엇을 사용하던간에
결국 JavaScript 아닌가?결국 JavaScript 아닌가?
Transpiling:결국실행되는JS코드생성필요Transpiling:결국실행되는JS코드생성필요
‐DouglasCrockford‐DouglasCrockford
TSaddssweetness,butataprice.TSaddssweetness,butataprice.
[참고][참고] JavaScriptvs.TypeScriptvs.ReasonMLJavaScriptvs.TypeScriptvs.ReasonML
HereiswhyyoumightNOTwanttouseTypeScriptHereiswhyyoumightNOTwanttouseTypeScript
59. 지속적 복잡도 증가지속적 복잡도 증가
이미필수적인도구들도넘쳐나는상황에서이미필수적인도구들도넘쳐나는상황에서
무언가를하나추가할때마다비례하는도구들의증가무언가를하나추가할때마다비례하는도구들의증가
xxx-loader-xxx,xxx-plugin-xxx,...xxx-loader-xxx,xxx-plugin-xxx,...
2018/09기준,플러그인수:2018/09기준,플러그인수:
webpack
plugin: 개
loader 개
babel 개
3,319
3,502
3,142
60. 최신 업데이트최신 업데이트
항상 정답인가?항상 정답인가?
도구들의업데이트에따라코드수정이필요한모순적상황도구들의업데이트에따라코드수정이필요한모순적상황
이러한작업은때에따라많은리소스수반이러한작업은때에따라많은리소스수반
메이저업데이트후,수많은플러그인들은메이저업데이트후,수많은플러그인들은
대비되지않거나대체제가없기도대비되지않거나대체제가없기도
[참고][참고]Babel7:Babel7:
Webpack4:Webpack4:
MajorBreakingChangesMajorBreakingChanges
Breakingchangesforplugins/loadersBreakingchangesforplugins/loaders
62. 각자의 사정은 모두 다르다.각자의 사정은 모두 다르다.
'무엇'이 정답이라 할수 없다.'무엇'이 정답이라 할수 없다.
과거jQuery,AngularJS가답처럼여겨졌지만,과거jQuery,AngularJS가답처럼여겨졌지만,
지금React가대세적인흐름의상태에서지금React가대세적인흐름의상태에서
Angular가정답이라고할수있을까?Angular가정답이라고할수있을까?
그때는맞고,지금은틀리다.그때는맞고,지금은틀리다.
63. 모든 것을 다 알아야 할까?모든 것을 다 알아야 할까?
누군가는'특정'영역에보다관심을쏟을수있고,누군가는'특정'영역에보다관심을쏟을수있고,
더'많이'알고있을수도있다.더'많이'알고있을수도있다.
그것이모범적인'답변'일까?그것이모범적인'답변'일까?
64. 모든 것을 알수 있을까?모든 것을 알수 있을까?
LinusTorvalds가모든Linux의모든생태계의변화들을,LinusTorvalds가모든Linux의모든생태계의변화들을,
BrendanEich가모든JS생태계의변화들을BrendanEich가모든JS생태계의변화들을
알고 있을거라고알고 있을거라고
생각하시나요?생각하시나요?
66. 결국은 적당한 밸런스결국은 적당한 밸런스
너무많은것을알려고하지않아도된다.너무많은것을알려고하지않아도된다.
그러나,적당한'호기심'은가져야하며,'지속적'인꾸준함은필요그러나,적당한'호기심'은가져야하며,'지속적'인꾸준함은필요
세상은 할게 너무 많다.세상은 할게 너무 많다.
영화도봐야하고,음악도들어야하고
게임,연애,여행...