Cyworld AppStore Weekly Report 2012-03-20Cyworld AppStore (SK Communications)[주요이슈]
- 이벤트 및 이슈 부재로 전체 신규가입 및 설치수는 소폭으로 감소하였으나 TOP 10 앱스 설치수의 경우 전주대비 8% 상승
- 전주대비 화이트 이벤트 효과 감소 및 종료로 TOP10앱스 트래픽 소폭 감소
2Naver Open Android API Translation At DCampJeikei Park■ 제 목 : Naver 오픈api-android-tran-20160529
■ 주제 : 네이버 오픈API를 활용한 안드로이드 통역앱 만들기
■ 내용 :
- 통역앱 개발을 위한 네이버 오픈API 소개
- 통역앱 안드로이드 화면 구성
- 안드로이드앱에서 각 API 호출 및 처리
- 통역앱 작동을 위한 애플리케이션 처리 노하우
■ 난이도 수준: 초급
■ 발표자 소개: 옥상훈 강사
- 現 표준프레임워크 오픈커뮤니티 에반젤리스트
- 現 네이버 랩스 D2에반젤리스트
- 現 네이버 개발자센터 & 오픈 API 담당
- 前 한국Adobe 시스템즈 컨설턴트
- 前 한국 자바 개발자협의회 회장
■ 일시: 2016. 5. 31(화) 19:00~21:00(120분)
■ 장소: 디캠프 6층 다목적홀 (선정릉역 위치)
Spring integration을 통해_살펴본_메시징_세계Wangeun Lee[스프링캠프 2015] Spring Integration을 통해 살펴본 메시징 세계 발표자료 입니다.
예제 소스 저장소는 프리젠테이션 안에 링크 걸어놨습니다.
감사합니다.
-------------------------------------------------------------------
우리는 늘 누군가와 소통(Communication)을 합니다. 소통을 통하여 누군가에게 일을 시키기도 하고 내가 일을 받기도 합니다. 애플리케이션도 마찬가지로 이기종간의 애플리케이션끼리 데이터로 소통을 하며 할 일을 서로 분산 처리할 상황이 발생하기도 합니다.
이런 분산 처리 이전에는 소통이 전제되어야 합니다. 애플리케이션 간 소통에 대한 고민은 선구자들에 의해 Enterprise Integration Patterns로 탄생되었으며 Spring에서도 그 패턴화의 추상화 일원으로 Spring Integration을 탄생시켰습니다.
이 강연에서는 Spring Integration을 통해 애플리케이션 간에 어떻게 쉽고 편하게(?) 소통을 할 수 있게 되었는지 살펴보며 예제와 사례를 통해 Spring Integration 입문에 도움을 주고자 합니다.
서버리스 앱 배포 자동화 (김필중, AWS 솔루션즈 아키텍트) :: AWS DevDay2018Amazon Web Services Korea운영하는 서비스의 전체 또는 일부분을 클라우드의 이점을 100% 얻으며 옮겨가기 위해 서버리스는 가장 좋은 선택입니다. 서버리스 환경은 개발자가 애플리케이션을 개발하고 배포하는 방식을 바꾸고 있습니다. 본 세션에서는 서버리스 개발자가 애플리케이션 수명주기 관리, CI/CD, 모니터링 및 진단에 사용할 수 있는 모범 사례를 살펴 봅니다. AWS CodePipeline, AWS CodeBuild 및 AWS CloudFormation을 사용하여 서버리스 애플리케이션을 자동으로 구축, 테스트 및 배포하는 CI/CD 파이프 라인을 구축하는 방법에 대해 설명합니다. 또한 기능 및 API의 여러 버전, 단계 및 환경을 만들기 위해 Lambda 및 API Gateway의 기본 제공 기능에 대해 설명합니다. 마지막으로, Amazon CloudWatch 및 AWS X-Ray로 람다 기능의 모니터링 및 진단에 대해 소개합니다.
API Design & Performance Optimization_ݺߣShare.pdfseojung19API First 전략이란 무엇인지, 이러한 전략을 사용하는 이유와 그 장단점을 알아봅니다.
Restful API 디자인의 주요 원칙과 방법을 알아봅니다.
API 성능 최적화 기법을 소개합니다.
Bytebytego (https://github.com/ByteByteGoHq/system-design-101)를 중심으로 하기 참고 자료를 공부하여 정리한 내용입니다.
- https://github.com/ByteByteGoHq/system-design-101
-https://swagger.io/resources/articles/adopting-an-api-first-approach/
-https://www.postman.com/api-first/
-https://cleancommit.io/blog/what-is-api-first-development-and-why-is-it-important/
-https://cloud.google.com/blog/products/application-development/api-design-why-you-
should-use-links-not-keys-to-represent-relationships-in-apis?hl=en
-https://abdulrwahab.medium.com/api-architecture-performance-best-practices-for-rest-
apis-1d4a5922dae1
-https://fastcampus.atlassian.net/wiki/spaces/engineering/pages/2562916385/API
-https://www.moesif.com/blog/technical/api-design/REST-API-Design-Best-Practices-for-
Parameters-and-Query-String-Usage/
-https://restfulapi.net/idempotent-rest-apis/
-https://docs.github.com/ko/rest/overview/rate-limits-for-the-rest-api?
apiVersion=2022-11-28
-https://blog.hubspot.com/website/api-rate-limit
-https://medium.com/@amr258144/connection-pooling-in-node-js-ea4421c72dc
-https://josipmisko.com/posts/rest-api-rate-limiting
-https://www.cloudflare.com/ko-kr/learning/security/api/what-is-api-security/
-https://nordicapis.com/understanding-5-types-of-web-api-pagination/
-https://blog.coupler.io/rest-api-pagination-request/
-https://nordicapis.com/restful-api-pagination-best-practices/
-https://dev.to/pragativerma18/unlocking-the-power-of-api-pagination-best-practices-and-
strategies-4b49
-https://dev.to/dashsaurabh/5-must-ask-questions-before-you-implement-caching-1md2
-https://twitter.com/progressivecod2/status/1737011079480475968?s=12
-https://www.prisma.io/dataguide/managing-databases/introduction-database-caching
-https://www.digitalocean.com/community/tutorials/nodejs-compression
이벤트 기반 분산 시스템을 향한 여정Arawn Park배민찬(https://www.baeminchan.com) 서비스의 백엔드 시스템 중 일부가 지난 1년간 어떤 고민과 아이디어, 결과물을 만들어냈는지 공유하려고 합니다. 발표 중 언급되는 용어나 도구에 대해 일반적인 정의나 간단한 설명은 언급되나 자세히 다루지 않습니다. 사용된 도구들로 어떻게 이벤트 기반 분산 시스템을 만들었는지에 대한 이야기가 중심입니다.
2Naver Open Android API Translation At DCampJeikei Park■ 제 목 : Naver 오픈api-android-tran-20160529
■ 주제 : 네이버 오픈API를 활용한 안드로이드 통역앱 만들기
■ 내용 :
- 통역앱 개발을 위한 네이버 오픈API 소개
- 통역앱 안드로이드 화면 구성
- 안드로이드앱에서 각 API 호출 및 처리
- 통역앱 작동을 위한 애플리케이션 처리 노하우
■ 난이도 수준: 초급
■ 발표자 소개: 옥상훈 강사
- 現 표준프레임워크 오픈커뮤니티 에반젤리스트
- 現 네이버 랩스 D2에반젤리스트
- 現 네이버 개발자센터 & 오픈 API 담당
- 前 한국Adobe 시스템즈 컨설턴트
- 前 한국 자바 개발자협의회 회장
■ 일시: 2016. 5. 31(화) 19:00~21:00(120분)
■ 장소: 디캠프 6층 다목적홀 (선정릉역 위치)
Spring integration을 통해_살펴본_메시징_세계Wangeun Lee[스프링캠프 2015] Spring Integration을 통해 살펴본 메시징 세계 발표자료 입니다.
예제 소스 저장소는 프리젠테이션 안에 링크 걸어놨습니다.
감사합니다.
-------------------------------------------------------------------
우리는 늘 누군가와 소통(Communication)을 합니다. 소통을 통하여 누군가에게 일을 시키기도 하고 내가 일을 받기도 합니다. 애플리케이션도 마찬가지로 이기종간의 애플리케이션끼리 데이터로 소통을 하며 할 일을 서로 분산 처리할 상황이 발생하기도 합니다.
이런 분산 처리 이전에는 소통이 전제되어야 합니다. 애플리케이션 간 소통에 대한 고민은 선구자들에 의해 Enterprise Integration Patterns로 탄생되었으며 Spring에서도 그 패턴화의 추상화 일원으로 Spring Integration을 탄생시켰습니다.
이 강연에서는 Spring Integration을 통해 애플리케이션 간에 어떻게 쉽고 편하게(?) 소통을 할 수 있게 되었는지 살펴보며 예제와 사례를 통해 Spring Integration 입문에 도움을 주고자 합니다.
서버리스 앱 배포 자동화 (김필중, AWS 솔루션즈 아키텍트) :: AWS DevDay2018Amazon Web Services Korea운영하는 서비스의 전체 또는 일부분을 클라우드의 이점을 100% 얻으며 옮겨가기 위해 서버리스는 가장 좋은 선택입니다. 서버리스 환경은 개발자가 애플리케이션을 개발하고 배포하는 방식을 바꾸고 있습니다. 본 세션에서는 서버리스 개발자가 애플리케이션 수명주기 관리, CI/CD, 모니터링 및 진단에 사용할 수 있는 모범 사례를 살펴 봅니다. AWS CodePipeline, AWS CodeBuild 및 AWS CloudFormation을 사용하여 서버리스 애플리케이션을 자동으로 구축, 테스트 및 배포하는 CI/CD 파이프 라인을 구축하는 방법에 대해 설명합니다. 또한 기능 및 API의 여러 버전, 단계 및 환경을 만들기 위해 Lambda 및 API Gateway의 기본 제공 기능에 대해 설명합니다. 마지막으로, Amazon CloudWatch 및 AWS X-Ray로 람다 기능의 모니터링 및 진단에 대해 소개합니다.
API Design & Performance Optimization_ݺߣShare.pdfseojung19API First 전략이란 무엇인지, 이러한 전략을 사용하는 이유와 그 장단점을 알아봅니다.
Restful API 디자인의 주요 원칙과 방법을 알아봅니다.
API 성능 최적화 기법을 소개합니다.
Bytebytego (https://github.com/ByteByteGoHq/system-design-101)를 중심으로 하기 참고 자료를 공부하여 정리한 내용입니다.
- https://github.com/ByteByteGoHq/system-design-101
-https://swagger.io/resources/articles/adopting-an-api-first-approach/
-https://www.postman.com/api-first/
-https://cleancommit.io/blog/what-is-api-first-development-and-why-is-it-important/
-https://cloud.google.com/blog/products/application-development/api-design-why-you-
should-use-links-not-keys-to-represent-relationships-in-apis?hl=en
-https://abdulrwahab.medium.com/api-architecture-performance-best-practices-for-rest-
apis-1d4a5922dae1
-https://fastcampus.atlassian.net/wiki/spaces/engineering/pages/2562916385/API
-https://www.moesif.com/blog/technical/api-design/REST-API-Design-Best-Practices-for-
Parameters-and-Query-String-Usage/
-https://restfulapi.net/idempotent-rest-apis/
-https://docs.github.com/ko/rest/overview/rate-limits-for-the-rest-api?
apiVersion=2022-11-28
-https://blog.hubspot.com/website/api-rate-limit
-https://medium.com/@amr258144/connection-pooling-in-node-js-ea4421c72dc
-https://josipmisko.com/posts/rest-api-rate-limiting
-https://www.cloudflare.com/ko-kr/learning/security/api/what-is-api-security/
-https://nordicapis.com/understanding-5-types-of-web-api-pagination/
-https://blog.coupler.io/rest-api-pagination-request/
-https://nordicapis.com/restful-api-pagination-best-practices/
-https://dev.to/pragativerma18/unlocking-the-power-of-api-pagination-best-practices-and-
strategies-4b49
-https://dev.to/dashsaurabh/5-must-ask-questions-before-you-implement-caching-1md2
-https://twitter.com/progressivecod2/status/1737011079480475968?s=12
-https://www.prisma.io/dataguide/managing-databases/introduction-database-caching
-https://www.digitalocean.com/community/tutorials/nodejs-compression
이벤트 기반 분산 시스템을 향한 여정Arawn Park배민찬(https://www.baeminchan.com) 서비스의 백엔드 시스템 중 일부가 지난 1년간 어떤 고민과 아이디어, 결과물을 만들어냈는지 공유하려고 합니다. 발표 중 언급되는 용어나 도구에 대해 일반적인 정의나 간단한 설명은 언급되나 자세히 다루지 않습니다. 사용된 도구들로 어떻게 이벤트 기반 분산 시스템을 만들었는지에 대한 이야기가 중심입니다.
Cyworld AppStore Weekly Report 2012-03-06Cyworld AppStore (SK Communications)이번 주부터 새로운 Format의 싸이월드 앱스토어 Weekly Report를 선보입니다.
[금주 이슈]
- 삼일절, 개학 시즌 이슈로 전주 대비 트래픽 소폭 감소
- TOP 10 앱스의 설치수가 전주 대비 +34% 상승
- 에브리타운 대규모 업데이트 이후 매출 429% 상승
Cyworld AppStore Weekly Report 2012-02-14Cyworld AppStore (SK Communications)전주 대비 신규 사용자가 30% 증가하였으며, 앱스 설치수도 12% 상승하였습니다.
2/6 아이러브커피 이벤트와 2/8 버블점프 이벤트의 영향으로 신규 유입이 크게 증가한 것으로 보입니다.
Cyworld AppStore Weekly Report 2012-01-31Cyworld AppStore (SK Communications)설날 연휴의 영향으로 전체적으로 트래픽이 크게 감소 후 회복되는 추이를 보이는 와중 아쿠아스토리와의 크로스 프로모션으로 히어로시티의 트래픽이 크게 상승한 것이 눈에 뜹니다.
Korean social game market trend report (2011Q2) EngCyworld AppStore (SK Communications)The document analyzes trends in the Korea social game market in the second quarter of 2011. It finds that while Cyworld AppStore saw growth in the number of games launched in the first quarter, the second quarter saw a drop in new users and revenue. Total revenue was still the highest so far at $8 million USD. Demographics remained steady, with females making up the majority of users at 56% and most users being between 16-29 years old. Simulation games like farming and aquarium titles remained very popular and a major driver of revenue.
2. 1. 파라미터API
앱스 소개 페이지나 캔버스 페이지로 이동하는 외부링크 URL에 appParams
패러미터를 추가하여 개발사의 정한 임의의 값을 캔버스에서 앱스가 실행될
때 젂달 받을 수 있습니다.
유입경로, 이벤트 등에 활용될 수 있습니다.
패러미터 값의 형식은 { key1 : "value1", key2 : "value2" } 형식의 JSON Object
문자열이며, URL 인코딩 처리를 하여 젂달하여야 합니다.
앱스 소개 페이지 :
http://apps.cy.nate.com/Main/View?apps_no=xxxx&appParams={"target":"LIS
T"}
앱스 실행 페이지 :
http://apps.cy.nate.com/Apps/Canvas?apps_no=xxxx&appParams={"target":"
LIST“}
appParams 값은 반드시 URL 인코딩 처리를 하여야 합니다.
3. 파라미터API 예제
싞규 설치 사용자인 경우 { NC_CODE: "install" }
미니홈피 게시물에서 유입된 경우 { NC_REFERER: "minihp_photo" }
개발사가 직접 수정한 경우 { EVENT : “8988" }
<script>
var params = gadgets.views.getParams();
var nc_code= params["NC_CODE“];
var visit = params["NC_REFERER“];
var event = params["EVENT“];
</script>
4. 2. 사진첩API 고도화
1. 사진첩 게시물의 링크를 통해 앱스 실행 페이지로 이동 시 유입경로
(REFERER) 정보 전달
- 사짂첩 게시물에서 접근 시 플랫폼 기본 제공 패러미터로 { NC_REFERER :
"minihp_photo" } 값이 젂달됨
2. 사진첩 게시물의 링크 텍스트 변경 및 앱스 실행 페이지 연결 URL에 패러미
터 추가
- 사짂첩 게시물 등록 시 개발사가 직접 링크 텍스트를 변경할 수 있음.
-사짂첩 게시물에 등록된 링크를 통해 개발사가 직접 지정한 패러미터를 앱스
실행 페이지로 젂달할 수 있음.
var params = [];
params[opensocial.MediaItem.Field.CUSTOM_TITLE] = "{apps} 보물찾으러 가
볼까요?";
params[opensocial.MediaItem.Field.CUSTOM_PARAM] = '{"TYPE":"EVENT"}';
5. 3. 요청수락 API
캔버스에서 앱스를 play 하면서 내 일촌에게 특정 아이템이나 행위를 '요청'
보내는 API이고,
요청을 받은 유저는 앱스토어 메인에서 받은 요청을 수락/거젃.
요청을 보낼 때 적용하는 API는 기존의 requesetSendMessage 가 확장됩니다.
opensocial.Message.Field.TYPE을 기존의 'cyMessage(싸이쪽지)',
'nateonMessage(네이트온 쪽지)', 'nateonToast(네이트온 토스트창)' 외에
'Notification' 을 하나 더 추가 (opensocial spec에서 제공하고 있는 type)
그리고 해당 type을 사용하려는 경우에는 opensocial.Message.Field.URLS
method를 사용하여
젂달하려는 appParams를 붙인 캔버스 url을 같이 받습니다.
6. 요청수락 API 예제
function sendRewardRequest() {
var urlparams = {};
var params = [];
var url = encodeURIComponent('{"reward":"코인 1000"}');
params[opensocial.Message.Field.TITLE] = "예를들어 앱스제목";
params[opensocial.Message.Field.TYPE] =
opensocial.Message.Type.NOTIFICATION;
params[opensocial.Message.Field.URLS] =
"http://apps.cy.nate.com/Apps/Canvas?apps_no=2169&appParams=" + url;
var body = '보상 코인을 받으실래요?';
var message = opensocial.newMessage(body, params);
var recipient = new Array();
recipient[0] = "00000000";
opensocial.requestSendMessage(recipient, message, callback);
}
7. 4. 알림 API
1. 알림API 와 토스트 알림으로 구성
2. 알림API는 10분주기로 데이터를 앱
스토어에 보낸다
3. 토스트 알림은 사용자 설정에 따라
스캔을 하여 토스트 API를 호출.
토스트 예제(requestSendMessage)
params[opensocial.Message.Field.TYP
E] = opensocial.Message.Type.NAT
EON_TOAST;
8. 알림 API 개발사 서버측 프로세스
1. 알림API 개발사 서버측 프로세스
- 각 개발사에서 주기적(기본 10분부터~) 사용자들의 알림데이타를 스캔하
여 필요데이타만 앱스토어에 보낸다.
- 최근 3일갂 play 한 사용자들의 list를 저장한 뒤 그에 한해 스캔한다. 또는
특정 행동을 한 3일갂의 유저를 대상으로 한다(개발사에 따라)
- 사용자가 많거나 데이터가 많을 경우 알림의 경우의 수를 줄이고 알림 데
이터 계산을 위해 DB를 최적화하는 것이 관건.
- FTP 서버 , 계정발급 및 데이타포맷은 데브스퀘어에 가이드 예정
2. 기타안)
앱스토어에서 주기적으로 사용자마다 개발사 서버에 요청하여 해당 사용자
의 data를 return하는 방식.
문제점 - 앱스토어에서 각 개발사로 요청하는 방식이 실시갂 안정적인 서비스
가 보장 안되는 문제점 때문에 불가피하게 활용불가