태그

페이지

2018년 5월 20일 일요일

지난 2년간 당산 아파트 가격 변화 추이 (2016년 1월~)

 다음은 지난 2년간 당산역 근처 아파트의 소형 평수 추이입니다.




 2년간 눈여겨 봤던 몇몇 아파트에 대해서 위와 같이 실거래가 위주로 정리해 보았습니다.
(주로 5층 이상의 국토교통부 실거래가 시스템을 사용하여 확인하였습니다.)

 바로 눈에 띄는 경향이 있는데 강변레미안 아파트던지 당산역 레미안 아파트 던지 가리지 않고 삼성 아파트가 2년 동안 50% 오른 것을 확인할 수 있었습니다.

어플 개발 - 화면 전환 하기(intent 함수 사용하기)

 어플을 개발하기 위해서는 무슨 flow로 진행 될지는 모르지만 대부분은 모든 동작을 한 화면 이내에서 처리할 수가 없을 겁니다. 그래서 이번에는 이전에 실습했었던 버튼을 이용하여 화면 간 전환하는 방법에 대해서 알아보고자 합니다.

  일단 다음과 같이 간단한 구성으로 진행해보고자 합니다.



 우선 어플을 실행시키면 이전에 만들어 두었던 button1 을 포함한 간단한 화면을 출력하게끔 하고 button1을 눌렀을 때 이전과 같이 text 문구가 뜨는 것이 아닌 사용자가 만들어둔 2nd 화면을 출력하게 만듭니다.

 이 2nd화면에서도 버튼2를 만들어 놓고 사용자가 버튼2를 누르게 되면 원래의 처음 화면으로 돌아가게끔 만들어 보도록 하겠습니다.

 첫번째 실행화면을 만드는 것과 버튼을 만드는 것은 이전 과정을 통해 만들어 두었을 것이므로 바로 2nd 화면용으로 사용할 화면을 만드는 것 부터 시작해 보도록 하겠습니다.

 2nd화면을 만드는 것은 res>layout 에서 오른쪽으로 클릭한 뒤, New>Layout resource file을 선택한 뒤 원하는 file name을 적어두면 간단하게 생성됩니다.

 이후, 다음과 같이 아무것도 없는 빈화면에 오로지 2nd page! 란 글자만 출력하고 돌아갈 RETURN 버튼만 만들었습니다.

<?xml version="1.0" encoding="utf-8"?>
<android.support.constraint.ConstraintLayout xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:app="http://schemas.android.com/apk/res-auto"
    xmlns:tools="http://schemas.android.com/tools"
    android:layout_width="match_parent"
    android:layout_height="match_parent">

    <TextView
        android:id="@+id/textView"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:text="2nd Page!"
        app:layout_constraintBottom_toBottomOf="parent"
        app:layout_constraintEnd_toEndOf="parent"
        app:layout_constraintStart_toStartOf="parent"
        app:layout_constraintTop_toTopOf="parent" />

    <Button
        android:id="@+id/buttonR"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_marginBottom="31dp"
        android:layout_marginEnd="32dp"
        android:text="return"
        app:layout_constraintBottom_toBottomOf="parent"
        app:layout_constraintEnd_toEndOf="parent" />

</android.support.constraint.ConstraintLayout>

 여기까지 완료하였으면 이제 서로 전환할 두가지 화면을 만들게 된 것입니다.

 이제 버튼에 대한 동작을 수행할 부분을 적을 수 있는 java 폴더를 건드려 보도록 하겠습니다.

 우선은 기존에 만들어져 있는 MainActivity.java 파일을 다음과 같이 수정하도록 하였습니다.

public class MainActivity extends AppCompatActivity {
    Button button_t1;        //첫번째 화면의 button을 Button 변수로 설정합니다.

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);

        Button_act b1 = new Button_act();         // Button_act() 함수 처리 결과를  b1에 넣어줍니다.

        button_t1 = (Button) findViewById(R.id.button1) ; //여기서 findViewById는 버튼 종류의 id로 View를 찾는 역할을 합니다.
        button_t1.setOnClickListener(b1); //button1이 클릭 되었을 때 onClik 안의 동작이 시행되도록 합니다.
    }

    class Button_act implements View.OnClickListener{  //Button_act는 View class 안에 OnClickListener 인터페이스를 구현한 클래스로 만들어줍니다.
        public void onClick(View v){
            Intent intent1 = new Intent(getApplicationContext(), ShowCalender.class); //Intent 클래스를 이용해서 이동할 activity class 명을 적어줍니다. (저는 여기서 ShowCalender라는 2nd 실행화면 명을 만들었기 때문에 ShowCalender.class 를 적어주었습니다.)
            startActivity(intent1); //안드로이드 운영체제에 intent1의 activity 전환, 즉, 2nd 화면으로 전환하도록 실행합니다.
        }
    }
}

 그러면 이제 2nd 실행화면(ShowCalender)에서는 어떤 동작을 할 지에 대해서 작성해 주면 되는데 우선 app>java 에서 New>Java Class 를 통해 이전에 만들고자 했던 2nd 실행화면 class 명을 적어줍니다.

 그럼 해당파일.java 가 생성되고 다음과 같이 이전과 같이 버튼이 클릭되었을 때 동작하게끔 onClick 메소드를 이용하고 대신 그 안에 finish(); 를 넣어주어 현재 실행중인 Activity를 종료하게 만들어주면 이전 Activity로 돌아가게 됩니다.

 이 모든 과정을 마친 후에 app>manifests>AndroidManifest.xml 로 들어가서 다음과 같이         <activity android:name=".ShowCalender">

        </activity>

 라고 새로 만든 2nd 화면의 이름을 써주면 해당 activity를 안드로이드 운영체제가 인식하게 됩니다.

 이 과정을 마치면 정상적으로 버튼을 누를 때마다 화면이 전환되는 어플의 모습을 확인할 수 있을 것입니다.


2018년 5월 15일 화요일

