HyWAI is an HTML5 based Hybrid Web Application platform that allows you to author native applications with web technologies and get access to APIs and app stores.
HyWAI leverages web technologies developers already know best... HTML and JavaScript.
오늘날, 모든 기업활동에 있어서 IT는 코어 비즈니스를 보조하는 보조적인 역할에서 벗어나 코어 비즈니스 그 차제가 되는 경우를 쉽게 찾아볼 수 있다. 이러한 엔터프라이즈 어플리케이션 개발에 있어서 기존의 프로젝트 중심 패러다임에서 프로덕트 중심 패러다임으로 전환에 성공한 국내외의 사례를 살펴보고 이들 사례로 부터 Best Practice를 정제하여 보고자 한다.
HyWAI is an HTML5 based Hybrid Web Application platform that allows you to author native applications with web technologies and get access to APIs and app stores.
HyWAI leverages web technologies developers already know best... HTML and JavaScript.
오늘날, 모든 기업활동에 있어서 IT는 코어 비즈니스를 보조하는 보조적인 역할에서 벗어나 코어 비즈니스 그 차제가 되는 경우를 쉽게 찾아볼 수 있다. 이러한 엔터프라이즈 어플리케이션 개발에 있어서 기존의 프로젝트 중심 패러다임에서 프로덕트 중심 패러다임으로 전환에 성공한 국내외의 사례를 살펴보고 이들 사례로 부터 Best Practice를 정제하여 보고자 한다.
모바일 게임과 앱을 위한 오픈소스 게임서버 엔진 프로젝트 CloudBread 프로젝트Dae Kim
CloudBread
클라우드 기반 무료 오픈소스 프로젝트로, 모바일 게임과 모바일 앱에 최적화된 게임 서버 엔진입니다. 모든 서비스는 마이크로소프트의 클라우드 서비스인 Azure에 최적화되어 동작하며, 안정성과 확장성을 목표로 개발 중입니다.
기능
•PaaS / DaaS 서버 엔진•PaaS, DaaS 로 손쉬운 개발 및 서비스 즉시 배포
•Real Auto Scale - PaaS
•개발/테스트/배포 = 통합 환경
•서비스 규모에 따른 앱 변경 없음
글로벌 론칭 아키텍처
•글로벌 론칭+데이터 동기화
•설계 부터 클라우드에 최적화된 아키텍처 및 프레임워크로 개발
•오픈소스 프레임워크 활용 개발
보안, 관리, 기술교육
•저장/통신에 표준 암호화 기술 적용
•기본 관리자 서비스 및 커스터마이징
•분석/관리 배치 작업 추가 제작 가능
개발자 그룹
•페이스북 사용자 그룹 : https://www.facebook.com/groups/cloudBreadProject/
지원되는 모바일 & 클라이언트환경
•iOS, Android, Windows Phone, Windows 스토어앱, Xamarin, PhoneGap, Sencha 등
•Microsoft Azure Mobile Service가 지원하는 모바일 및 다양한 클라이언트 플랫폼 지원 : http://azure.microsoft.com/ko-kr/documentation/services/mobile-services/
설치
•Wiki의 튜토리얼 설치 참조
프로젝트 설명
•모바일게임과 모바일 앱에서 사용되는 사용자의 패턴과 액션을 기록해 기능들을 제공
•클라이언트 모바일 디바이스는 게임서버로 JSON 방식의 데이터를 요청하고 서버가 해당 데이터를 처리 후 응답
•약 100여개의 비즈니스 로직이 기본제공(Wiki 참조)
•클라이언트는 마이크로소프트가 오픈소스로 직접 만들어 제공하는 라이브러리를 통해 서버로 API를 호출
실행 예제와 API 리스트는 Wiki 참조
Contribute/질문/토론
•페이스북 사용자 그룹 : https://www.facebook.com/groups/cloudBreadProject/
2016년 12월에 진행되었던 W3C HTML5 Conference 2016의 오후 트렉 (웹프레임워크)의 발표 자료입니다.
캔고루 개발팀장이신 김응주님께서 ‘IONIC으로 하이브리드 앱 개발하기, 사례와 시사점’이라는 주제로 발표를 진행하였습니다. . IONIC에 대한 전반적인 소개뿐 아니라 실제 개발하면서 경험한 다양한 시사점도 공유하였습니다.
2016 W3C Conference #7 : Electron, 웹 기술로 담아내는 데스크톱 애플리케이션양재동 코드랩
2016년 12월에 진행되었던 W3C HTML5 Conference 2016의 오후 트렉 (웹프레임워크)의 발표 자료입니다.
스튜디오씨드의 개발자 이웅재님께서 ‘Electron, 웹 기술로 담아내는 데스크톱 애플리케이션’을 주제로 발표를 진행하였습니다. 이번 발표에는 Electron에 대한 소개, 그리고 실무 활용 이슈와 프로덕션, Typescript를 활용한 대규모 애플리케이션 개발에 대한 내용을 다루었습니다.
2016년 12월에 진행되었던 W3C HTML5 Conference 2016의 오후 트렉 (웹프레임워크)의 발표 자료입니다.
Automattic의 개발자로 활동하고 계신 김태곤님께서 ‘Universal Rendering’을 주제로 발표를 진행하였습니다. 이번 세션에서는 유니버셜 렌더링의 정의, 장점과 단점, 그리고 구현 방법에 대한 개요까지 다뤘습니다.
2016년 12월에 진행되었던 W3C HTML5 Conference 2016의 오후 트렉 (웹프레임워크)의 발표 자료입니다.
GDG Korea Web Tech 운영진이신 한장현 님께서 ‘AngularJS와 ES6’에 대한 주제로 발표를 진행하였습니다. 이 발표를 통해서 Angular와ES6를 함께 사용하기 위해 필요한 구체적인 내용들을 공유하였습니다. Angular를 현재 사용하시는 분들께 많은 도움이 되는 시간이었던 것 같습니다.
2016년 12월에 진행되었던 W3C HTML5 Conference 2016의 오후 트렉 (웹프레임워크)의 발표 자료입니다.
BPNR의 김혁수 팀장님께서 ‘Vanila JS로 개발하기’란 주제로 Vanila JS에 대한 소개, Vanila JS와 jQuery의 비교, 그리고 활용사례로 발표를 진행하셨습니다.
2016년 12월에 진행되었던 W3C HTML5 Conference 2016의 오후 트렉 (웹프레임워크)의 발표 자료입니다.
웹프레임워크 세미나의 첫번째는 corechain 개발자이자 ‘몰입! 자바스크립트’의 저자이신 김영보님께서 진행하셨습니다. 30년 넘게 개발자로 살아오시면서 경험한 개발 환경의 변화를 ‘웹 개발의 현재와 미래’라는 주제로 발표하셨습니다.
2. 진행 순서
• Spring Boot 소개
• 개발환경 설정
• REST API 개발
• Redis 이용하기
• OAuth 인증서버 구현
• REST API Client 구현
• GraphQL
• Spring Boot Actuator
3. Spring Boot
• 2013년 개발, 2014년 4월 1.0 릴리즈
• Spring 기반 애플리케이션을 빠르고 쉽게 개발
• 환경설정의 최소화를 통한 생산성 향상
• 현재 2.2.0 안정화 버전
• https://spring.io/projects/spring-boot
4. Spring Boot의 특징
• Embed Tomcat을 이용하여 단독실행 가능
• Starter를 통한 자동화된 설정 제공
• XML 설정이 필요 없음
• Spring Actuator를 통한 모니터링과 관리 가능
5. JDK 설치
•JDK 1.8.0_x 설치
•https://java.oracle.com/
•현재 설치된 Java 버전 확인
$ java --version
6. IntelliJ IDEA 설치
•Java Web Application 개발을 위한 IDE
•https://www.jetbrains.com/idea/
•Ultimate 버전
•유료 제품
•Java EE, Spring, Web 개발 지원
•Community 버전
•무료 제품
•기본적인 Java, Kotlin, Scala 등의 개발 지원
•프로젝트 생성 시 JAVA_HOME 지정
7. MySQL 설치
•데이터 처리를 위한 RDBMS
•https://dev.mysql.com/downloads/mysql
•MySQL Community Server 5.7 설치 (5.x 버전 가능)
$ mysql --version
8. REST API 개발
•부서와 사용자를 관리하는 REST API 개발
•Entity
•부서: department
•사용자: member
9. REST API 개발
•부서 관리 API
•GET /api/departments
•GET /api/departments/{id}
•GET /api/departments/name
•POST /api/departments
•PUT /api/departments/{id}
•DELETE /api/departments/{id}
10. REST API 개발
•사용자 관리 API
•GET /api/members
•GET /api/members/{id}
•GET /api/members/name
•POST /api/members
•PUT /api/members/{id}
•DELETE /api/members/{id}
11. Spring Boot 프로젝트 생성
•Spring Initializer 접속 (IntelliJ IDEA Community 버전)
•https://start.spring.io
•Maven Project
•Java Spring Boot 2.2.0
•Group, Artifact 설정
•Dependencies 추가
•Web, Lombok, JPA, MySQL
•프로젝트 생성 후 IntelliJ IDEA에서 Open
15. OAuth 인증서버 구현
•Spring Security를 이용한 OAuth2 인증서버 구현
•Bearer Authentication을 이용한 인증
•Access Token을 이용한 API 접근
•JdbcTokenStore를 이용하여 데이터베이스에 Token 저장
•https://github.com/mac2me/spring-oauth-server
16. REST API Client 구현
•RestTemplate을 이용한 API Client
•Access Token 받기
•Access Token을 이용한 API 접근
•OpenFeign
17. GraphQL
•페이스북이 개발한 애플리케이션 레이어 쿼리 언어
•클라이언트가 쿼리를 이용하여 필요한 정보를 서버에 요청
•graphql-spring-boot-starter
•GraphQLQueryResolver 구현
18. Spring Boot Actuator
•Spring Boot 기반 애플리케이션 및 서버를 모니터링할 수 있는 모듈
•별도 모듈 개발 없이 Endpoint를 통해 접근하여 확인
•/health
•/bean
•/info
•/trace
•JMX와 JConsole을 이용한 모니터링도 가능