8월, 2017의 게시물 표시

[오픈 API] 앱 다운로드 순위를 가져오자 1부 (AppApnnie Api)

이미지
여러분들이 만드신 앱 들의 다운로드 수는 어떻게 관리하고 계신가요?

ios는 아이튠스커넥터, andorid는 콘솔 페이지에서 각각 정보를 얻고 계실꺼예요.
앱애니 라는 전세계에서 가장많이 사용하는 앱통계 사이트를 이용하여, 다운로드 수를 가져올수 있습니다.

이번 주제는 총 3부로 나눠보았습니다.
[오픈 API] 앱 다운로드 순위를 가져오자 1부 (AppApnnie Api)[오픈 API] 앱 다운로드 순위를 가져오자 2부 (모바일 앱 설계)[오픈 API] 앱 다운로드 순위를 가져오자 3부 (모바일 앱 구현)

앱애니(https://www.appannie.com/kr)는 모바일 앱의 다운로드, 수익, 등급, 사용량, 검색어 등에 대한 소비자 및 경쟁 정보를 생성하여 앱 마케팅 지출 최적화, 파트너 및 투자 전략 및 제품 로드맵 우선순위 결정에 대한 의사 결정을 지원하는 사이트 입니다.
출처 : 위키피디아
앱 애니에서 지원하는 API는 다음과 같습니다. 우리는 여기서 App Sales 에서 앱 다운로드 수를 가져오는 API를 호출해야 합니다.
Account Connection SalesApp SalesApp RanksApp ReviewsApp RatingsApp FeaturesApp DetailsPlatform ListCountry ListCategory ListCurrencyAccount Connections ListAccount Connection App ListApp IAP ListShared Apps List 우선 AppAnnie  Api를 사용하기 위해서는 아래의 절차가 필요합니다.

1. 회원가입
2. 애플, 안드로이드 스토어 계정 연동
3. API 발급
4. API 문서를 통해 API요청

회원가입 후 계정연결 페이지로 가서, 각 스토어를 연결합니다.

그후 좌측 메뉴에서 API 키를 눌러 APIM를 발급을 받습니다.

이제 준비는 끝났습니다. 아래의 링크로 접속합니다.
https://support.appannie.com/hc/en-us/categories/202…

android 데이터바인딩 활용(1) - include, Adapter

이미지
지난 포스트에 데이터바인딩을 사용하는 방법을 알아보았습니다.

오늘은 추가적으로 활용 할수 있는 부분을 알아보도록 하겠습니다.
xml 레이아웃을 include해서 사용할 경우 참조 방법과
RecyclerView에서 사용 하는 법을  간단한 예제를 통해서 구현해 보겠습니다.

<!--item_sample.xml--><layoutxmlns:android="http://schemas.android.com/apk/res/android"><RelativeLayoutandroid:layout_width="match_parent"android:layout_height="wrap_content"><TextViewandroid:id="@+id/text_Item"android:layout_width="match_parent"android:layout_height="50dp"android:gravity="center"android:text="Text Item"/></RelativeLayout></layout> 우선 include와 adapter에서 사용할 TextView를 가지고 있는 레이아웃 파일을 추가 하였습니다.<includeandroid:id="@+id/inc_Item" layout="@layout/item_sample"/> 메인 레이아웃에 좀전에 만들었던 레이아웃을 include 하였습니다.여기서 중요한 부분은 iclude한 부분에 id를 지정한 것 입니다. 기존에는 include하면include한 레이아웃에서 findeViewById를 통해 include여부와 상관없이 사용하였습니다.하지만 데이터바인딩에서는 해당 id값을 가지고 객체가 생성되어 사용 할수 있습니다. 위의 사진처럼 incItem이란 객체를 통해 include…

[부트스트랩] 레이아웃 #2 – Media Object

이미지
미디어 객체 (Media Object) 예제 (exaple)   미디어 객체는  이미지/비디오/오디오 같은 객체가 기존 객체를 둘러싸지 않는 콘텐츠와 나란히 배치되거나  복잡하고 반복적인 구성 요소를 만드는데 도움을 줍니다. 또한 flexbox 덕분에 두 가지 필수 클래스만으로 작업을 수행 할 수 있습니다. 콘텐츠를 둘러싼 .media 및 .media-body라는 두 가지 클래스 만 있으면됩니다.
아래는 단일 미디어 객체의 예입니다. 선택적 패딩 및 마진은 공간 유틸리티를 통해 제어 할 수 있습니다.

<div class="media"><img class="d-flex mr-3" src="..." alt="Generic placeholder image"><div class="media-body"><h5 class="mt-0">Media heading</h5> Cras sit amet nibh libero, in gravida nulla. Nulla vel metus scelerisque ante sollicitudin. Cras purus odio, vestibulum in vulputate at, tempus viverra turpis. Fusce condimentum nunc ac nisi vulputate fringilla. Donec lacinia congue felis in faucibus.</div></div> 중첩 (Nesting) 미디어 객체는 무한대로 중첩 될 수 있지만, 어느 시점에서 중단하는 것이 좋습니다. 상위 미디어 객체의.media-body 내에 중첩 된.media를 배치합니다.

<div class="media"><img class="d-flex mr-3" src="..." alt=…

android studio에서 VCS 불필요한 파일 제외 시키기

이미지
android 프로젝트 형상관리 위하여 svn, git을 사용하다 보면 프로젝트 빌드시에 생성되는

파일들로 인하여 conflict로 고생한 흔히 있을 것 입니다.




이클립스에서 개발 하던 시절에도 svn, git을 사용할때 빌드시 생성되는 파일들은
목록에서
제거하기 위하여 여러가지 작업을 해주었던 기억이 납니다.


android studio에서도 이런 파일들을 대상 목록에서 제외 시킬수 있습니다.




설정하는 방법을 하나씩 따라가보도록 하겠습니다.




Mac : 좌측 상단의 Android Studio -> Prefrences... -> Version Control -> Ignored Files

Window : File -> Settings -> Version Control -> Ignored File

Version Control메뉴 선택후 하단 추가(+)버튼을 선택해 주세요.




제외시킬 파일, 폴더, 마스크를 추가해주시면 됩니다.

Ignore specified file : 파일 설정


Ignore all files matching : 폴더 설정

Ignore all files matching : 마스크설정(해당 텍스트가 해당되어 있는 파일)



File: *.iws (select Ignore all files matching option to add this pattern)

File:.idea/workspace.xml

File: .gradle

Directory: .idea/libraries/

Directory: build/

File: local.properties

Directory: app/build/ (this must be for every module your project has)

File: *.iml

File: .DS_Store

설정할 값 입니다.
 
 



위와 같이 설정을 해주시면 끝입니다.

svn, git등 Version Control에서 사용 가능하니 유용하게 활용 할수 있습니다…

[AWS] Windows 에서 Linux 인스턴스 연결을 위한 PuTTY 사용방법

이미지
AWS 콘솔을 통하여 EC2 인스턴스를 생성하게 되면 SSH 접속을 위한 Key pair 를 사용하게 됩니다.
Namsan.pem 과 같이 pem 형식의 파일을 다운로드 받을 수 있습니다.

Mac 사용자의 경우 pem 파일을 이용해  Linux 인스턴스에 접속이 가능하지만

Windows 사용자의 경우에는 PuTTy 에서 PEM 파일을 지원하지 않기 때문에
별도의 PPK 파일을 생성하여야만 Linux 인스턴스에 접속이 가능합니다.


필요한 프로그램을 다운로드 하기 위해 puTTy 다운로드 페이지로 이동합니다.
https://www.chiark.greenend.org.uk/~sgtatham/putty/

해당페이지에서  puttygen.exe 파일과  putty.exe 파일을 다운로드 합니다.

1. puttygen 을 통한 PPK 파일 생성
다운로드한 puyttygen 을 실행한 화면 입니다.




Conversions – import key 메뉴를 선택합니다.




EC2 인스턴스 생성시 다운로드한 PEM 파일을 선택 합니다.
아래와 같이 Key 파일이 import 됩니다.



Type 을 SSH-2 RSA 로 선택한 후
Save private key 버튼을 클릭합니다.





파일생성시 암호문을 설정하지 않았다는 경고창이 팝업되지만
“예” 를 선택하고 넘어가면 됩니다.





탐색기에서 생성할 키파일을 입력하고 “저장” 합니다.


이제 putty 접속시 사용할 PPK 파일 생성이 완료 되었습니다.

이제 Linux 인스턴스에 접속해 보겠습니다.


2. putty 를 통한 인스턴스 접속
PPK 생성이 완료되면 이제 putty 를 통해 인스턴스 접속이 가능합니다.

putty.exe 를 실행합니다.



Host Name 에  username@public_Ip   형식으로 이름을 입력합니다.

이때 인스턴스 생성시 설정한 AMI 별로 아래와  같은 사용자 이름이 설정됩니다.

Amazon Linux AMI의 경우 사용자 이름은 ec2-userRHEL AMI의 경우 사용자 이름은 ec2-user 또는 ro…

[AWS] Bastion Host 를 활용한 SSH 접근통제 #2

이미지
지난 포스팅에서 Bastion Host 를 구성하여 WebServer SSH 에 접근권한을 제어하는 방법에 대하여 알아 보았습니다.

지난포스팅 보러가기 -> [AWS] Bastion Host 를 활용한 SSH 접근통제 #1 


하지만 지난시간에 적용한 구성은 보안상으로 문제점이 발생합니다.

BastionHost 와 WebServer 가 동일한 인스턴스 접속Key를 사용하기 때문에
BastionHost 가 보안 취약점에 의해 외부에 노출 되는경우  WebServer 도 동시에 영향을 미치게 됩니다.

< 동일한 Instance 접속키 사용에 따라 보안 취약점 발생>

이러한 보안 취약점 해결을 위하여 이번 포스팅에서는
아래 구성과 같이 instance 접속키를 별도로 구성해 보도록 하겠습니다.

<instance 접속키 분리를 통해 보약취약점 제거>

우선 AWS 콘솔로 이동해서 신규 적용할 Key 를 생성하도록 하겠습니다.
EC2 메뉴 좌측에서 Key Pairs 를 선택합니다.

기존에 생성한 인스턴스 키 목록이 표출 됩니다.

Create Key Pair 를 클릭하여 신규 Key 를 생성 하겠습니다.

Web Server 에 사용할 Key 이름을 설정하고 Create 를 선택 합니다.
“web” 이라는 명칭으로 키를 생성해 보겠습니다.

키가 생성되면 자동으로 web.pem 파일이 다운로드 됩니다.

이제 생성된 key 파일을 이용해 Instance 를 새로 생성 하도록 하겠습니다.
기존 서비스가 운영 중인 경우 동일한 instance 를 활용하기 위해서는 AMI 백업을 진행하고
해다 이미지를 활용해 신규 Instance 를 생성 합니다.

생성 하고자 하는 인스턴스를 선택한 후  image > Create image 메뉴를 선택합니다.


생성할 image 이름을 등록합니다.
운영중인 서버라면 “No reboot” 옵션에 체크해야 인스턴스가 재부팅 되지 않습니다.



이제 생성된 이미지를 활용해서 새로운 인스턴스를 생성하도록 하…

[부트스트랩] 레이아웃 #1 - Grid

이미지
개요
 이번에는 부트스트랩에서 사용하는 CSS에 대해 알아 보겠습니다. 부트스트랩의 가장 큰 장점은 웹 표준 사이트를 만들때 필요한 CSS가 미리 정의되어 있기 때문에 디자이너나 개발자는 정의되어 있는 CSS를 가져와서 사용만하면 된다는 것입니다. 미리 정의된 기본 CSS 스타일을 파악하게 되면, 웹사이트를 보다 편리하고 빠르게 만들 수 있습니다.

HTML5 doctype  부트스트랩은 HTML5 기반의 HTML 엘레먼트와 CSS 속성을 이용합니다. 새로운 HTML 작성시 doctype을 지정해야 합니다.

<!DOCTYPE html><html lang="ko"> ... </html>

모바일 퍼스트 부트스트랩2 에서 모바일 친화적인 스타일을 프레임워크의 중요한 부분으로 추가했으며, 부트스트랩3 에서는 처음 시작부터 모바일 친화적으로 다시 만들어졌습니다.  말하자면, 부트스트랩은 모바일 First입니다. 반응형 웹페이지를 위한 확대/축소를 위해, <head> 에 viewport 메타태그를 추가하면됩니다.

<meta name="viewport" content="width=device-width, initial-scale=1">
viewport 메타태그에 user-scalable=no 속성을 추가하면 모바일 기기에서 확대/축소 기능을 끌 수 있습니다. 확대/축소를 끈다는 것은, 사용자들이 스크롤만 가지고 화면을 탐색할 수 있습니다.

<meta name="viewport" content="width=device-width, initial-scale=1, maximum-scale=1, user-scalable=no">

타이포그래피 및 링크 기본적으로 부트스트랩은 영문 기준으로 제작되며, 기본 전역적인 표시로, 타이포그래피, 폰트 및 링크 스타일등을 정의 할 수 있습니다.
body 에서 background-co…