추천 어플- 더퀴즈라이브 (퀴즈어플/수익형) & 이마트 이벤트(하트 5개 받기)

 본인이 전반적인 상식에 능하시다면...

 평소에 손해보지 않으면서도 내 운을 시험해보고 싶으시다면...

 간간이 비는 시간에 힘들이지 않고 돈을 벌 수 있다면...

 더퀴즈라이브 라는 어플을 추천 드립니다.

 2018년 4월 30일 기준으로 iOS App Store(앱스토어)에서 현재 엔터테인먼트 부문 무료 앱 30위에 위치하고 있습니다. (비슷한 퀴즈 어플인 잼라이브-jam Live 의 경우는 2위를 차지하고 있습니다.)


 비슷한 류의 여러 퀴즈 어플이 있음에도 불구하고 이 더퀴즈라이브라는 어플을 추천하는 이유는 다음과 같습니다.

 1. 인지도가 높은 MC 들의 신속하고 재치있는 진행

 더퀴즈라이브의 경우에는 3명의 고정 MC가 돌아가면서 진행을 하게 됩니다.

 첫번째는 능청스럽고 개그감이 넘치는 정성호.


 항상 시청자 들의 반응에 휘둘리지 않고 자신의 개성대로 진행하면서 서로가 좋은 분위기로 즐길 수 있게끔 넉살과 함께 개그로 승화해 내곤 합니다.

 두번째는 자칭 퀴요미와 슬기루를 연발하는 박슬기.


 다년간의 리포터 역할 때문인지 퀴즈 진행 방법이나 속도도 월등하고 더군다나 간간이 실시간 반응들도 확인하며 데리고 놀아주는 여유까지....개인적으로 생각하기에는 최고가 아닐까 싶습니다.

 세번째로 어느샌가 더퀴즈라이브 팬들 사이에서 퀴즈여신으로 추앙하고 있는 신고은.



 뮤지컬 배우 출신답게 틈만 나면 즉흥적으로 노래를 불러주며 흥이 넘치는 진행을 하기 때문에 보는 사람들도 흥겹게 퀴즈를 풀게끔 만들어 줍니다.

2. 관대한 난이도와 문제를 풀 수 있는 기회 제공

 더퀴즈라이브에서는 한 번의 퀴즈 세트 당 한 번의 하트 사용이 가능해서 10라운드 까지 가는 문제 중에 중간에 틀릴 경우 부활이 가능합니다. 하트가 없을 경우에는 부활을 하지 못하지만 문제를 맞출 경우 한 문제를 맞출때마다 10%씩의 하트게이지가 쌓이게 되서 10문제만 맞추면 금새 하트 하나를 다시 모을 수 있습니다.

 또한, 저녁 9시 30분에 열리는 더퀴즈라이브 문제에서는 중간에 더퀴즈초이스 라는 라운드가 있어서 사람이 많이 몰리는 쪽을 선택해야 이길 수 있는 문제도 있는데 이 문제를 맞추게 되면 30%의 게이지가 한 번에 차는 등, 하트가 없는 사람들에게 금새 다시 하트를 채울 수 있게끔 기회를 제공하고 있습니다.

 그리고 문제가 틀리는 입장에서 논란의 여지가 없는 문제를 잘 선정해 주며 해설해주는 MC들도 해당 해명에 대해서도 납득이 잘 되도록 설명을 진행해 주고 있어서 억울하다던가 이런 느낌이 들지 않도록 해주고 있습니다. (하나 틀리면 하나 배워간다는 느낌으로..)


3.  여러가지 수익 획득 가능성과 현금화 가능한 상품

 더퀴즈라이브에서는 메인인 퀴즈를 하루에 두 번이상 진행하고 있습니다. 평일에는 12시40분, 9시30분과 오후 4시~6시 사이에 진행되는 게릴라 덕길이 이벤트까지.

 또한 매 시간마다 정해져있는 작은 퀴즈 이벤트 들이 있고, 일요일 저녁에는 최후의 한명이 나올때까지 계속해서 퀴즈를 내는 서바이벌 진행도 있습니다.(이때는 무려 상금이 300만원 이라서 1위에 당첨되면 한방에 300만원이 획득 가능입니다.)

 또한, 지금은 종료되었지만 문제를 맞춘 사람들에게 추첨으로 100명씩 스타벅스 상품권을 주던 스페셜 라운드도 진행을 하고 어플을 시작할 때 추천인을 입력하면 추천한 사람이나 추천받은 사람에게 동시에 2000 원씩 지급을 하고 있습니다.(25명만 추천하면..바로...)

 아...그리고 이렇게 모은 돈은 오만(50000)원 이상일 때 출금이 가능하다고 합니다.

 이러한 장점이 있는 더퀴즈라이브의 실행화면은 다음과 같습니다.



 어플을 실행하면 언제 다음 퀴즈가 나오는 시간인지 알려주고 해당 시간이 되면 노란 색의 라이브 대기중이라는 버튼이 시작으로 바뀌게 됩니다. (아...퀴즈에 열중하느라 진행화면은 못 찍어 왔네요...)
 그리고 적립캐시를 누르게 되면 다음과 같이 적립내역 등이 나오게 됩니다.


 우승은 한 번도 못하고 친구추천 2명으로 4000 캐시, 팝콘 퀴즈로 10캐시 쌓여 있는 것이 확인 가능하네요. 이 화면에서 캐시 사용하기 버튼을 누르면 위에서 말씀 드렸던 것처럼 50000원 이상일 때 출금으로 진행할 수 있습니다. (언젠가 5만원이 넘게 되면 관련 스샷을....ㅠ)

 그러면 다음과 같이 설치링크와 더퀴즈라이브 추천인 코드 남기면서 이상 글 마칩니다.



더퀴즈라이브 추천인 코드: 651xj2



5/13 이벤트 소식 추가

5/14 ~ 5/20 매일 밤 10시에 이마트(E-mart) 에서 더퀴즈라이브와 콜라보 이벤트를 진행한다고 합니다.

우선 하트 5개를 지급 받는 방법은 아래 링크 타고
이마트 어플 사이트에 들어가서 본인의 추천코드를 입력하면 하트 5개 획득이 가능합니다.
(최근 난이도가 어려워 지면서 하트가 많이 필요했었는데 단비 같은 소식인데요.
받으려면 이마트 or SSG.com or 신세계포인트 통합회원 아이디가 필요합니다.
없으신 분들은 간편 본인 인증을 통해서도 가능합니다.)

또한, 다음과 같이 추가 퀴즈가 제공된다고 합니다.

상금: 100만원 (일요일 200만원)
       이마트 3000원 할인 쿠폰
       한우 상품권

