SlideShare une entreprise Scribd logo
1  sur  97
그룹웨어에 새 에너지를
Chromium 엔진을 이용한 웹 기반 기술 도입기
왓 스튜디오 / 넥슨 코리아
김찬웅
저작물 인용
저작권법 제 35조의 3 ‘공정이용’ 조항에 따라 교육과 연구 목적으로 이용하고
있습니다.
강연에만 사용되며, 배포판에선 일부 제외될 수 있습니다.
김찬웅
• @kexplo / Programmer
• cwkim@nexon.co.kr
• https://github.com/kexplo
• http://chanwoong.kim
• 2014.12-현재 <야생의 땅: 듀랑고> / Server Programmer
• 2014 <Project N> / Client Programmer
• 2010-2014.3 <삼한제국기> / CTO
오늘 할 이야기
Chromium (Web)
그룹 웨어 C#
Chromium이 내장되어있는 두 가지 도구를 사용한 이야기
• CefSharp
• Electron
Chromium에 대해서는..
• 그룹웨어 소개
• 소개
• 특징
• 문화
• 작업 동기
• CefSharp을 이용한 웹 도입
• 과정
• 결과
• Electron을 이용한 웹 도입
• 결론
오늘 할 이야기
그룹웨어 소개
NDC 2015
한 그루 한 그루 심지 않아도 돼요.
생태학에 기반한 [야생의 땅: 듀랑고]의 절차적 생성 생태계
- 강임성
talkCAT3
:커뮤니케이션 그룹웨어 입사 전부터 존재한
유서 깊은 그룹웨어
..인데 아이콘을 이쁘게 못 그려서 죄송..
talkCAT의 역사
talkCAT1, 2도
있었다고 합니다…
2006년
talkCAT3 등장!
2013년
What! Studio 신설
2014년
What! Studio, 본인 입사
2015년, 현재
talkCAT의 역사
2006년
talkCAT3 등장!
2013년
What! Studio 신설
2014년
What! Studio, 본인 입사
2015년, 현재
약 10년 정도 사용
talkCAT1, 2도
있었다고 합니다…
talkCAT의 역사
커뮤니케이션 그룹웨어?
팀에서 사용하는 채팅 프로그램
talkCAT의 특징
여러 개의 채널 동시 구독
talkCAT의 특징
채널 별로 주제, 역할, 자격을 가짐
talkCAT의 특징
텍스트, 이미지, 링크 등으로 소통
talkCAT의 특징
커밋 로그와 실시간 연계talkCAT의 특징
왜 이런걸 써요?
NDC 2013 이은석 – 게임 디렉터가 뭐하는 건가요 中
<비 효율적인 고전 조직의 안 좋은 예>
*deskCAT = 문서 그룹웨어
*deskCAT
talkCAT
비밀이 없고, 평등한 의사소통
채팅 문화
실무자 실무자
실무자 실무자
업무진행
실무자들끼리 알아서 의사 소통해서 일을 진행
실무자 실무자
어? 그거 제가
도울 수 있어요.
업무진행
실무자들끼리 알아서 의사 소통해서 일을 진행
관련 있는 사람들의 자발적인 참여, 조언
실무자 실무자
어? 그거 제가 도울 수
있어요.
업무진행
실무자들끼리 알아서 의사 소통해서 일을 진행
관련 있는 사람들의 자발적인 참여, 조언
관리자
필요할 때 개입 혹은
대화로그를 바탕으로 검토 후 조정
승인 단계를 간소화
개발 이터레이션 증가
=> 품질 증가
작업 동기
농담
*움짤 = 움직이는 그림
© 슬램덩크 - 대원씨아이
사실은..
• 데브캣 그룹웨어가 있다는 것을 미리 알고 있었음.
• NDC 2011 – 고양이가 개발한다
• 왓 스튜디오에서도 계승해서 사용하고 있었다.
• 입사 하자 마자 호기심에 뜯어보기 시작.
© 이현민(몰락인생)
talkCAT3
• 높은 완성도
• 요즘에 많이 쓰이는 기능들도 이미 들어있음
• @이름 식의 멘션
• 클립보드 이미지 붙여 넣기
• 특히 이건 아직도 지원 안 하는 메신저들도 꽤 된다.
• 가장 좋아하는 기능.
© 정도전
쓰다 보니
• 팀 문화
• 다른 문화 콘텐츠 적극 권장
• 만화, 게임, 영화, …
• 자료 공유가 잦다.
• 웹 페이지 링크
• 이미지
• 동영상 링크
<홍익인간 정신>
널리 세상을 이롭게 하리라…?
© 귀귀
살짝 아쉬움
• 몇 가지 기능이 살짝 아쉬움
• 대표적으로 미디어 공유 기능
• 기존에는 링크에 의존
• 트위터도 GIF, MP4 공유가 되는 시대…
• “움짤(GIF) 기능 넣어도 돼요?”
• “네, 잉여짓 맘대로 해 보세요“
• 마침 교육기간이라 OK!
끼얏호
Reaction Guys
Chat Control
• 동적인 콘텐츠가 들어갈 부분.
• 여기만 바꾸면 되지 않을…까?
• C#
• RichTextBox의 마개조 커스터마이징 버전.
• 새 기능 추가가 어려움.
Chat Control
일단, 리서치
RichTextBox에 GIF를 넣는다고?
© 김성모
GIF보단 동영상이 더 참담
아… 이게 차라리 웹 페이지면…
웹 페이지면 …
정말 좋은데
© 천호식품
어? 그냥 웹 페이지를 쓰면?
• 콘텐츠 표현도 쉽고
• 게다가 요즘 웹 발전도 빠르고
• 라이브러리도 많고
어떻게?
Chat Control Web
필요한 부분만 교체
웹 브라우저를 마치 일반 컨트롤처럼
talkCAT
Core
Web
Frontend
Browser
기존 코드 재활용 ☺
웹 표현 기술 ☺
WebBrowser 컨트롤로 프로토타이핑
장점
C# 내장 컨트롤
안정성 보장
단점
End-User의 IE버전을 보장 못함.
웹 표준과 거리가 멀다.
디버깅이 힘들다.
7
8
9
설치된 IE버전에 따라 달라지는 컨트롤
디버깅이 편하고,
웹 표준 지원이 좋고,
임베딩이 가능한 엔진?
CEF* 라이브러리 비교 (for C#)
CefGlue1
• CEF1 기반
• 개발 정체
• 커뮤니티 작음
• 메모리릭 버그
• 크롬 구버전
CefGlue3
• CEF3 기반
• 개발 정체
• 커뮤니티 작음
CefSharp3
• CEF3 기반
• 개발 활발
• NuGet 지원
• 커뮤니티 활발
*Chromium Embedded Framework
CefSharp vs CefGlue
(Google Trends)
☺
CefSharp을 이용한 웹 도입
CefSharp 특징
CefSharp 특징
C#
CEF의 C# Wrapper
Nuget
PM> Install-Package CefSharp.WinForms
Nuget Package 지원
public class BoundObject
{
public string MyProperty { get; set; }
public void MyMethod()
{
// Do something.
}
}
browser.RegisterJsObject("bound", new BoundObject());
C#
bound.myProperty;
bound.myMethod();
JS
JS Binding
Client
Time
CefSharp
Browser-Side
Executing JavaScript Code Asynchronously
Client
Time
CefSharp
Browser-Side
To Execute JavaScript Code
Executing JavaScript Code Asynchronously
Client
Time
CefSharp
Browser-Side
Executing JavaScript Code Asynchronously
Client
Time
CefSharp
Browser-Side
Executing JavaScript Code Asynchronously
res://template.html
res://js/jquery.min.js
res://css/template.css
URI Scheme
Handler
template.html
jquery.min.js
template.css
Internal
Storage
Custom URI Scheme Handler
res://template.html
res://js/jquery.min.js
res://css/template.css
URI Scheme
Handler
template.html
jquery.min.js
template.css
Internal
Storage
Custom URI Scheme Handler
res://
특정 Scheme으로 원하는 파일을 요청
res://template.html
res://js/jquery.min.js
res://css/template.css
URI Scheme
Handler
template.html
jquery.min.js
template.css
Internal
Storage
Custom URI Scheme Handler
미리 등록된 형식이면, 내부 저장소에서 탐색
res://template.html
res://js/jquery.min.js
res://css/template.css
URI Scheme
Handler
template.html
jquery.min.js
template.css
Internal
Storage
Custom URI Scheme Handler
Custom URI Scheme Handler
<Current Directory>foobartalkcat.js
res://talkcat.js
삶의 질디버깅의 질 향상
Chrome Developer Tools
© vat19
멋지기만 한가?
일반 컨트롤처럼 위장(?) 할 때
생기는 문제점 들
크게 2가지의 문제점
• 페이지 이동 문제
• 호환성 문제
Click!
?!URL Redirect 문제
링크 드래그
?!
웹 브라우저이기 때문에,
본래의 기능에 충실해서 나타나는 문제.
© 조석
페이지 이동 문제 해결책
• 선별된 링크만 허용
• A Tag의 MouseDown, Click 이벤트를 오버라이드
• 웹 링크일 경우, 외부 브라우저를 통해 실행
• 의도하지 않은 이동을 거부
• window.onDragOver, onDrop 이벤트를 오버라이드 해서 블럭
• BeforeUnload 이벤트를 적용.
CefSharp의 JSDialogHandler를 재 정의 해서 블럭
호환성 문제
• 특정 PC에서 한글이 안 나옴.
• 실제로 표시는 되는 것 같은데, 표현이 안 됨.
• 전부 다 안 나오지 않고 부분적으로 안 나옴.
© daum kakao
호환성 문제 해결책
• 예전에 크롬에서 비슷한 문제가 있었던 것 같은 기억이…
• 찾아보니 DirectWrite API와 관련된 문제.
• 간단하게 꺼 준다.
• disable-direct-write=1
talkCAT
Core
Web
Frontend
CefSharp
JS Binding
Executing JS Code Async
JS Binding
Custom URI Scheme Handler
페이지 이동 방지
적용 결과
Animated Image
JavaScript 활용 (대표적 예 2가지)
호출 알림, 이동
읽지 않은 대화 표시
Web Link
OEmbed
Syntax Highlight
Log HTML
Archiving
로그를 따로 저장 안 하고,
내용을 HTML 파일로 저장하면 훌륭한 로그가 된다.
공개 후 반응
© tom cruise
토..토크에 움짤이 되다니!
© star trek
정리
크롬, 웹, 성공적
• 생산성 증가
• 기존 C#으로 만들었다면 꽤 오래 걸렸을 기능들…
• 웹을 이용해서 빠르게 구현
• 심지어 더 많이 구현
• 두 마리 토끼 잡기
• 단일 웹 페이지 방식으로 웹 기술 도입도 성공적
• 기존 코드 재활용도 성공적
© Warner Brothers, The Dark knight
아쉬운 점들
• 브라우저는 브라우저
• 일반 컨트롤이 아님.
• 링크 예외 처리 등… 깔끔하지 못한 부분이 있다.
• CefSharp의 완성도
• 윈도우 메시지를 전부 잘 처리해 주지 못 한다.
• C# Winform 하고 매끄럽게 연동되지 못 한다.
제일 아쉬웠던 부분
아쉬운걸 그대로 남겨 둘 텐가?
“우린 답을 찾을 것이다. 늘 그랬듯이”
이왕 크롬뽕을 맞은 김에!
© 이말년
웹으로 앱을 만들기?
• 찾아보니 역시 같은 생각을 한 사람들이 있다.
• Chromium + io.js(node.js) 를 이용해서 Hybrid app을 만들려는 시도가 있다.
NW.JS Electron
(Atom-Shell)
Brackets-Shell 이거다!
셋 다 개념은 비슷.
File I/O
Local API
HTML
CSS
JavaScript
Apps using NW.JS
Apps using Electron (Atom-Shell)
Apps using Brackets-Shell
NW.JS vs Electron vs Brackets-shell
NW.JS
• (node-webkit)
• Intel 지원 ☺
• 멀티 플렛폼 ☺
• Chromium message
loop를 수정해서 연동 ☹
• index.html이 앱 메인 ☹
Electron
• (Atom-shell)
• Github 지원 ☺
• 멀티 플렛폼 ☺
• Atom을 만들기 위해 시작
• Chromium과 IPC 통신으로
연동 ☺
• main.js가 앱 메인 ☺
Brackets-shell
• Adobe 지원
• 멀티 플렛폼 ☺
• 오직 Brackets만을 위한 ☹
* https://github.com/nwjs/nw.js/wiki/How-node.js-is-integrated-with-chromium
* https://github.com/atom/electron/blob/master/docs/development/atom-shell-vs-node-webkit.md
* https://github.com/adobe/brackets-shell
☺
..그런데 그러면 다 새로 짜는 게 아닌가요?
• 기존의 코드는 C# 이고…
• 저건 Node.js 인데?
• C#, Node.js 간 상호 호출 가능
• 멀티 플렛폼
EDGE.JS
* http://tjanczuk.github.io/edge
C# Node.js
Electron 호환용 Edge.js
https://github.com/kexplo/electron-edge
더 새로운 talkCAT은 이렇게 만들어지고 있습니다.
talkCAT
Core
Edge.js
호환
레이어 Web
Frontend
기대효과
• Frontend 쪽을 전부 웹으로
• 생산성 증가
• 확장성
• Atom Editor나 VS Code 같은 확장성
마무리
• 단일 페이지 기반 앱 방식으로 웹 기술을 성공적으로 도입.
• CefSharp
• 웹앱 기반도 시도.
• Electron
• Edge.js
장점
• Frontend 쪽 생산성을 높일 수 있다.
• HTML5, AngularJS, React, … 등 최신 웹 기술을 바로 도입 해 볼 수 있다.
• Electron
• 멀티 플렛폼
• Win API등을 몰라도 웹 기술 만으로 데스크톱 앱 작성 가능
• 기존 C# 코드의 재활용 가능
• 단일 페이지 방식을 써서 일반 컨트롤 처럼. ( CefSharp )
• 웹앱 기반에 Edge.js를 활용.
단점
• 앞에서 소개한 것들이 만능은 아님
• 기존 코드를 많이 재사용 한다고는 하지만, 배울 것도…
• node.js
• 웹 개발 기술
결론
• 기존 프로그램에도 충분히 웹 기술을 도입할 수 있습니다.
• 웹 기반 앱을 만들어 볼 수도 있고요.
• 웹을 한 번 써 보시는 것은 어떨까요?
감사합니다.
We’re Hiring!

Contenu connexe

Tendances

[17.02.09] Github introduction (Korean Version)
[17.02.09] Github introduction (Korean Version)[17.02.09] Github introduction (Korean Version)
[17.02.09] Github introduction (Korean Version)Ildoo Kim
 
[17.01.19] docker introduction (Korean Version)
[17.01.19] docker introduction (Korean Version)[17.01.19] docker introduction (Korean Version)
[17.01.19] docker introduction (Korean Version)Ildoo Kim
 
도커 무작정 따라하기: 도커가 처음인 사람도 60분이면 웹 서버를 올릴 수 있습니다!
도커 무작정 따라하기: 도커가 처음인 사람도 60분이면 웹 서버를 올릴 수 있습니다!도커 무작정 따라하기: 도커가 처음인 사람도 60분이면 웹 서버를 올릴 수 있습니다!
도커 무작정 따라하기: 도커가 처음인 사람도 60분이면 웹 서버를 올릴 수 있습니다!pyrasis
 
Docker (Compose) 활용 - 개발 환경 구성하기
Docker (Compose) 활용 - 개발 환경 구성하기Docker (Compose) 활용 - 개발 환경 구성하기
Docker (Compose) 활용 - 개발 환경 구성하기raccoony
 
Kubernetes를 통한 laravel 개발프로세스 개선하기
Kubernetes를 통한 laravel 개발프로세스 개선하기Kubernetes를 통한 laravel 개발프로세스 개선하기
Kubernetes를 통한 laravel 개발프로세스 개선하기Changyeop Kim
 
이승재, 실버바인 서버엔진 2 설계 리뷰, NDC2018
이승재, 실버바인 서버엔진 2 설계 리뷰, NDC2018이승재, 실버바인 서버엔진 2 설계 리뷰, NDC2018
이승재, 실버바인 서버엔진 2 설계 리뷰, NDC2018devCAT Studio, NEXON
 
Envoy 를 이용한 코드 배포 자동화
Envoy 를 이용한 코드 배포 자동화Envoy 를 이용한 코드 배포 자동화
Envoy 를 이용한 코드 배포 자동화Juwon Kim
 
도커를 이용한 파이썬 모듈 배포하기
도커를 이용한 파이썬 모듈 배포하기도커를 이용한 파이썬 모듈 배포하기
도커를 이용한 파이썬 모듈 배포하기JunSeok Seo
 
송창규, unity build로 빌드타임 반토막내기, NDC2010
송창규, unity build로 빌드타임 반토막내기, NDC2010송창규, unity build로 빌드타임 반토막내기, NDC2010
송창규, unity build로 빌드타임 반토막내기, NDC2010devCAT Studio, NEXON
 
Docker + Kubernetes를 이용한 빌드 서버 가상화 사례
Docker + Kubernetes를 이용한 빌드 서버 가상화 사례Docker + Kubernetes를 이용한 빌드 서버 가상화 사례
Docker + Kubernetes를 이용한 빌드 서버 가상화 사례NAVER LABS
 
XECon2015 :: [1-3] 김덕홍 - Git Workflow with GitHub
XECon2015 :: [1-3] 김덕홍 - Git Workflow with GitHubXECon2015 :: [1-3] 김덕홍 - Git Workflow with GitHub
XECon2015 :: [1-3] 김덕홍 - Git Workflow with GitHubXpressEngine
 
[121]네이버 효과툰 구현 이야기
[121]네이버 효과툰 구현 이야기[121]네이버 효과툰 구현 이야기
[121]네이버 효과툰 구현 이야기NAVER D2
 
Python server-101
Python server-101Python server-101
Python server-101Huey Park
 
[145]5년간의네이버웹엔진개발삽질기그리고 김효
[145]5년간의네이버웹엔진개발삽질기그리고 김효[145]5년간의네이버웹엔진개발삽질기그리고 김효
[145]5년간의네이버웹엔진개발삽질기그리고 김효NAVER D2
 
Ryan Dahl의 Node.js 소개 동영상 해설 by doortts
Ryan Dahl의 Node.js 소개 동영상 해설 by doorttsRyan Dahl의 Node.js 소개 동영상 해설 by doortts
Ryan Dahl의 Node.js 소개 동영상 해설 by doorttsSuwon Chae
 
Docker at Deview 2013
Docker at Deview 2013Docker at Deview 2013
Docker at Deview 2013Jude Kim
 
swig를 이용한 C++ 랩핑
swig를 이용한 C++ 랩핑swig를 이용한 C++ 랩핑
swig를 이용한 C++ 랩핑NAVER D2
 
Tech planet 2015 Docker 클라우드 구축 프로젝트 - d4
Tech planet 2015 Docker 클라우드 구축 프로젝트 - d4Tech planet 2015 Docker 클라우드 구축 프로젝트 - d4
Tech planet 2015 Docker 클라우드 구축 프로젝트 - d4Sangcheol Hwang
 
Node.js 시작하기
Node.js 시작하기Node.js 시작하기
Node.js 시작하기Huey Park
 

Tendances (20)

[17.02.09] Github introduction (Korean Version)
[17.02.09] Github introduction (Korean Version)[17.02.09] Github introduction (Korean Version)
[17.02.09] Github introduction (Korean Version)
 
[17.01.19] docker introduction (Korean Version)
[17.01.19] docker introduction (Korean Version)[17.01.19] docker introduction (Korean Version)
[17.01.19] docker introduction (Korean Version)
 
도커 무작정 따라하기: 도커가 처음인 사람도 60분이면 웹 서버를 올릴 수 있습니다!
도커 무작정 따라하기: 도커가 처음인 사람도 60분이면 웹 서버를 올릴 수 있습니다!도커 무작정 따라하기: 도커가 처음인 사람도 60분이면 웹 서버를 올릴 수 있습니다!
도커 무작정 따라하기: 도커가 처음인 사람도 60분이면 웹 서버를 올릴 수 있습니다!
 
AWS + Docker in Vingle
AWS + Docker in VingleAWS + Docker in Vingle
AWS + Docker in Vingle
 
Docker (Compose) 활용 - 개발 환경 구성하기
Docker (Compose) 활용 - 개발 환경 구성하기Docker (Compose) 활용 - 개발 환경 구성하기
Docker (Compose) 활용 - 개발 환경 구성하기
 
Kubernetes를 통한 laravel 개발프로세스 개선하기
Kubernetes를 통한 laravel 개발프로세스 개선하기Kubernetes를 통한 laravel 개발프로세스 개선하기
Kubernetes를 통한 laravel 개발프로세스 개선하기
 
이승재, 실버바인 서버엔진 2 설계 리뷰, NDC2018
이승재, 실버바인 서버엔진 2 설계 리뷰, NDC2018이승재, 실버바인 서버엔진 2 설계 리뷰, NDC2018
이승재, 실버바인 서버엔진 2 설계 리뷰, NDC2018
 
Envoy 를 이용한 코드 배포 자동화
Envoy 를 이용한 코드 배포 자동화Envoy 를 이용한 코드 배포 자동화
Envoy 를 이용한 코드 배포 자동화
 
도커를 이용한 파이썬 모듈 배포하기
도커를 이용한 파이썬 모듈 배포하기도커를 이용한 파이썬 모듈 배포하기
도커를 이용한 파이썬 모듈 배포하기
 
송창규, unity build로 빌드타임 반토막내기, NDC2010
송창규, unity build로 빌드타임 반토막내기, NDC2010송창규, unity build로 빌드타임 반토막내기, NDC2010
송창규, unity build로 빌드타임 반토막내기, NDC2010
 
Docker + Kubernetes를 이용한 빌드 서버 가상화 사례
Docker + Kubernetes를 이용한 빌드 서버 가상화 사례Docker + Kubernetes를 이용한 빌드 서버 가상화 사례
Docker + Kubernetes를 이용한 빌드 서버 가상화 사례
 
XECon2015 :: [1-3] 김덕홍 - Git Workflow with GitHub
XECon2015 :: [1-3] 김덕홍 - Git Workflow with GitHubXECon2015 :: [1-3] 김덕홍 - Git Workflow with GitHub
XECon2015 :: [1-3] 김덕홍 - Git Workflow with GitHub
 
[121]네이버 효과툰 구현 이야기
[121]네이버 효과툰 구현 이야기[121]네이버 효과툰 구현 이야기
[121]네이버 효과툰 구현 이야기
 
Python server-101
Python server-101Python server-101
Python server-101
 
[145]5년간의네이버웹엔진개발삽질기그리고 김효
[145]5년간의네이버웹엔진개발삽질기그리고 김효[145]5년간의네이버웹엔진개발삽질기그리고 김효
[145]5년간의네이버웹엔진개발삽질기그리고 김효
 
Ryan Dahl의 Node.js 소개 동영상 해설 by doortts
Ryan Dahl의 Node.js 소개 동영상 해설 by doorttsRyan Dahl의 Node.js 소개 동영상 해설 by doortts
Ryan Dahl의 Node.js 소개 동영상 해설 by doortts
 
Docker at Deview 2013
Docker at Deview 2013Docker at Deview 2013
Docker at Deview 2013
 
swig를 이용한 C++ 랩핑
swig를 이용한 C++ 랩핑swig를 이용한 C++ 랩핑
swig를 이용한 C++ 랩핑
 
Tech planet 2015 Docker 클라우드 구축 프로젝트 - d4
Tech planet 2015 Docker 클라우드 구축 프로젝트 - d4Tech planet 2015 Docker 클라우드 구축 프로젝트 - d4
Tech planet 2015 Docker 클라우드 구축 프로젝트 - d4
 
Node.js 시작하기
Node.js 시작하기Node.js 시작하기
Node.js 시작하기
 

En vedette

개영한줄영작_Giving Advice on Debugging
개영한줄영작_Giving Advice on Debugging개영한줄영작_Giving Advice on Debugging
개영한줄영작_Giving Advice on DebuggingNasol Kim
 
[NDC17] Unreal.js - 자바스크립트로 쉽고 빠른 UE4 개발하기
[NDC17] Unreal.js - 자바스크립트로 쉽고 빠른 UE4 개발하기[NDC17] Unreal.js - 자바스크립트로 쉽고 빠른 UE4 개발하기
[NDC17] Unreal.js - 자바스크립트로 쉽고 빠른 UE4 개발하기현철 조
 
네이버 me 사용성 개선 프로젝트
네이버 me 사용성 개선 프로젝트네이버 me 사용성 개선 프로젝트
네이버 me 사용성 개선 프로젝트선혜 송
 
triple EX_ 테스크 분석과 종합
triple EX_ 테스크 분석과 종합triple EX_ 테스크 분석과 종합
triple EX_ 테스크 분석과 종합Hyunjin Yoo
 
비개발자를 위한 Javascript 알아가기 #3
비개발자를 위한 Javascript 알아가기 #3비개발자를 위한 Javascript 알아가기 #3
비개발자를 위한 Javascript 알아가기 #3민태 김
 
리멤버 데스크톱 앱 개발기
리멤버 데스크톱 앱 개발기리멤버 데스크톱 앱 개발기
리멤버 데스크톱 앱 개발기Tom Kim
 
Electron mainprocess
Electron mainprocessElectron mainprocess
Electron mainprocessDaehwan Lee
 
일렉트론 삽질기
일렉트론 삽질기일렉트론 삽질기
일렉트론 삽질기Jung Young Kim
 
Electron 개발하기
Electron 개발하기Electron 개발하기
Electron 개발하기성일 한
 
Building Native Experiences with Electron
Building Native Experiences with ElectronBuilding Native Experiences with Electron
Building Native Experiences with ElectronBen Gotow
 
Electron 시작하기
Electron 시작하기Electron 시작하기
Electron 시작하기Hyeokjoo Yoon
 

En vedette (11)

개영한줄영작_Giving Advice on Debugging
개영한줄영작_Giving Advice on Debugging개영한줄영작_Giving Advice on Debugging
개영한줄영작_Giving Advice on Debugging
 
[NDC17] Unreal.js - 자바스크립트로 쉽고 빠른 UE4 개발하기
[NDC17] Unreal.js - 자바스크립트로 쉽고 빠른 UE4 개발하기[NDC17] Unreal.js - 자바스크립트로 쉽고 빠른 UE4 개발하기
[NDC17] Unreal.js - 자바스크립트로 쉽고 빠른 UE4 개발하기
 
네이버 me 사용성 개선 프로젝트
네이버 me 사용성 개선 프로젝트네이버 me 사용성 개선 프로젝트
네이버 me 사용성 개선 프로젝트
 
triple EX_ 테스크 분석과 종합
triple EX_ 테스크 분석과 종합triple EX_ 테스크 분석과 종합
triple EX_ 테스크 분석과 종합
 
비개발자를 위한 Javascript 알아가기 #3
비개발자를 위한 Javascript 알아가기 #3비개발자를 위한 Javascript 알아가기 #3
비개발자를 위한 Javascript 알아가기 #3
 
리멤버 데스크톱 앱 개발기
리멤버 데스크톱 앱 개발기리멤버 데스크톱 앱 개발기
리멤버 데스크톱 앱 개발기
 
Electron mainprocess
Electron mainprocessElectron mainprocess
Electron mainprocess
 
일렉트론 삽질기
일렉트론 삽질기일렉트론 삽질기
일렉트론 삽질기
 
Electron 개발하기
Electron 개발하기Electron 개발하기
Electron 개발하기
 
Building Native Experiences with Electron
Building Native Experiences with ElectronBuilding Native Experiences with Electron
Building Native Experiences with Electron
 
Electron 시작하기
Electron 시작하기Electron 시작하기
Electron 시작하기
 

Similaire à 김찬웅_그룹웨어에 새 에너지를_NDC15

AngularJS In Production
AngularJS In ProductionAngularJS In Production
AngularJS In ProductionMooYeol Lee
 
Do not use Django as like as SMARTSTUDY
Do not use Django as like as SMARTSTUDYDo not use Django as like as SMARTSTUDY
Do not use Django as like as SMARTSTUDYHyun-woo Park
 
Embedded project presentation
Embedded project presentationEmbedded project presentation
Embedded project presentationJae-yeol Lee
 
도구를 활용한 더 나은 웹 개발: Yeoman
도구를 활용한 더 나은 웹 개발: Yeoman도구를 활용한 더 나은 웹 개발: Yeoman
도구를 활용한 더 나은 웹 개발: YeomanJae Sung Park
 
청강대 특강 - 프로젝트 제대로 해보기
청강대 특강 - 프로젝트 제대로 해보기청강대 특강 - 프로젝트 제대로 해보기
청강대 특강 - 프로젝트 제대로 해보기Chris Ohk
 
커뮤니티와 함께한 예비개발자 성장기- 조성수님
커뮤니티와 함께한 예비개발자 성장기- 조성수님커뮤니티와 함께한 예비개발자 성장기- 조성수님
커뮤니티와 함께한 예비개발자 성장기- 조성수님NAVER D2
 
NAVER TECH CONCERT_FE2019_빠르게 훑어보는 웹 개발 트렌드
NAVER TECH CONCERT_FE2019_빠르게 훑어보는 웹 개발 트렌드NAVER TECH CONCERT_FE2019_빠르게 훑어보는 웹 개발 트렌드
NAVER TECH CONCERT_FE2019_빠르게 훑어보는 웹 개발 트렌드NAVER Engineering
 
iOS App 개발 with React Native + ClojureScript
iOS App 개발 with React Native + ClojureScriptiOS App 개발 with React Native + ClojureScript
iOS App 개발 with React Native + ClojureScriptCheolhee Han
 
ant로 안드로이드 앱을 자동으로 빌드하자
ant로 안드로이드 앱을 자동으로 빌드하자ant로 안드로이드 앱을 자동으로 빌드하자
ant로 안드로이드 앱을 자동으로 빌드하자Sewon Ann
 
윤석주, 인하우스 웹 프레임워크 Jul8 제작기, NDC2018
윤석주, 인하우스 웹 프레임워크 Jul8 제작기, NDC2018윤석주, 인하우스 웹 프레임워크 Jul8 제작기, NDC2018
윤석주, 인하우스 웹 프레임워크 Jul8 제작기, NDC2018devCAT Studio, NEXON
 
Single-page Application
Single-page ApplicationSingle-page Application
Single-page ApplicationSangmin Yoon
 
2020년 5월 16일 개발 이야기 정리
2020년 5월 16일 개발 이야기 정리2020년 5월 16일 개발 이야기 정리
2020년 5월 16일 개발 이야기 정리Jay Park
 
SW1차 프로젝트 Hive 최종발표
SW1차 프로젝트 Hive 최종발표SW1차 프로젝트 Hive 최종발표
SW1차 프로젝트 Hive 최종발표Sinhyub Kim
 
HTML5/JSON 을 이용해 범용 2D 맵에디터 제작하기
HTML5/JSON 을 이용해 범용 2D 맵에디터 제작하기HTML5/JSON 을 이용해 범용 2D 맵에디터 제작하기
HTML5/JSON 을 이용해 범용 2D 맵에디터 제작하기Miyu Park
 
Html5 앱과 웹사이트를 보다 빠르게 하는 50가지
Html5 앱과 웹사이트를 보다 빠르게 하는 50가지Html5 앱과 웹사이트를 보다 빠르게 하는 50가지
Html5 앱과 웹사이트를 보다 빠르게 하는 50가지yongwoo Jeon
 
Service Worker 를 이용한 
Offline Web Application 구현
Service Worker 를 이용한 
Offline Web Application 구현Service Worker 를 이용한 
Offline Web Application 구현
Service Worker 를 이용한 
Offline Web Application 구현병태 정
 
2021년 3월 6일 개발자 이야기
2021년 3월 6일 개발자 이야기2021년 3월 6일 개발자 이야기
2021년 3월 6일 개발자 이야기Jay Park
 
Dynamic Word Cloud Using Word2Vec - 2nd Presentation
Dynamic Word Cloud Using Word2Vec - 2nd PresentationDynamic Word Cloud Using Word2Vec - 2nd Presentation
Dynamic Word Cloud Using Word2Vec - 2nd PresentationMinwook Chang
 
2021년 4월 10일 개발자 이야기
2021년 4월 10일 개발자 이야기2021년 4월 10일 개발자 이야기
2021년 4월 10일 개발자 이야기Jay Park
 
portfolio-subtitle-convert-김남운
portfolio-subtitle-convert-김남운portfolio-subtitle-convert-김남운
portfolio-subtitle-convert-김남운Namwun Kim
 

Similaire à 김찬웅_그룹웨어에 새 에너지를_NDC15 (20)

AngularJS In Production
AngularJS In ProductionAngularJS In Production
AngularJS In Production
 
Do not use Django as like as SMARTSTUDY
Do not use Django as like as SMARTSTUDYDo not use Django as like as SMARTSTUDY
Do not use Django as like as SMARTSTUDY
 
Embedded project presentation
Embedded project presentationEmbedded project presentation
Embedded project presentation
 
도구를 활용한 더 나은 웹 개발: Yeoman
도구를 활용한 더 나은 웹 개발: Yeoman도구를 활용한 더 나은 웹 개발: Yeoman
도구를 활용한 더 나은 웹 개발: Yeoman
 
청강대 특강 - 프로젝트 제대로 해보기
청강대 특강 - 프로젝트 제대로 해보기청강대 특강 - 프로젝트 제대로 해보기
청강대 특강 - 프로젝트 제대로 해보기
 
커뮤니티와 함께한 예비개발자 성장기- 조성수님
커뮤니티와 함께한 예비개발자 성장기- 조성수님커뮤니티와 함께한 예비개발자 성장기- 조성수님
커뮤니티와 함께한 예비개발자 성장기- 조성수님
 
NAVER TECH CONCERT_FE2019_빠르게 훑어보는 웹 개발 트렌드
NAVER TECH CONCERT_FE2019_빠르게 훑어보는 웹 개발 트렌드NAVER TECH CONCERT_FE2019_빠르게 훑어보는 웹 개발 트렌드
NAVER TECH CONCERT_FE2019_빠르게 훑어보는 웹 개발 트렌드
 
iOS App 개발 with React Native + ClojureScript
iOS App 개발 with React Native + ClojureScriptiOS App 개발 with React Native + ClojureScript
iOS App 개발 with React Native + ClojureScript
 
ant로 안드로이드 앱을 자동으로 빌드하자
ant로 안드로이드 앱을 자동으로 빌드하자ant로 안드로이드 앱을 자동으로 빌드하자
ant로 안드로이드 앱을 자동으로 빌드하자
 
윤석주, 인하우스 웹 프레임워크 Jul8 제작기, NDC2018
윤석주, 인하우스 웹 프레임워크 Jul8 제작기, NDC2018윤석주, 인하우스 웹 프레임워크 Jul8 제작기, NDC2018
윤석주, 인하우스 웹 프레임워크 Jul8 제작기, NDC2018
 
Single-page Application
Single-page ApplicationSingle-page Application
Single-page Application
 
2020년 5월 16일 개발 이야기 정리
2020년 5월 16일 개발 이야기 정리2020년 5월 16일 개발 이야기 정리
2020년 5월 16일 개발 이야기 정리
 
SW1차 프로젝트 Hive 최종발표
SW1차 프로젝트 Hive 최종발표SW1차 프로젝트 Hive 최종발표
SW1차 프로젝트 Hive 최종발표
 
HTML5/JSON 을 이용해 범용 2D 맵에디터 제작하기
HTML5/JSON 을 이용해 범용 2D 맵에디터 제작하기HTML5/JSON 을 이용해 범용 2D 맵에디터 제작하기
HTML5/JSON 을 이용해 범용 2D 맵에디터 제작하기
 
Html5 앱과 웹사이트를 보다 빠르게 하는 50가지
Html5 앱과 웹사이트를 보다 빠르게 하는 50가지Html5 앱과 웹사이트를 보다 빠르게 하는 50가지
Html5 앱과 웹사이트를 보다 빠르게 하는 50가지
 
Service Worker 를 이용한 
Offline Web Application 구현
Service Worker 를 이용한 
Offline Web Application 구현Service Worker 를 이용한 
Offline Web Application 구현
Service Worker 를 이용한 
Offline Web Application 구현
 
2021년 3월 6일 개발자 이야기
2021년 3월 6일 개발자 이야기2021년 3월 6일 개발자 이야기
2021년 3월 6일 개발자 이야기
 
Dynamic Word Cloud Using Word2Vec - 2nd Presentation
Dynamic Word Cloud Using Word2Vec - 2nd PresentationDynamic Word Cloud Using Word2Vec - 2nd Presentation
Dynamic Word Cloud Using Word2Vec - 2nd Presentation
 
2021년 4월 10일 개발자 이야기
2021년 4월 10일 개발자 이야기2021년 4월 10일 개발자 이야기
2021년 4월 10일 개발자 이야기
 
portfolio-subtitle-convert-김남운
portfolio-subtitle-convert-김남운portfolio-subtitle-convert-김남운
portfolio-subtitle-convert-김남운
 

김찬웅_그룹웨어에 새 에너지를_NDC15