This document introduces REST.
Explain about what is REST? and advanced REST feature.
It also introduce REST actual implementation with Jersey and REST infrastructure architecture with ESB based on actual delivery experience.
One more interest thing is that it has REST client stub generator & service contract generator design
Hybrid Mobile Application Framework
(www.wapplejs.com)
1. Native Resource Control
2. Native UI + Web UI
3. Plug-in Expansion
4. Native App Based on JavaScript
5. One Source Multi Use
6. Multi Platform & Device
This document introduces REST.
Explain about what is REST? and advanced REST feature.
It also introduce REST actual implementation with Jersey and REST infrastructure architecture with ESB based on actual delivery experience.
One more interest thing is that it has REST client stub generator & service contract generator design
Hybrid Mobile Application Framework
(www.wapplejs.com)
1. Native Resource Control
2. Native UI + Web UI
3. Plug-in Expansion
4. Native App Based on JavaScript
5. One Source Multi Use
6. Multi Platform & Device
어느 해커쏜에 참여한 백엔드 개발자들을 위한 교육자료
쉽게 만든다고 했는데도, 많이 어려웠나봅니다.
제 욕심이 과했던 것 같아요. 담번엔 좀 더 쉽게 !
- 독자 : 백엔드 개발자를 희망하는 사람 (취준생, 이직 희망자), 5년차 이하
- 주요 내용 : 백엔드 개발을 할 때 일어나는 일들(개발팀의 일)
- 비상업적 목적으로 인용은 가능합니다. (출처 명기 필수)
[Uws] enterprise application architecture, msa, java9, spring 소개HYUN-JOO LEE
회사 교육용으로 만든 자료입니다. 엔터프라이즈 어플리케이션 아키텍처의 개념부터 시작하여 마이크로서비스 아키텍처와 기존 모놀리식 아키텍처 비교하고 왜 우리가 자바9에 집중해야 하는지 설명하려고 만든 자료입니다. 현재 회사에서 진행하고 있는 클라우드 어플리케이션 통합/아키텍처링 사업과 PoC 플랫폼 개발을 위한 회사 내부 교육용으로 만들었습니다. MSA 부분은 IBM Blumix 밋업 자료에서 발췌했습니다. 잘못된 부분이나 다른 의견이 있으신 분 댓글이나 메세지 주세요. hjlee@uws.co.kr
Chaos Engineering을 위한 최신 도구 업데이트 - 윤석찬 (AWS 테크에반젤리스트)Channy Yun
- 발표 영상: https://www.youtube.com/watch?v=mLWD4KCQuT4
카오스 엔지니어링(Chaos Engineering)을 테스트해 볼 수 있는 각종 도구에 대해 최신 업데이트를 해드립니다. 로컬 장애 주입용 도구 부터, AWS System Manager기반 Runcommand 도구, AWS Lambda 도구, 그리고 ToxiProxy, ChaosToolkit 같은 오픈 소스 기반 도구와 간단한 데모를 함께 보여드립니다.
How to Measure DevRel's Perfomances: From Community to Business - Channy Yun ...Channy Yun
Developer relations are an impactable to generate business values in many software companies who hope to gain mindshare of developers in various approaches from contributing open sources to gaining meaningful sales leads. In this session, you’ll learn about how to measure the perfomrmance of developer relations for building community, increasing impacts and generating leads for sales.
https://tokyo-2018.devrel.net/speakers/yun/
카오스 엔지니어링(Chaos Engineering)이란 프로덕션 서비스의 각종 장애 조건을 견딜 수 있는 시스템의 신뢰성을 확보하기 위해 분산 시스템을 실험 하고 배우는 분야입니다. 즉, 개발자들이 현실 세계에서 발견되는 시스템 장애를 미리 탐지하여 복원성 높은 아키텍처를 구성하는 방법을 공유합니다.클라우드 컴퓨팅의 발전과 데브옵스 방법론을 기반으로 자동화를 통해 좀 더 쉽게 개발자들이 직접 분산 시스템을 통제된 환경에서 실험을 하는 동안 나오는 결과를 관찰함으로써 현실에서 실제 행동 방법을 배울 수 있습니다. 본 세션에서는 카오스 엔지니어링의 기본 개념과 함께 Kubernetes용 Chaos Tool인 KubeMonkey를 통해 무작위로 클러스터의 포드를 삭제하여 장애 복구 서비스 아키텍처를 검증하는 방법을 설명합니다.
클라우드 컴퓨팅과 Daum의 사례- 윤석찬 (KREN 연구 협력 포럼, 2013) Channy Yun
출처: http://www.koren.or.kr/board/board.php?task=view&db=data2&no=44
<개발자에서>
최근에 클라우드 기술이 부각되면서 다음에서도 발빠르게 사내 프라이빗 클라우드 서비스를 준비중이다. 가장 먼저 한 일은 사내 개발자들이 언제든지 자신의 가상머신(VM)을 할당 받아 테스트해 볼 수 있는 사내 클라우드 플랫폼 구축이었다.
2011년 초 오픈소스인 클라우드스택을 최적화해 구축했으며, 개발자들은 공용 테스트 서버나 서비스 서버에서 못하던 자신만의 최신 기술 습득이나 테스트를 아무 구애 받지 않고 자기 서버에서 해 볼 수 있게 됐다. 이 플랫폼은 앞으로 클라우드 파운더리 기반의 사내 PaaS과 하둡 테스트베드로도 활용하고 있으며, 실제 다음 서비스에서 클라우드 컴퓨팅 기술을 활용하는 기초가 되고 있다.
- http://www.bloter.net/archives/107844
DockerCon 2014에서 Adrian Cockcroft가 발표한 The state of the art in Microservice 중 해외 사례 발췌본
https://blog.docker.com/2014/12/dockercon-europe-keynote-state-of-the-art-in-microservices-by-adrian-cockcroft-battery-ventures/
2005년 구글맵으로 부터 시작된 웹 기반 지도 API 서비스는 웹 2.0의 데이터 플랫폼 서비스의 주요 사례로 떠올랐다. 그 이후 야후!, 마이크로소프트 등에서 지도 플랫폼 서비스와 API 제공이 잇달았으며, 국내에서도 다음이 최초로 항공 사진(스카이뷰)과 거리 사진(로드뷰)을 제공하고 네이버도 참여함으로서 로컬 기반 서비스의 폭발적 성장의 견인차 역할을 하였다. 노키아의 Here 및 오픈스트릿맵 등 제 3의 사업자 및 협업 기반 플랫폼이 성장하였으며, Open Layer 라이브러리 및 Open GIS 등 다양한 공개 소프트웨어 들도 함께 성장하였다.
특히, 스마트폰의 보급과 아울러 모바일용 지도 SDK를 적극 보급 및 지원하는 추세로 기존의 Ajax 기반의 이미지 기반 웹 지도 표현 기술은 WebGL 혹은 Canvas를 통해 3차원 기술을 도입하면서 웹 호환성 및 성능을 동시에 높히고 있다. 구글 스케치업을 통해 시작된 공간 3차원 서비스는 약간 주춤하지만 45도 이미지너리 및 DEM 기반 데이터는 계속 추가되고 있다.
최근에는 구글맵 엔진 서비스와 같은 전문 사용자의 참여를 이끌어 내어 클라우드 소싱 형태의 지도 데이터 생성 커뮤니티를 통해 저개발 국가 및 북한과 같은 미공개 지도 데이터 생산을 만들고 있다.
2011년부터 구글 부터 지도 API 서비스 유료화를 단행하여 보안 강화 및 품질 및 성능 향상을 통해 제 3자 재판매를 통한 사업을 진행하고 있다. 또한, 최근 많은 기업들이 글로벌 홈페이지에 자사의 위치나 고객센터를 이용자들이 찾는데 활용하고 있으며, 이를 활용해 물류•관제•입지분석•위험관리•마케팅 등에 활용하고 있다.
현재 글로벌 지도 API 플랫폼은 단순히 베이스맵을 지원하는데 그치지 않고 공간 정보를 시각화 및 표현하는데 필요한 다양한 기능을 제공하면서, 정보 전달 역할을 강화하고 있다. 또한, Mapbox 등 지도 타일의 다양한 스타일과 테마 기능을 통해 좀 더 미려한 지도를 제공하기도 한다.
향후 글로벌 지도 API 플랫폼은 단보다 고도화된 시스템을 활용해 데이터 분석 및 2차원 시각화 그리고 3차원 공간 정보 활용으로 진화하고 있다.
4. JVM Platform Web site
Java API Interface Open API
Java
Application
Software Data
Developer Participators User, Small Biz.
API Lock-in Key Factor Data Lock-in
6. 폐쇄된 API를 가진
버추얼 머신 Platform
개방된 API를 가진
웹 서비스
독자적/폐쇄형 API 개방형/표준형
학습 비용 등
진입이 어려움
Costs
빠르고 쉽게 개발 및
서비스 가능
기능 위주 Lock-in 데이터 위주
각 플랫폼 기반
개발자
Developers
웹 서비스 기반
개발자
.Net
Java
Examples
Google
Amazon
8. Open API?
Open API is a word used to describe sets of technologies that enable
websites to interact with each other by using REST,
SOAP, JavaScript and other web technologies. While its
possibilities aren't limited to web-based applications, it's becoming an increasing trend in so-called Web
2.0 applications. The term API stands for Application Programming Interface.
http://en.wikipedia.org/wiki/Open_API
12. 왜 오픈 API를? 창업자 관점
다양한 비즈니스 개발 타진
– 자원이 부족한 스타트업의 경우, 서드파티 및 파트너와
의 협업을 위해 가능성 탐지
서비스 주변 개발자 생태계 확보
– 외부 개발자들이 언제든지 API를 통해 매쉬업 개발, 버
그 리포팅, 아이디어 제공
투자자에게 플랫폼으로 어필
– 작지만 죽지 않을(?) 파트너쉽 및 개발자 생태계 구성
은 투자할 이유가 됨!
17. 스타트업 성공 사례
• 서비스 시작부터 API 제공
• 200여개의 미투앱스
• 20여개의 소셜플러그인 제휴
• 월 2억건의 쿼리 (2011.4)
• iOS에서만 앱 제공
• 1초에 15장, 하루 130 만장 등록
• 2,500여개의 외부앱
• 250여개의 github 레포지터리
18. Fred Wilson’s
10 Golden Principles of
Successful Web Apps
5. Make it Programmable
http://thinkvitamin.com/web‐apps/fred‐wilsons‐10‐golden‐principles‐of‐successful‐web‐apps/
19. 왜 오픈 API를? 개발자 관점
프로그래밍은 결국 API 디자인
– 좋은 코드는 Module화 되어 있고, 각 모듈은 API로 구
성되어 있다.
좋은 API는 높은 재사용성 제공
– API 사용자가 생기면 변경하기가 어려우며, 처음 부터
설계에 노력을 들이게 된다.
외부 개발자와의 협업이 가능
– 스타트업에서 개발자는 외롭다. 하지만 API를 오픈하
면 밖에도 내 편을 만들 수 있다.
20. 어떻게 만들어야 하나?
직관적이고 배우기 쉽게
– 문서 없이도 형식만 보고도 이해할 수 있어야 한다.
설계는 완벽하게
– 한번 만든 API는 하위 호환성 때문에 쉽게 바꾸기 어렵다.
보안은 최소화
– 너무 많은 제한을 두면 개발자로 부터 반감을 얻을 수 있다.
벤치마크
– 좋은 API를 따라한다. Copy & Paste가 답!
21. API 서비스 프로토콜
프로토콜 종류
REST는 서비스 개발 및 활용 비용 ↓
종류 설명 형식
자원
인식
자원
접근
자원
처리
자원
링크
사례
WS-* SOA 기반 웹
서비스
WSDL을 통한 표현 Google
Adsense
API
RPC 자원에 파라
미터로 접근
GET /service?1 Amazon
SimpleDB
API
API 객체 방법으
로 접근
PUT /order/1 Twitter
API
REST 하이퍼링크
로 접근
<link type=“atom” Atom
Publishing
Protocol
http://www.nordsc.com/ext/classification_of_http_based_apis.html
22. API Best Practices
1. 객체 표현
POST /photos/create
POST /photos/show/foobar
POST /photos/update/foobar
POST /photos/delete/foobar
2. 호환성
http://apis.daum.net/maps/v1/js
http://apis.daum.net/maps/v2/js
3. 에러처리
<apierror>
<code>404</code>
<message>App 인증 실패</message>
<dcode>22</dcode>
<dmessage>등록되지 않은 apikey 입니다.</dmessage>
</apierror>
•22
23. 4. 다양한 포맷 (JSON, XML, RSS)
{ 'person' :
{ 'name': '...', 'age' : 22, 'dogs' : [...] }
}
자바스크립트 개발자를 위한 Callback 함수 지원 필수
5. 보안 강화
– APIKey와 트래픽 제어가 필수는 아니다!
– 사용자 데이터는 oAuth 이용
– 암호화 제공은 선택 사항
24. API 개발 프레임웍
웬만한 MVC 프레임웍은 지원!
– RESTful 지원 프레임웍
• http://en.wikipedia.org/wiki/Representational_State_Transfer#Fra
mework_implementations
– Django with Pistons
• Django-Tastypie https://github.com/toastdriven/django-tastypie
– Ruby on Rails
Node.js
– 이벤트 기반 웹 서비스에 유리
25. API 서드 파티 지원
★ 오픈 API 퍼블리싱에 도움을 줌!
http://apievangelist.com/serviceproviders/