일시: 매일 저녁 10시

요일별 퀴즈 테마:

월요일: 이마트 + 노브랜드
화요일: 이마트 + 트레이더스
수요일: 이마트 + 이마트몰
목요일: 이마트 + 피코크 + 국산의 힘
금요일: 이마트 + 이마터즈 + 몰리스 + 토이킹덤
토요일: 이마트 + 일렉트로마트 + 이마트 스마트 카트와 로봇
일요일: 이마트앱 참조

자세한 사항은 아래 링크로 들어가시면 볼 수 있습니다. (모바일 전용 입니다.)

https://emartapp.emart.com/event/detail/theQuizLiveEvent.do













2018년 5월 13일 일요일

어플 개발 - 버튼 이벤트 (button event) 만들기

 이제까지 보여주는 화면(출력하는 화면)을 만들었다면 지금 부터는 사용자의 입력에 반응하는 기능, 즉, 이벤트를 체크하고 처리하는 기능에 대해서 알아보고자 합니다.

 이번에는 기존에 사용해왔던 res>>layout>>activity_main.xml 이 아닌 java 경로 밑에 있는 MainActivity에서 소스를 수정해 주어야 합니다.

우선 layout에서 만들었던 버튼(button)에 다음과 같이 id를 부여해 줍니다. 저는 button1 이라는 id를 사용하였고, 이 id는 쓰기 원하는 아무 id를 넣어주면 됩니다.

android:id="@+id/button1"

그리고 다음과 같은 소스를 MainActivity 에서 작성해 주었습니다.

public class MainActivity extends AppCompatActivity {
    Button button_t1;


    @Override

    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);

        Button_act b1 = new Button_act();

        button_t1 = (Button) findViewById(R.id.button1) ;
        button_t1.setOnClickListener(b1);
    }

    class Button_act implements View.OnClickListener{
        public void onClick(View v){
            Toast.makeText(MainActivity.this, "Button1 Click!"
                    , Toast.LENGTH_SHORT).show();
        }
    }
}

 간단한 설명을 하자면 우선 MainActivity 내에 Button 에 해당하는 임의의 변수 button_t1을 만들어 줍니다.

 이후, 인터페이스(Interface)를 구현한 클래스(class)를 만들어야 합니다.

 일단 미리 만들어 놓은 button1 이 눌러젔을 때 Button1이 클릭 되었음을 알릴 수 있음을 확인하기 위해 Toast class 를 사용하였습니다. 이 Toast class는 화면에 잠시 동안 메시지를 띄울 수 있습니다.

 그래서 다시 구문을 보면  View class 안에 구문들 중에 OnClickListener 를 통해서 onClick 콜백 메소드를 돌리게끔 해놓고 그 안에 Toast 기능을 사용하게끔 해놓았습니다.

 Toast는 makeText 메소드를 구현되는데 이 makeText 안에 화면에 나타내고자 하는 문자열과 해당 문자열을 얼마나 긴 시간 동안 표시할 지 등을 나타낼 수 있습니다.
 또한 마지막에 show() 메소드를 통해 화면에 출력을 결정합니다.

 이렇게 인터페이스를 구현한 클래스를 만들고 나면 다시 onCreate 내에서 new 연산자를 이용하여 미리 만들어둔 Button_act class를 b1에 리스너 객체로 등록합니다.

 그리고 나서 이전에 button1 에 해당하는 버튼에만 이 기능을 부여하기 위해 findViewId 를 통해 button1에 해당하는 버튼을 button_t1이라고 설정해 줍니다.

 이제 마지막으로 이 버튼과 버튼이 눌러졌을 때의 행동을 setOnClickListner를 통하여 연결해 주면 button1 이 눌러질 때마다 Toast 안의 텍스트가 출력되는 것을 확인할 수 있습니다.

2018년 5월 11일 금요일

2018년 한국 프랜차이즈 순위 (Korea Franchise rank)

 다음은 2018년 3월 한국프랜차이즈개발원 에서 발표한 2018년 한국 프랜차이즈 순위 입니다.

 기준은 최신 트렌드, 미래성, 아이템 경쟁력, 성장성, 매장확장속도, 소비자만족도&인지도, 독점성, 점주 운영의 편리성, 운영만족도, 객단가, 브랜드안정성, 신뢰성 등을 통계적 수치로 환산하여 공정거래위원회 자료와 통합하여 산출된 순위라고 합니다.

 의외로 dessert39가 1위라서 놀랐습니다. 사실 저는 아직 안 가본 디저트 카페라 자료의 신빙성이 의심되었는데 좀 더 검색을 해보니 2017년 고객선호브랜드지수 1위, 대한민국 소비자 만족도 1위를 차지했었네요. (제가 트렌드를 쫓아가지 못하고 있던 거였습니다...)
 창업 비용은 15평형/25평형/40평형 순으로 1억2950만원~/1억5950만원~/1억8950만원~ 의 비용이 발생합니다.

 2위는 올리브영 이었습니다. 제가 가본 적은 없지만 상당히 중심지에는 눈에 띄던 외국의 drugstore 같은 느낌인 곳입니다. 여기는 창업은 Kiosk(9평형)/Roadshop(35평형) 으로 분류될 수 있고 (Roadshop의 경우에는 기존 매장과 겹치지 않아야 하는 지역 제한이 있고, kiosk는 지하상가나 지하철역사 위치를 지정하였습니다.) 1억5천만원~/ 3억2천만원~ 이상의 초기 비용이 발생합니다.

 3위, 4위는 GS25, CU 입니다. 드디어 제가 많이 가보고 익숙한 곳이 등장했네요. 거의 번화가에는 블럭마다 존재하는 편의점입니다. 일본도 편의점 수가 상당히 많다고는 하지만 한국 편의점 들도 수가 상당하지 않을까 싶습니다. 보통 24시간 운영함에 따라 최근 최저임금 인상에 타격을 좀 받았을 듯 한데 편의점 창업 비용은 공식 홈페이지에는 공개 되지 않고 있었습니다.

 그 다음 순위인 이니스프리, 왓슨스, 세븐일레븐, 롭스, 아리따움은 이미 동종 업계를 한 번씩 언급했으니 넘어가겠습니다. 보면서 느낀 거지만 은근히 한국의 프랜차이즈 상위권에는 화장품 관련 매장이 많고 성공 순위도 높은 것을 보았습니다. 정말 뷰티(beauty)의 나라로 자리매김하고 있기 때문인가 싶습니다.

 10위는 올 해 순위에 새로 진입한 초록마을 입니다. 저도 집주변에 신선한 과일이나 소량의 채소를 구매할 때 자주 들르는 곳으로 깔끔한 유기농 작물 판매 유통업체 입니다. 창업비용은 15평형을 기준으로 8,622 만원 이상이 필요합니다. 지금까지 언급했던 곳들 중에서는 가장 저렴한 초기 비용이 발생하네요.

 11위는 롯데리아....작년 5위에서 올해 11위로 하락했네요. 롯데리아가 무려 11위 한 것에 놀라서 보니 맥도날드는 작년 4위에서 올해 20위로 하락, 쉐이크쉑은 작년 20위에서 올해 25위로 하락, 버거킹은 작년 24위에서 올해 28위로 하락, KFC는 작년 13위에서 올해 29위로 하락, 작년 29위에서 올해 23위로 상승한 맘스터치를 제외하고는 전반적으로 패스트푸드 프랜차이점 들이 하락하는 양상을 보였습니다. 아무래도 집밥의 인기와 점점 더 다양해지는 대체 먹거리 들이 늘어나서 그런 것 같네요. 롯데리아가 대표 순위인 건 마음에 안들지만 맥도날드도 지금의 맥도날드는 예전의 맥도날드가 아니기에 머라고 할 수 없네요. 나머지는 타 프랜차이즈에 비해 가격대가 높고(쉐이크쉑, 버거킹), 맘스터치는 불미스러운 일도 있었으니.....흥해라 KFC!
 여하튼 롯데리아의 창업 비용은 저투자(패밀리) 형과 정규 형으로 나눌 수 있으며 각 규모에 따라 1억 7600만원 대부터 5억 까지의 초기 비용이 발생할 수 있음을 볼 수 있습니다.

   

