갑을병정 산업구조에서 갑돌이의 잦은 요구사항 변경 통보를 받아보셨을 겁니다. 사람들에게 받은 스트레스를 풀려고 '그래! 난 개발자닌깐' 하고 자리에 앉아서 코드를 짜는데 반복적인 작업을 하다보면 ‘내가 이걸 왜 하고 있나’ 라는 생각까지 들기도 합니다.
안드로이드 작업을 하다보면 다음과 같은 반복적인 작업을 하는 것을 느꼈을 겁니다.
반복적인 보일러(Boiler)코드를 줄일 수 있는 오픈소스를 소개하고자 합니다.
This slide describes why OpenStack is Operating System (OS).
오픈스택을 왜 클라우드 운영체제라고 부르는지, 운영체제가 반드시 가지고 있어야 할 구성요소들을 오픈스택 구성요소들과 비교 분석함으로써 오픈스택을 알아보는 내용을 담고 있습니다.
OWASP에 대응할 수 있는 애플리케이션/웹 보안 솔루션 앱스캔(AppScan)의 Standard Editin에 대한 자료입니다.
AppScan의 다른 에디션인 Source Edition 에 대한 설명은 이쪽으로!
☞https://www.slideshare.net/eunoakcho/ibm-app-scan-source-edition
모티브 :
웹 페이지에서 일어나는 사용자의 단일 액션에 대응하는 일련의 프로세스를 하나의 클래스에서 구현한다. 일련의 프로세스는 사용자가 서버에 요청을 하기 위해서 클릭을 한다거나 입력을 하고 요청을 하고 그에 따른 서버 측에서 처리가 이루어지고 처리 결과를 다시 사용자의 브라우저에 통보를 하고 브라우저는 결과를 통해 사용자에게 결과를 인식 시키는 일련의 작업을 말합니다.
목적 및 장점 :
1. CRUD(Create, Read, Update, Delete) 인터랙션에 대한 처리와 시스템 장애에 대한 빠른 문제 파악과 대응
조건 :
1. XHR Wrapped클래스가 존재하여야 한다. (prototype.js, dojo, jQuery, etc)
2. XHR 오브젝트를 이용한 데이터 처리가 있어야 한다.
3. 요청을 위한 단계와 응답에 대한 처리 단계가 간단하고 명료해야 한다.
제약 :
1. 복잡한 UI 처리 및 CRUD이외의 처리가 다소 병행되어 진다면 클래스 혹은 객체가 무거워질 수 있다.
단점 :
1. 특정한 인터랙션 위한 패턴으로 확장(extend) 및 소스 재사용 면에서 용이하지 못함
갑을병정 산업구조에서 갑돌이의 잦은 요구사항 변경 통보를 받아보셨을 겁니다. 사람들에게 받은 스트레스를 풀려고 '그래! 난 개발자닌깐' 하고 자리에 앉아서 코드를 짜는데 반복적인 작업을 하다보면 ‘내가 이걸 왜 하고 있나’ 라는 생각까지 들기도 합니다.
안드로이드 작업을 하다보면 다음과 같은 반복적인 작업을 하는 것을 느꼈을 겁니다.
반복적인 보일러(Boiler)코드를 줄일 수 있는 오픈소스를 소개하고자 합니다.
This slide describes why OpenStack is Operating System (OS).
오픈스택을 왜 클라우드 운영체제라고 부르는지, 운영체제가 반드시 가지고 있어야 할 구성요소들을 오픈스택 구성요소들과 비교 분석함으로써 오픈스택을 알아보는 내용을 담고 있습니다.
OWASP에 대응할 수 있는 애플리케이션/웹 보안 솔루션 앱스캔(AppScan)의 Standard Editin에 대한 자료입니다.
AppScan의 다른 에디션인 Source Edition 에 대한 설명은 이쪽으로!
☞https://www.slideshare.net/eunoakcho/ibm-app-scan-source-edition
모티브 :
웹 페이지에서 일어나는 사용자의 단일 액션에 대응하는 일련의 프로세스를 하나의 클래스에서 구현한다. 일련의 프로세스는 사용자가 서버에 요청을 하기 위해서 클릭을 한다거나 입력을 하고 요청을 하고 그에 따른 서버 측에서 처리가 이루어지고 처리 결과를 다시 사용자의 브라우저에 통보를 하고 브라우저는 결과를 통해 사용자에게 결과를 인식 시키는 일련의 작업을 말합니다.
목적 및 장점 :
1. CRUD(Create, Read, Update, Delete) 인터랙션에 대한 처리와 시스템 장애에 대한 빠른 문제 파악과 대응
조건 :
1. XHR Wrapped클래스가 존재하여야 한다. (prototype.js, dojo, jQuery, etc)
2. XHR 오브젝트를 이용한 데이터 처리가 있어야 한다.
3. 요청을 위한 단계와 응답에 대한 처리 단계가 간단하고 명료해야 한다.
제약 :
1. 복잡한 UI 처리 및 CRUD이외의 처리가 다소 병행되어 진다면 클래스 혹은 객체가 무거워질 수 있다.
단점 :
1. 특정한 인터랙션 위한 패턴으로 확장(extend) 및 소스 재사용 면에서 용이하지 못함
효율적 모바일 서비스를 위한 AWS 빌딩블럭 - API Gateway 및 Device Farm을 중심으로 (윤석찬, AWS 테크에반젤리스트)Amazon Web Services Korea
AWS 월간 웨비나 8월 녹화 동영상은 아래 링크를 참고하십시오.
https://aws.amazon.com/ko/blogs/korea/category/webinar/
---
모바일 시장이 확대됨에 따라 적은 비용으로 더 빠르게 모바일 사용자를 대상으로 한 모바일 앱 및 웹 서비스를 개발하는 것이 점차 더 중요해지고 있습니다.
이 강연에서는 AWS가 제공하는 Amazon Cognito, Mobile Analytics 및 SNS 등 모바일 서비스들과 SDK를 통해 더 빠르게 모바일 서비스를 개발해 사용자의 요구 사항에 대응하고 확장성을 갖춘 모바일 앱을 만드는 방법에 대해알아봅니다.
또한, AWS Lambda라는 클라우드 함수를 이용한 손쉬운 비지니스 로직 구현, 새로 나온 Amazon DeviceFarm을 통한 자동화된 앱 테스트 및 Amazon API Gateway를 통한 모바일 백엔드 구축 방법 등 서버 없이도 효율적인 모바일 서비스 아키텍처를 구성하는 방법을 알려드립니다
6. Context는
앞의 예시의 속성 정보처럼
어떤 Application, Activity 인가를 구별해주는 역할을 한다.
Window 속성 정보 비교에 대한 출처 : 샤핀님의 블로그( http://zxcv5500.tistory.com/258 )
7. Context
비유를 봤으니 정석인 개발자 사이트에 나온 내용을 보자.
개발자 사이트 Context : http://developer.android.com/intl/ko/reference/android/content/Context.html
번역 참고 : 아라비안 나이트님의 블로그( http://arabiannight.tistory.com/entry/272 )
Class Overview
Interface to global information about an application environment.
This is an abstract class whose implementation is provided by the Android system.
It allows access to application-specific resources and classes, as well as up-calls for application-level
operations such as launching activities, broadcasting and receiving intents, etc.
어플리케이션 환경에 관한 글로벌 정보를 접근하기 위한 인터페이스.
Abstract 클래스이며 실재 구현은 안드로이드 시스템에 의해 제공된다.
Context 를 통해, 어플리케이션에 특화된 리소스나 클래스에 접근할 수 있을 뿐만 아니라,
추가적으로, 어플리케이션 레벨의 작업 - Activity 실행, Intent 브로드캐스팅, Intent 수신 등을
수행하기 위한 API 를 호출 할 수도 있다.
8. Context
비유를 봤으니 정석인 개발자 사이트에 나온 내용을 보자.
개발자 사이트 Context : http://developer.android.com/intl/ko/reference/android/content/Context.html
번역 참고 : 아라비안 나이트님의 블로그( http://arabiannight.tistory.com/entry/272 )
Class Overview
Interface to global information about an application environment.
This is an abstract class whose implementation is provided by the Android system.
It allows access to application-specific resources and classes, as well as up-calls for application-level
operations such as launching activities, broadcasting and receiving intents, etc.
어플리케이션 환경에 관한 글로벌 정보를 접근하기 위한 인터페이스.
Abstract 클래스이며 실재 구현은 안드로이드 시스템에 의해 제공된다.
Context 를 통해, 어플리케이션에 특화된 리소스나 클래스에 접근할 수 있을 뿐만 아니라,
추가적으로, 어플리케이션 레벨의 작업 - Activity 실행, Intent 브로드캐스팅, Intent 수신 등을
수행하기 위한 API 를 호출 할 수도 있다.
10. 출처 : 아라비안 나이트님의 블로그( http://arabiannight.tistory.com/entry/272 )
프로세스
커널(OS)
Application
일반적인 운영체제
프로세스와 어플리케이션이 긴밀한 관계가 있고
커널이 전체적인 관리를 담당한다.
별다른 매개체 없이 시스템 함수를 호출하는 등의 작업을 할 수 있다.
11. 출처 : 아라비안 나이트님의 블로그( http://arabiannight.tistory.com/entry/272 )
프로세스
커널(OS)
Application
일반적인 운영체제
프로세스와 어플리케이션이 긴밀한 관계가 있고
커널이 전체적인 관리를 담당한다.
별다른 매개체 없이 시스템 함수를 호출하는 등의 작업을 할 수 있다.
12. 프로세스
커널(OS)
Application
안드로이드 운영체제
프로세스와 어플리케이션이 따로 있다.
그렇기 때문에 어플리케이션 관련 정보의 관리는
커널이 아닌
ActivityManagerServic 라는 곳에서 어플리케이션을 관리한다.
출처 : 아라비안 나이트님의 블로그( http://arabiannight.tistory.com/entry/272 )
13. 프로세스
커널(OS)
Application
안드로이드 운영체제
프로세스와 어플리케이션이 따로 있다.
그렇기 때문에 어플리케이션 관련 정보의 관리는
커널이 아닌
ActivityManagerServic 라는 곳에서 어플리케이션을 관리한다.
출처 : 아라비안 나이트님의 블로그( http://arabiannight.tistory.com/entry/272 )
14. Context는
자신이 어떤 어플리케이션을 나타내고 있는지 알려주는 ID 역할
ActivityManagerService 에 접근할 수 있도록 하는 통로 역할
출처 : 아라비안 나이트님의 블로그( http://arabiannight.tistory.com/entry/272 )
15. 다시 비유를 해보자.
일반 OS 에서 어플리케이션은 곧 Process 이다.
특정 어플리케이션이 OS 에게 내가 어떤 Process 인지만 알려주면 어플리케이션 관련된
정보를 얼마든지 획득 할 수 있습니다.
이른바 자신의 존재 자체가 자신임을 증명해주는 '지문인식' 혹은 '홍채인식' 등의 '생체인식' 과
비슷한 개념이기 때문에 Context 와 같은 애매한 중간 매개체가 존재할 이유가 없습니다.
하지만 안드로이드에서는 '생체인식' 보다는 'ID카드' 를 통한 보안 시스템과 유사한 구조입니다.
특정 어플리케이션이 자신이 본인임을 확인 받을 수 있는 방법은 자신이 작동중인 Process 를
보여주는 것이 아니라, 자신이 건네 받은 ID카드를 제시하는 것 입니다.
이 때 ID카드의 역할을 수행하는 것이 바로 Context 이고, 당연히 이 카드는 위변조가 가능하기 때문에,
자신의 권한을 제 3의 어플리케이션에게 넘겨주는 PendingIntent와 같은 기능도 가능해집니다.
출처 : 아라비안 나이트님의 블로그( http://arabiannight.tistory.com/entry/272 )
17. Application Context
Activity Context
Service Context
BroadcastReceiver Context
Context 는 어플리케이션이 시작될 때는 물론이요,
어플리케이션 컴포넌트들이 생성될 때 마다 태어난다.
물론, 새롭게 생성되는 Context 들이 부모와 완전히
독립되어 있는 존재는 아니고 '거의' 비슷한 내용을 담고 있습니다.
출처 : 아라비안 나이트님의 블로그( http://arabiannight.tistory.com/entry/272 )
ContentProvider Context