어플 개발 - 화면 구성하기

 이전의 과정 들을 모두 마쳤다면 자바(Java)와 안드로이드 스튜디오(Android studio)를 설치하고 가상 디바이스(AVD)까지 끝낸 뒤라 어플 개발을 시작만 하면 되는 상황이 되었습니다.

 그러나 호기롭게 시작한 첫 화면은 다음과 같았습니다.


아....이 무엇이 무언이지 모르겠는 기분....

 살짝 멘붕에 빠질 뻔하다가 간신히 멘탈을 가다듬고 하나씩 건드려 보며 터득해 보기로 하겠습니다.

 우선 간단하게 첫 화면을 구성하는 방법에 대해서 알아보았습니다.

 그러기 위해서는 다시 위의 그림의 왼쪽 메뉴처럼 app >> res >> layout으로 들어가서 activity_main.xml 파일을 더블클릭하여 열어줍니다.

 그럼 저처럼 Text가 아닌 그림이 보일텐데 당황하지 말고 밑쪽에 보게되면 Design 옆의 Text를 눌러서 위와 같이 글로 구성된 화면을 봅니다.

 지금 현재는 아무 것도 없이 오른쪽의 화면처럼 Hello World! 라고만 출력 되어 있는 모습을 볼 수 있습니다.

 대충 감이 온 분들은 이 글씨를 제어하는 부분이 바로 아래의 소스 부분이라고 바로 감을 잡을 겁니다.

 <TextView
    android:layout_width="wrap_content"    
    android:layout_height="wrap_content"    
    android:text="Hello World!"    
    app:layout_constraintBottom_toBottomOf="parent"    
    app:layout_constraintLeft_toLeftOf="parent"    
    app:layout_constraintRight_toRightOf="parent"    
    app:layout_constraintTop_toTopOf="parent" />

그래서 위의 소스 밑에 Enter 한 번 치고 내려와서 그 뒤에 < 한 번 쳐주면 다음처럼 안드로이드 스튜디오에서 지원하는 많은 위젯 들이 보입니다.



 Button, Calendar, CheckBox, ImageView, 등등.... 중에서 우선 제일 만만한 버튼(Button)을 골라 보았습니다.

 그러면 다음과 같은 구문도 자동으로 생성이 되고 오른쪽 화면에 버튼이 하나 형성되어 있는 것을 볼 수 있습니다.

<Button    
 android:layout_width="wrap_content"    
 android:layout_height="wrap_content" />

 여기서 layout_width는 만드는 버튼의 너비를 뜻하는 것이고 layout_height은 버튼의 높이를 뜻하는 것입니다.

 그런데 사실 wrap_content 를 선택하기 전에 match_parent라는 선택지도 있어서 살짝 고민하였을 텐데 두 문장의 뜻은 다음과 같습니다.

 wrap_content: 내용물(content)의 크기에 맞게 크기를 맞춰줌
 match_parent: 남아있는 여유공간을 채워줌

 이제 버튼 안에 무슨 버튼이라고 표시를 해야 되니 위의 Textview 에서 글자를 표현하기 위해 android:text라고 치면 자동으로 형성이 됩니다. 그러면 하기와 같이 " " 안에 원하는 글자를 넣어주면 역시 오른쪽 화면에 바로 반영 되는 것을 확인할 수 있습니다.

android:text="button1"

 이제 버튼의 위치를 원하는 위치에 놓고 싶다면 다시 밑쪽에 위치한 Design 탭을 눌러서 아래와 같은 화면을 볼 수 있습니다.



 여기서 이전에 생성한 Button1을 드래그 하여 원하는 위치에 가져다 놓으면 됩니다.
그러면 다시 Text로 돌아갔을 때 해당 위치가 어디인지를 아래와 같이 나타내어 줍니다.

<Button    
 android:id="@+id/button"    
 android:layout_width="wrap_content"    
 android:layout_height="wrap_content"    
 android:text="button1"    
 tools:layout_editor_absoluteX="280dp"    
 tools:layout_editor_absoluteY="447dp" />

 그리고 위치를 확정해 주려면 다음의 아이콘인 Infer Constraints 버튼을 눌러서 현재 상태를 기반으로 상황을 고정합니다.


 그러면 다음과 같이 layout_constrainBottom_toBottomOf="parent" 와 layout_constrainStart_toStartof="parent" 라는 구문이 추가적으로 생기게 되며 가상 드라이브에서도 버튼의 위치가 원하는 위치로 출력되어 나타나는 것을 확인할 수 있습니다.

  <Button
    android:id="@+id/button"    
    android:layout_width="wrap_content"    
    android:layout_height="wrap_content"    
    android:layout_marginBottom="82dp"    
    android:layout_marginStart="37dp"    
    android:text="@string/button1"    
    app:layout_constraintBottom_toBottomOf="parent"    
    app:layout_constraintStart_toStartOf="parent" />










2018년 5월 10일 목요일

안드로이드 개발환경 구축 - 가상 디바이스 만들기

 어플을 제작하기 시작하면 내가 제대로 개발을 하고 있는가에 대한 확인이 필요 합니다.

 안드로이드 스튜디오(Android studio)에서는 진행중인 어플의 상태를 확인할 수 있는 방법으로 작업하고 있는 PC에서 타겟 핸드폰과 USB를 연결하여 APK파일을 설치하여 확인하는 방법이 있고, 아니면 가상 디바이스를 만들어서 PC 상에서 핸드폰의 환경을 가상으로 꾸며서 시뮬레이션 시켜주는 방법이 있습니다.

 이 두가지 방법 중 제 폰은 소중하니까 가상디바이스로 안드로이드 스튜디오에서 개발 중인 어플을 돌려 보는 방법에 대해서 알아 보겠습니다.


 위와 같이 프로젝트를 실행하면 위의 버튼 중에 Run 버튼이 있습니다. (단축키는 Shift+F10) 입니다. 이 버튼을 눌러보면 Select Deployment Target 이라고 창이 뜨며 USB로 연결된 핸드폰이 있는지 자동으로 검색합니다.
 이후 아무것도 연결된 장치나 시뮬레이터가 없음을 알려주는데 그러면 여기에서 Create New Virtual Device를 눌러주어 새 가상장치를 개설해 줍니다.

 그러면 Select Hardware에서 다양한 device를 고를 수 있는데 기본으로 Nexus 5X를 선택하여 진행하였습니다.

 다음 단계는 선택한 하드웨어에서 사용할 System Image를 고르는 단계가 됩니다. 여기서는 이전 단계에서 선택했던 하드웨어에 적당한 원하는 API를 선택하여 다운로드를 해주면
됩니다.

 다운로드를 해준 뒤 다음으로 넘어가게 되면 Virtual Device Configuration 화면이 나오게 됩니다. 여기서 AVD(Android Virtual Device) Name이나 Orientation, Device Frame 등을 설정해 줄 수 있습니다.

 이제 Available Virtual Devices 화면에 방금까지 만든 가상 디바이스가 생긴 것을 확인할 수 있습니다.

 앞으로는 프로젝트 수행 중에 Run을 실행시킬 때 마다 이 AVD에서 어플의 동작을 확인해 가면서 작업을 진행할 수 있게 되었습니다. 







2018년 5월 9일 수요일

안드로이드 개발환경 구축 - Android studio 시작하기

 이제 설치한 안드로이드 스튜디오(Android studio)를 시작하면 다음과 같은 실행화면이 나옵니다.



 그럼 여기서 Start a new Android Studio project를 클릭하여 새로운 안드로이드 스튜디오 프로젝트를 생성합니다. 프로젝트의 생성 시에는 다음과 같은 요소 들을 넣어주면 됩니다.

 1. Application name: 프로젝트를 생성할 이름을 넣어주면 됩니다.(첫 글자는 대문자로 입력해 주어야 합니다.)

 2. Company Domain: 생성한 앱을 Play store 에 올렸을 때 보여지는 명입니다.

 3. Project location: 프로젝트의 생성 경로 입니다. 일반적으로 내 사용자 밑에 AndroidStudioProjects 폴더가 형성되고 그 밑에 Application name으로 형성 됩니다.

 4. Package name: 일반적으로 Company Domain과 Application name의 역순 조합으로 생성됩니다.

 여기까지 입력을 한 뒤 다음으로 넘어가면 Target Android Devices라고 타겟으로 삼을 안드로이드 장치를 선택하는 부분이 나옵니다.

 여기서는 당연히 모바일용 앱 제작이 목표이기 때문에 Phone and Tablet 에 체크를 하고 Minimum SDK를 선택하여 주면 됩니다. 여기서 Minimum SDK는 앱을 실행할 수 있는 최소 SDK 버전입니다. (만약 어느 정도를 Minimum SDK로 선택할 지 고민된다면 Help me choose 를 눌러서 현재 안드로이드 OS 점유율을 보고 결정할 수 있습니다.)

 2018년 현재 기준으로 안드로이드 OS 점유율 분포는 다음과 같습니다.

 자신의 핸드폰이 어떤 버전의 OS를 쓰고 있는지는 설정>일반>소프트웨어 정보에서 확인 가능하며 위의 분포도 순으로 보면 다음과 같습니다.

 1위 6.0 마쉬멜로우(Marshmallow)  31.2%
 2위 5.1 롤리팝(Lollipop)               23.3%
 3위 4.4 킷캣(KitKat)                     18.8%

 이제 타겟을 설정하고 다음으로 넘어가게 되면 Add an Activity to Mobile 이라고 해서 어떤 Activity를 가지고 시작할지를 묻습니다. 여기서 마음에 드는 Activity를 선택하여 넘어가면 Configure Activity 화면이 나오게 됩니다.

 Configure Activity 에서는 Activity class에 사용할 Activity Name 과 Layout Name을 설정하고 다음으로 넘어가면 됩니다. 그러면 Component installer가 자동으로 실행되며 구성에 필요한 파일들을 자동으로 설치합니다.

 그러면 자동으로 빌드되고 새 프로젝트가 형성이 됩니다. 다음에는 디버깅이 가능할 수 있도록 가상디바이스를 만드는 방법을 확인해 보도록 하겠습니다. 
 

2018년 5월 8일 화요일

안드로이드 개발환경 구축 - JDK와 Android studio 설치하기


 과거에는 안드로이드 앱을 제작하고자 할 때 이클립스를 사용하였었지만 2013년 구글에서 통합개발환경인 안드로이드 스튜디오(Android studio)를 배포하면서 지금은 더 많이 사용하고 있습니다.

 안드로이드 스튜디오를 설치하기 전에 툴 내에서 사용할 프로그래밍 언어 환경을 미리 설정하여야 하는데 주로 java를 사용하기 때문에 우선 다음의 링크를 통해서 설치를 해야 합니다.

http://java.oracle.com

이 사이트에 접속하게 되면 다음과 같은 메인 화면이 보이게 되는데 여기서 Java SE를 선택하여 클릭합니다.


 그렇게 되면 아래와 같이 버전 정보와 JDK(Java Development Kit) 와 JRE(Java Runtime Environment), Server JRE에 대해서 선택하여 설치할 수 있는데 JRE는 JDK를 설치할 때 자동으로 설치되기 때문에 직접 Java 툴을 이용하여 제작할 사용자라면 JDK만 설치하여 사용하면 됩니다.

 위의 JDK를 누르고 나서는 이후에 자신의 운영체제에 맞는 소프트웨어를 골라서 다운받으면 됩니다.

 나머지 설치 방법은 하라는 대로 Next만 누르면 자동으로 알아서 넘어가게 되고 아마 별도의 변경을 하지 않으셨다면 Java의 설치경로는 C:\Program Files\Java\ 에 설치되어 집니다.

 이렇게 JDK를 설치하였으면 다음은 안드로이드 관련 어플 개발에 필요한 안드로이드 스튜디오(Android Studio) 를 설치할 차례 입니다.

 안드로이드 스튜디오는 다음의 사이트에서 다운로드 및 설치가 가능합니다.

 https://developer.android.com/studio/

 위 사이트 주소로 접속하면 다음과 같은 메인 화면이 나오는데 여기서 하기처럼 DOWNLOAD ANDROID STUDIO 버튼을 클릭하여 약관을 동의한 뒤 다운로드 하면 됩니다.


 (기본적으로 Windows 64Bit 용으로 나오는데 혹시나 다른 운영체제를 사용하는 분들은
Download options으로 들어가서 자신의 운영체제에 맞는 소프트웨어를 선택한 뒤 다운로드 하면 됩니다.)

 다운로드 완료 후 실행하여 주면 component 선택화면에서 Android virtual device도 선택이 되어있는지 확인해 보고 (요구 용량: 2.3GB) 다음으로 눌러 설치 경로를 확인합니다.

 이후 Start menu folder 까지 선택하고 나면  Install 이 시작됩니다.

 이제 설치가 완료되고 나면 Start Android Studio가 체크 되어 있는 상태에서 Finish를 눌러서 한 번 실행해 봅니다.

 처음 실행을 하게 되면 아래와 같이 setting 값을 불러올 것인지 물어보는 화면이 나오는데 처음 실행이기 때문에 Do not import setting 상태에서 OK 를 눌러 계속 진행합니다.



 그러면 다음과 같이 Install type을 물어보는데 우선 제일 많이 쓰는대로 추천한 Standard Type을 설정하여 설치를 계속 진행합니다.



 다음은 안드로이드 스튜디오에서 사용할 UI Theme를 고르는 화면입니다.
 

 저는 전문적으로 보이는 어두운 배경 보다는 밝은 화면인 intelliJ 를 선택하여 진행하였습니다. 이제 Android SDK를 포함하여 설치가 완료된 것을 확인 할 수 있습니다.

 마지막으로 finish를 누르게 되면 업데이트 파일들을 자동으로 다운로드하여 진행하게 됩니다.

 이제 JDK 설치와 Android studio 설치를 마쳤으니 안드로이드 개발을 위한 모든 준비는 끝났습니다. 다음은 실행하여 첫 프로젝트를 셋업하는 과정으로 찾아 뵙겠습니다.








2018년 5월 6일 일요일

추천 어플 - 뱅크샐러드(돈관리/가계부)

 누구든지 생활을 하다보면 필수적으로 돈을 사용하게 됩니다. 이렇게 사용하는 돈에 대해서 특정인 몇몇을 제외하고는 내가 갖고 있는 범위 내의 돈은 얼마가 있는지 파악하고 해당 범위 내에서 어느 정도의 돈을 사용하면 좋을지 계획하며 내가 어떻게 돈을 관리할 지에 대해서 생각하곤 합니다.

 이런 사람들을 위해서 나온 가계부 어플로 뱅크샐러드를 추천 해보고자 합니다. (18-05-07 현재 애플 스토어 금융관련 무료 앱 부문 1위)
           구글 플레이 설치                                          앱 스토어 설치


 아이폰(iPhone)은 사실 쓸만한 가계부 어플이 많이 없었습니다. 특유의 엄중한 보안으로 문자 메시지를 다른 앱에서 가져다 쓰지 못하게 만들기 때문에 문자메시지를 분석해서 소비 성향을 파악해 주는 앱들이 무용지물이 되었습니다. 그래서 일일이 사용내역을 수기로 적어야 하는 불편한 가계부 앱들이 있었고 이런 어플은 정말 부지런하고 돈 관리에 의욕이 불타는 사람이 아닌 저 같은 사람들에게는 꺼려지는 어플이었습니다.

 하지만 브로콜리나 뱅크샐러드 처럼 하나 둘씩 문자메시지를 분석하지 않고 카드 사와 은행의 공인인증서를 갖고 해당 내역을 분석하게 되면서 사용자의 소비 내역과 소득 내역을 자동적으로 업데이트가 가능한 어플 들이 등장하기 시작했습니다.

 그 중 뱅크샐러드를 선택하게 된 계기는 특유의 소비 패턴 분석 및 추천 서비스가 있기에 해당앱을 쓰게 되었는데 우선 하나하나 뱅크샐러드의 기능에 대해 설명하겠습니다.

 우선 뱅크샐러드를 시작해보면 처음에 설정에서 내 금융상품 관리를 추가할 수 있고 한 번 추가하게 되면 어플에 로그인 할 때마다 등록한 금융상품(은행, 카드)의 내역이 자동적으로 갱신하여 사용자에게 보여주게 됩니다.


 이렇게 추가된 내용은 첫번째 탭인 MY금융에서 볼 수 있습니다.

 입출금/예금/적금 과 같이 은행 내역과 증권 예수금,현금과 같이 보유 유동 금액은 자산으로 잡고,  주식으로 갖고 있는 금액은 투자, 신용카드 대금으로 반영하여 자산, 투자, 신용카드 금액, 부채를 추산한 순 자산의 금액을 나타내 줍니다.

 두번째로 내역*통계 탭은 내역/달력/통계 로 또 구분되어 있는데 내역의 경우에는 선택한 달마다 일별로 어떤 내역으로 돈을 사용하거나 벌어들었는지에 대해 소비 카테고리와 함께 상세하게 제공됩니다.


 달력은 선택한 한달 동안의 수입과 지출 및 이체 건수를 보기 쉽게 제공하고 있으며 통계에서는 선택한 달 동안의 소비 내역을 원형그래프로 나타내어 어떤 비중 순으로 소비하고 있는지에 대해 보여줍니다.

 세번째로 금융비서는 사용자의 금융데이터를 분석해 금융생활을 개선할 수 있도록 하는 메뉴이지만 아직은 주간 리포트와 월간 리포트 형식으로 지난 평균에 비해 어느정도의 소비패턴을 사용했는지에 대해 알려주고 있는 수준입니다. (결론적으로 아직은 잘 활용 안하고 있는 메뉴입니다.)



 그리고 네번째!! 재테크 메뉴는 사용자의 실제 금융데이터를 금융상품 빅데이터와 매칭하여 가장 혜택 금액이 큰 상품을 추천해 주는 메뉴 입니다. 실제적으로 저같은 경우에는 많은 가계부 관리 어플 중 뱅크샐러드를 선택하게 된 결정적인 이유였는데요.

 사용자가 기존 카드로 지출한 소비패턴을 분석해서 가맹점, 업종, 결제금액 데이터를 토대로 다른 카드를 썼다면 받았을 혜택 금액을 시뮬레이션 해줍니다.

 일일이 사용자가 가뜩이나 말빨도 강한 특정 카드사 직원에게 찾아가 혜택을 물어보지 않아도 되고 인터넷에서 혜택 내용이 다양하고 많은 문구의 카드 들을 하나하나 보면서 계산하지 않아도 단지 내가 그 동안 썼던 내용을 토대로 추천 해준다....정말 귀찮은 것 싫어하는 저에겐 최고의 어플이었습니다.

 카드의 종류나 내용도 가리지 않고 은행권이나 카드사의 모든 카드에 대해서 총망라 하고 있으며 시뮬레이션 내용을 숫자로 보여주니 믿음이 갈 수 밖에 없더군요. 이상 향후 업데이트가 더더욱 기대되는 어플 뱅크샐러드 였습니다.

2018년 5월 4일 금요일

세계 검색 엔진 마켓 시장 분포(포털 사이트 순위)

자연스럽게 네이버를 이용해서 흥미로운 것들을 검색해 보다가 문득 그런 생각이 들었습니다.

 과연 이 네이버는 어느 정도의 사람들이 쓰고 있고, 한국에서는 어떤 검색엔진이 주로 사용되고 있으며 전 세계적으로는 어떤 검색 엔진이 사용되고 있을지...각자 나라에 맞는 우리가 모르는 검색엔진이 사용 될지 궁금해 지기 시작했습니다. 과연 다른 나라의 검색 사이트 에는 어떤 것이 있고 그 순위는 어떻게 될까?

 그래서 바로 구글로 혹시 검색 엔진 마켓에 대해서 찾아보니 다음과 같은 사이트가 나왔습니다.
http://gs.statcounter.com/
 검색 엔진 뿐만 아니라 웹 브라우저(Browser), 운영체제(OS) 등의 사용을 각 나라 별로 통계 내서 보여주는 유용한 사이트입니다. 사용방법은 간단 합니다.
 위의 링크를 따라 들어가게 되면 아래와 같은 메인화면이 등장하게 됩니다.



 이 메인 화면은 브라우저(Browser) 시장에 대한 전세계 점유율을 보여주고 있는데요. 2018년 3월 기준 전세계 적으로 크롬(Chrome)이 57%로 압도적인 점유율을 차지하고 있는 모습이 보이며, 그 뒤로 사파리(Safari) 등이 사용되고 있음을 보여주고 있습니다.
 그러면 여기서 Edit Chart data라고 쓰여있는 파란색 버튼을 누르게 되면 다음과 같은 화면이 등장하게 됩니다.


 그러면 Statisic에서 알아보고 싶은 테마(Search Engine)를 고르신 후, (어떤 기기의 검색 엔진에 대해 알아볼지도 선택할 수 있습니다. 데스크탑에서는 어떤 검색엔진을 많이 쓰는지, 모바일에서는 어떤 검색엔진을 쓰는지 등에 대해서도 선택이 가능합니다.)
 그 후, Region에서 알아보고 싶은 지역에 대해서 선택할 수 있는데 전세계(worldwide)만 할지 한국(Korea, Republic of)로 할 지 선택할 수 있습니다.
 그 밖에도 그래프 타입을 선(Line)으로 나타낼 지 등과 언제부터 어떤 기간 사이의 변화를 볼 지도 사용자가 사용하기 쉽게 제공하고 있습니다.

 그러면 이 기능을 적용해서 알아보고자 했던 한국의 검색엔진 시장에 대해서 알아보면 다음과 같이 나오는 것을 볼 수 있습니다. 구글이 약 60% 정도의 점유율을 차지하고 네이버(27.7%)와 다음(8.9%) 순으로 이어지는 것을 볼 수 있습니다. 2016년도에는 구글과 네이버의 차이가 별로 없었지만 급격히 차이가 나기 시작하고 다음이 꾸준히 상승하고 있는 모습도 보이네요.




 이렇게 다른 나라들도 검색해보면 원하는 나라의 검색 엔진 점유율도 확인해 볼 수 있습니다.

 중국 - 바이두(Baidu)가 73.02% 이고 나머지도 중국 검색 엔진 들로 어마어마한 자국 내 점유율을 보이고 있음을 보여주네요.



 일본 - 구글이 70.17%로 높긴 하지만 특이하게 야후(Yahoo!)가 높고, 네이버(0.08%)도 은근히 사용하고 있는 모습을 볼 수 있네요.



 미국 - 역시나 예상은 했지만 구글의 압도적인 점유율을 보여주고 있습니다.



전세계 - 2018년 검색 엔진 순위는 과연!! 1위.구글(91.25%) 2위.bing(3.08%) 3위. Yahoo!(2.13%) 4위. Baidu(1.48%) 순 입니다! 중국 내 점유율이 바이두가 워낙 높아서 더 높을 줄 알았는데 의외로 구글의 압승이네요. 91.25%...정말 세계적인 검색엔진 답습니다.




이렇게 전세계적으로는 구글이 압도적으로 차지하고 있으니 전 세계를 대상으로 하고자 할 때는 구글에 주력하고 아니면 중국이나 한국 처럼 특정한 검색엔진이 주 점유율을 차지하고 있는 나라에서는 각나라에 특화되어 있는 검색엔진의 플랫폼을 활용하는 것도 좋은 전략이 될 수 있지 않을까 생각하며 이상 글을 마칩니다.

일본 북해도(홋카이도:Hokkaido) 기념품 알아보기

 금번에 아내와 함께 일본 북해도(홋카이도:Hokkaido) 여행 계획을 짜면서 기념할 만한 쇼핑 리스트가 어떤 것이 있을지 알아보았습니다.

 인터넷과 책으로 둘러보니 삿포로(Sapporo)와 같은 홋카이도의 도시 들은 도쿄나 오사카와 같은 쇼핑천국은 아니지만 특색있게 과자의 왕국으로 불린다고 합니다. (왜 아내가 홋카이도를 여행지로 선정하였는지 이 대목에서 확신하게 되었었습니다.)
 과자의 왕국으로 불리는 이유는 홋카이도가 과자에 많이 쓰이는 재료인 밀, 우유, 달걀과 같은 농산물과 축산물의 품질이 좋기로 유명한 지역이다 보니 이러한 재료의 높은 질로 인해 만들어진 제작품의 질 또한 우수하다는 평을 받고 있습니다.

 그렇게 해서 우선적으로 과자부터 살펴보면 일단 아내의 쇼핑리스트 1순위인 시로이 고이비토 or 시로이 코이비토 (白い恋人)  부터 살펴 보도록 하겠습니다. 시로이 고이비토는 이시야 제과의 대표 과자로써 우리나라 말로는 하얀 연인이라는 뜻을 가지고 있습니다. 우리나라 쿠크다스의 상위버전처럼 생겼는데 부드러운 쿠키 안에 초콜렛(화이트/다크)이 들어 있는 형태 입니다.


가격 비교

24개입(화이트/블랙)

우리나라에서 직구로 구매할 경우: 배송비 포함            -  28,800 원
                           현지 구매 시: 987.21엔/원 기준     -  15,025.34 원(1,522엔)


 다음은 멜론 퓨어 젤리(夕張メロンゼリー) 입니다. 홋카이도 유바리 시의 유명한 과일인 유바리 멜론으로 만든 젤리 입니다. 라쿠텐(rakuten) 사가 제조사 입니다. 홋카이도의 명절 선물 1위로도 꼽히고 몽드 셀렉션에서도 5년 연속 최고 금상을 수상하였다고 합니다. 이런 연유 때문인지 일본 기내식에 10년 연속으로 제공되고 있다고 하네요. 유바리 멜론 자체가 맛있기로 유명한데 이 식감과 향기를 그대로 재현해 낸다니 어떤 부드러움과 달콤한 맛이 있을지 기대됩니다.



가격 비교

12개입 x 3봉

우리나라에서 직구로 구매할 경우: 배송비 포함            -  40,310 원
                           현지 구매 시: 987.21엔/원 기준     -  16,001.55 원(1,620엔)


 다음은 자가포쿠루(じゃがポックル입니다. 홋카이도산 감자와 구운 소금, 다시마로 맛을 낸 감자튀김 모양의 스틱 과자입니다. 카루비(Calbee)에서 홋카이도 한정판으로 만든 맛이 홋카이도 지도 모양의 포장지와 함께 아직 판매되고 있으며 일본 내외에서 인기라고 합니다.(우리나라에서는 카루비가 허니버터 칩을 같이 만든 회사로 많이 들어보셨을 겁니다.)


가격 비교

10개입

우리나라에서 직구로 구매할 경우: 배송비 포함            -  22,600 원
                           현지 구매 시: 987.21엔/원 기준     -  8,534 원(860엔)

 다음은 유키야콩코(雪やこんこ) 입니다. 얇은 블랙 카카오 비스킷과 화이트 초콜렛의 조합으로 오레오와 비슷한 모양이지만 검은색 비스킷 사이로 간간이 보이는 초콜렛을 눈이 내리는 풍경에 비유한 아름다운 과자입니다. Rokkatei 사 제품입니다.


가격 비교

8개입

우리나라에서 직구로 구매할 경우: 배송비 포함            -  구매 불가
                           현지 구매 시: 987.21엔/원 기준     -  6820.79 원(690엔)


 다음은 포테이토칩 초콜릿(ポテトチップチョコレート) 입니다. 이미 일본쪽 과자 사오는 분한테 유명한 Royce 사의 대표적인 초콜릿 중의 하나로 짭짤한 맛과 달콤한 맛이 어울려서 중독성을 가지는 유명한 초코 과자입니다.


가격 비교

190g

우리나라에서 직구로 구매할 경우: 배송비 포함            -  16,880원
                            국내 Royce 매장                       -  19,000원
                           현지 구매 시: 987.21엔/원 기준     -  7698.85 원(778 엔)

 다음은 Oh! 야키토우키비(焼きとうきび) 입니다. 한국말로 구운 옥수수라는 뜻에 맞게 구운 옥수수와 특유의 간장 맛으로 간식용이나 술안주용으로 많이 먹는다고 합니다. 실제로도 일본 리뷰에서 이 과자를 소개하는 글에는 맥주와 함께 있는 모습을 심심하지 않게 볼 수 있습니다. 요시미 사 제품입니다.



가격 비교

6개입

우리나라에서 직구로 구매할 경우: 배송비 포함            -  21,900원
                           현지 구매 시: 987.21엔/원 기준     -  6142.41 원(648 엔)

 이 것 말고도 수많은 제품이 있을 것 같은데요. 나머지 제품은 차차 업데이트 해나가면서 여행 시 구매할 물품에 대한 꿈을 키워보도록 하겠습니다.