정전용량무접점...

키보드 사용자들에게선 이 키축을 사용하는 키보드는 비싸고 꼭한번 사보고 싶은 키보드 일것 같습니다. 리얼포스나 해피해킹 프로페셔널 키보드가 그 종류중 하나 일 것 같습니다.

이전까지 잘 사용하고 있던 키보드는 필코 마제스터치 기계식 키보드 입니다. 갈축으로 넌클릭 제품이죠. 그런데 기계식 키보드를 사용하면 주변분들의 반응은 다 이런 반응들 입니다. "시끄러운데???" 처음 기계식 키보드를 구입할 때 청축 클릭제품을 사용하고 싶었지만 너무 시끄러울 것 같아서 갈축을 산것이였는데 ㅎㅎ


해피해킹 프로페셔널 키보드 자체도 비싸서... 구입 할 때 큰마음 먹고 구입했어야 했는데 이번 리얼포스 구입하는 것도 정말 큰마음을 먹어야 하는군요. 가격이 L모 사이트에서 구입하면 36만원의 가격을 줘야 구입할 수 있으니까요. 하지만 아쉽게도 L모 사이트나 국내 다른 리얼포스 판매하는 곳에서는 제가 원하는 all-45g 모델이 없습니다 ㅡㅡ... 55g 모델이나 차등 모델은 있지만..  차등은 왠지 별로?? 일듯 싶고, 55g 균등은 무거울 거 같더군요... 기계식 갈축이 45g정도의 무게를 가지고 있고 집에서 사용하는 해피해킹 프로페셔널도 45g의 무게이니 적응하기 편한 45g 균등 리얼포스가 가지고 싶어졌습니다. 그래서 구글링 해서 찾은 곳이 해외 elitekeyboard 라는 곳입니다. 제가 원하는 all-45g의 균등 키보드를 판매하고 있더군요. 


원하는 제품을 판매하는 곳을 찾았지만 바로 구매를 하지 못하고 망설인 시간도 있었습니다. 첫번째 이유는 거금을 들여서 키보드를 구입하고자 하니 와이프의 눈치가 보이고, 더군다나 elitekeyboard라는 곳이 믿을만한 곳인가?? 라는 두가지 이유입니다. 와이프 허락을 받았지만 elitekeyboard가 정말 믿고 구입할 곳인지에 대한 검증도 필요하구요. 고민고민 한 이유중 하나도 해당 사이트는 회원가입을 통한 구입이 아니기도 하니.. add cart 한다음 결제를 할까말까 고민고민 하고 매일 사이트에 들어가서 지켜보기도 하고... 그런데 처음 $239 하던 가격이 $199로 super sale!! 을 하게 된것입니다. 처음 지켜보던 가격에서 무려 $40 이나 내려간 가격!!!!! 머 구글링해서 얻은 정보로는 elitekeyboard에서 구입한 몇몇 분들은 2주정도 기다려서 잘 받았다고 후기들이 있기에 사기당하면 비싼 직배경험 공부 비용으로 지불했다는 마음을 가지고 배송비 $65 정도 해서 구입했습니다. 그리고 나서 다음날 결제완료되었으니 2일안에 발송하면 트랙킹 정보를 보내주겠다는 메일이 왔고 다행히 2일뒤 USPS로 발송했다는 트랙킹 정보 메일을 받았습니다. 이제부터 리얼포스를 기다리면 됩니다.


그런데 1주일만에 키보드가 도착했습니다. 상당히 빨리 오더군요. 



REALFORCE 87U All-45 모델입니다 ㅎㅎ


6년여 동안 저의 개발인생을 같이해온 필코 마제스터치와 방금 개봉한 realforce 87u all-45 모델이죠. 누군가는 이걸 보고 필코가 초라해 보인다고 했지만 아직까지 필코도 현역입니다 ㅎㅎ.. 좀 험하게 다루기도 했고(코딩할 때 키보드를 부셔버릴 듯이 사용했으니 ㅎㅎ) 키캡 여러부분들이 벗겨져서 구각처럼 된 곳도 있고.. 하지만 정이 많이 가는 키보드 입니다.


그리고 따로 또 구입한 키보드 루프 입니다. 키보드 사이사이에 먼지 쌓이게 하고 싶지 않아서 주문제작?? 한 것이죠. 정품 리얼포스 루프는 가격이 비싸죠. 약 4만원정도 하는데.. 사실 아크릴 엎개를 그정도 갚을 주고 사기엔 많이 아까워서. 그래서 아크릴 가공하는 곳에 치수를 보내면 저렇게 만들어서 보냅니다. 가격은 정품의 1/3 가격! 투명한 것도 있지만 그냥 사진과 같은 불투명으로 구매!!


키보드 루프를 덮어둔 모습입니다. 은근 괜찮네요 ㅎㅎ



앞으로 저와 언제까지??? 할지 모르겠지만 

몇일간 사용한 소감은... 한번쯤은 사용해볼만한 것 같습니다. 우선 해피해킹 프로페셔널과 같은 정전용량무접점인것! 키감은 나쁘지 않지만 개인적으로 100% 만족스럽지도 않습니다. 워낙 기계식을 오래?? 써서 그런듯 싶기도하구요^^ 이러다 더 적응되면 나중엔 기계식으로 다시 갔을 때 적응하지 못하는거 아닌지도 모르겠습니다. 기계식에서 느껴지는 탁탁탁 그런 느낌보다는 사각사각 느낌이고... 이왕 산거 잘 사용해야지~

'사용기' 카테고리의 다른 글

로지텍 G502 PROTEUS CORE 마우스  (0) 2014.05.21
Anker® 40W 5V / 8A 5-Port 충전기.  (0) 2014.02.21
로지텍 G-700  (0) 2011.08.14

 Android에서 WebView의 addJavascriptInterface 를 이용하면 Web에서 javascript를 통해서 보내는 명령들을 받아낼 수 있다. 그런데 해당 내용을 proguard를 적용하여 apk를 만들고 나면 잘 되던 것이 전혀 작동을 하지 않게 된다. 단순히 proguard를 적용하지 않으면 문제없지만, 그렇지 않으면 apk를 decompile 하게 되면 코드의 내용이 다 공개되니 proguard를 하지 않는 것은 더욱이나 좋은 방법이 아닌 것 같다.

 무엇이든 문제가 있으면 해결 방법도 있는 법. proguard의 설정파일에다가 아래와 같은 내용을 추가 해 주면 된다.

-keepclassmembers class * implements YOURPACKAGE$JavaScriptInterface {

    <methods>;

}

그리고 android API 17+ 부터는 JavascriptInterface 메소드 안에 "@JavascriptInterface" 의 annotation을 추가해 줘야만 한다고도 함. 그리고 annotation에 대해서 proguard를 적용할려면

-keepclassmembers class * {

    @android.webkit.JavascriptInterface <methods>;

}

와 같은 내용도 proguard 설정 스크립트 안에 추가해 줘야 한다.


이후 apk를 proguard 적용하여 만들어도 Web과 App간의 javascriptInterface간 통신에는 전혀 문제가 없게 된다.

'Android' 카테고리의 다른 글

[Android] RemoteControlClient 활용하기.  (0) 2014.05.23
[Android]ANDROID PERFORMANCE OPTIMIZATION  (0) 2014.02.25
[Android] ActionBarCompat  (0) 2013.08.14
[Android] Text shaodw style...  (2) 2013.07.25
[Android] 퀵터치(QuickTouch)  (1) 2013.07.18

Android에서 보통 support-v4 library를 많이 사용하죠. ViewPager와 Fragment등등 때문에...

그런데 이번에 ActionBar를 하위 버전에서 사용할 수 있도록 suppert-v7이 변경되어서 나왓습니다.

google에서 가면 갈수록 api가 상위버전에서만 사용할 수 있는 것들을 하위 버전에서 사용할 수 있도록 해주니 좋긴 좋군요. 그런데 하위버전에서 안되서 기존의 있는 sdk를 이용하여 custom하게 만들어서 사용하던 분들은 약간의 짜증?? 이 날 수도 있겠죠 ㅋㅋ 저같은 경우는 ViewPager가 안나왔을 때 ViewPager와 같은 기능을 만들어서 잘 사용하고 있더니 suppert-v4에 ViewPager를 넣어서 내놓더군요..... 욕심에 제가 만든걸 잘 사용하다가 결국엔 ViewPager로만 사용하게 되었던 ^^


자 그럼 ActionBar를 사용하기 위한 suppert-v7의 이용 방법 입니다.


전 eclipse 3.7 Indigo와 ADT 21을 이용합니다. 현재 eclipse는 4.3 kepler가 최신이고, ADT는 22입니다. 


1. Android SDK Manager를 이용하여 Android Suppert Library를 rev.18로 업데이트 한다.

2. Android Project from Existing Code

3. suppert-v4 하위에 있는 appcompat library 프로젝트 추가.

 - SDK가 설치된 하위 폴더의 extra->android->compatibility->v7->appcompat 추가.

   ex)/Volumes/Macintosh DATA/03.sdk/android-sdk-macosx/extras/android/compatibility/v7/appcompat


4. 추가된 부분 확인 - 아래 그림과 같이 support-v7-appcompat의 library프로젝트가 추가된 것을 확인할 수 있습니다.

5. Sample Project만들기.

 - 간단한 샘플 프로젝트를 만든 뒤 Properties->Android->Library에서 좀전에 추가한 support-v7-appcompat프로젝트를 추가합니다. 그리고 Project Build Target은 4.1.2 (API 16)이상으로 해야 합니다. suppoert-v7-appcompat이 4.1.2(API 16)으로 되어 있기 때문에...


6. AndroidManifest.xml의 Theme변경

android:theme="@style/AppTheme" -> android:theme="@style/Theme.AppCompat"

으로 변경합니다. 어떤 구조로 되어 있는지는 suppert-v7-appcompat의 resource인 themes.xml파일을 살펴보시면 됩니다.


7. ActionBarActivity 

import android.support.v7.app.ActionBarActivity;

public class MainActivity extends Activity -> public class MainActivity extends ActionBarActivity

으로 변경


8. menu 추가

 - ActionBarCompat용 menu리소스를 추가 합니다. 기존과 틀린점이 있다면 xmlns:action_sample="http://schemas.android.com/apk/res-auto" 의 action_sample namespace입니다. 하위 아이템을 보면 [action_sample:showAsAction="always" ]의 추가된 namespace로된 속성값이 있습니다. ActionBarCompat의 namespace로 온 속성을 사용하기 위함입니다.

- action.menu.xml 내용




android:id="@+id/menu_sample"
android:title="@string/action_sample"
android:icon="@drawable/ic_launcher"
action_sample:showAsAction="always"/>



	@Override
	public boolean onCreateOptionsMenu(Menu menu) {
		getMenuInflater().inflate(R.menu.action_menu, menu);
		return true;
	}

}


9. event 발생

 - 추가된 actionbar의 아이콘을 클릭했을 때 toast message를 보여주도록 했습니다.

	@Override
	public boolean onOptionsItemSelected(MenuItem item) {

		switch (item.getItemId()) {
		case R.id.menu_sample: {
			Toast.makeText(this, R.string.action_sample, Toast.LENGTH_SHORT)
					.show();
			break;
		}
		}

		return super.onOptionsItemSelected(item);
	}


Android 의 TextView에는 shadow 효과가 기본적으로 있습니다. shadow효과로 다양한 TextStyle을 만들 수 있는데 이번 포스트에서는 shadow효과의 다양한 value에 의해서 어떤 효과가 나오는지 확인해 볼려고 합니다.


우선 TextView에 있는 shadow 효과에 사용되는 xml attribute와 method를 확인해 보면

android:shadowColor

Place a shadow of the specified color behind the text.

Must be a color value, in the form of "#rgb", "#argb", "#rrggbb", or "#aarrggbb".

This may also be a reference to a resource (in the form "@[package:]type:name") or theme attribute (in the form "?[package:][type:]name") containing a value of this type.

This corresponds to the global attribute resource symbol shadowColor.

android:shadowDx

Horizontal offset of the shadow.

Must be a floating point value, such as "1.2".

This may also be a reference to a resource (in the form "@[package:]type:name") or theme attribute (in the form "?[package:][type:]name") containing a value of this type.

This corresponds to the global attribute resource symbol shadowDx.

android:shadowDy

Vertical offset of the shadow.

Must be a floating point value, such as "1.2".

This may also be a reference to a resource (in the form "@[package:]type:name") or theme attribute (in the form "?[package:][type:]name") containing a value of this type.

This corresponds to the global attribute resource symbol shadowDy.

android:shadowRadius

Radius of the shadow.

Must be a floating point value, such as "1.2".

This may also be a reference to a resource (in the form "@[package:]type:name") or theme attribute (in the form "?[package:][type:]name") containing a value of this type.

This corresponds to the global attribute resource symbol shadowRadius.

이와 같습니다. shadowColor는 shadow의 색상, shadowDx는 shadow의 X방향 offset, shadowDy는 shadow의 Y방향 offset, shadowRadius는 shadow의 반지름이 됩니다.

샘플코드를 확인해 보겠습니다.

<LinearLayout
        android:layout_width="fill_parent"
        android:layout_height="wrap_content"
        android:background="#ffffff"
        android:padding="10dip" >

        <TextView
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:shadowColor="#7F000000"
            android:shadowDx="3"
            android:shadowDy="3"
            android:shadowRadius="0.01"
            android:text="Shadow Style"
            android:textColor="#000000" />
</LinearLayout>

이와 같이 하면 결과는

이와 같습니다. 검은 Shodow Style 아래에 회색의 shadow가 있는 것을 확인할 수 있습니다. 그림자 위치를 더 멀리 하고 싶아면 shadowDx와 shadowDy값을 더 많이 주면 됩니다.

위의 결과에 shadowRadius값을 변경했을 때 코드는

<LinearLayout
        android:layout_width="fill_parent"
        android:layout_height="wrap_content"
        android:background="#ffffff"
        android:padding="10dip" >

        <TextView
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:shadowColor="#7F000000"
            android:shadowDx="3"
            android:shadowDy="3"
            android:shadowRadius="1.5"
            android:text="Shadow Style"
            android:textColor="#000000" />
</LinearLayout>

이와 같이 했을 경우 결과는

이렇게 됩니다. shadowRadius값에 따라서 shadow모양이 변경된 것을 볼 수 있습니다.

그럼 이번에는 shadow의 방향을 바꾸도록 하겠습니다.

    <LinearLayout
        android:layout_width="fill_parent"
        android:layout_height="wrap_content"
        android:background="#FFFFFF"

        android:padding="10dip" >
        <TextView             android:layout_width="wrap_content"             android:layout_height="wrap_content"             android:shadowColor="#7F000000"             android:shadowDx="3"             android:shadowDy="-3"             android:shadowRadius="1.5"             android:text="Shadow Style"             android:textColor="#000000" />     </LinearLayout>

이와 같이 했을 때 결과는

이와 같습니다.그림자가 오른쪽 위 방향으로 변경되었습니다. shadowDx와 shadowDy의 값의 +- 에 따라서 값이 shadow방향이 변경 됩니다. 소위 발하는 그림자가 45` 방향이면 shadowDx는 +, shadowDy는 -을 주고, 135`방향을 경우는 둘다 +의 값을 주면 됩니다.


이번에는 shoadow를 이용한 blur 효과 비슷하게 주는 방법입니다.

    <LinearLayout
        android:layout_width="fill_parent"
        android:layout_height="wrap_content"
        android:background="#000000"
        android:padding="10dip" >

        <TextView             android:layout_width="wrap_content"             android:layout_height="wrap_content"             android:shadowColor="#FFFFFF"             android:shadowDx="0"             android:shadowDy="0"             android:shadowRadius="3"             android:text="Shadow Style"             android:textColor="#FFFFFF" />     </LinearLayout>

이와 같이 shadowDx와 shadowDy의 값을 0.. shadowRadius값만 +로 주었을 때 결과는

이와 같습니다. 글자 주변으로 blur 효과가 나타는 것을 볼 수 있습니다.


이번에는 네온사인?? 같은 효과 입니다.

    <LinearLayout
        android:layout_width="fill_parent"
        android:layout_height="wrap_content"
        android:background="#000000"
        android:padding="10dip" >

        <TextView             android:layout_width="wrap_content"             android:layout_height="wrap_content"             android:shadowColor="#FFFFFF"             android:shadowDx="0"             android:shadowDy="0"             android:shadowRadius="2"             android:text="Shadow Style"             android:textColor="#000000" />     </LinearLayout>
    <LinearLayout         android:layout_width="fill_parent"         android:layout_height="wrap_content"         android:background="#000000"         android:padding="10dip" >
        <TextView             android:layout_width="wrap_content"             android:layout_height="wrap_content"             android:shadowColor="#00FF00"             android:shadowDx="0"             android:shadowDy="0"             android:shadowRadius="2"             android:text="Shadow Style"             android:textColor="#000000" />     </LinearLayout>

이와 같이 했을 때 결과는


이와 같습니다. 이건 단지 배경과 글자색을 같게 하고 그림자 색상만 다르게 했을 때 입니다. 


TextView의 shadowDx, shadowDy, shadowRadius값에 따라서 TextView의 효과를 확인해보았습니다. 그런데 저는 제일 많이 쓰는 것은 단지 ShadowDx=2 shadowDy=2 shadowRadius=2 인것 같습니다. 이건 단지 개인별로 차이가 있겟지만요 ^^




 오랜만에 제 블로그에 글을 써봅기 시작합니다 ^^

 안드로이드 개발을 시작한지... 좀 되었네요 ㅎㅎ... 관심있어서 공부한 시간은 빼고 앱을 처음 만들어서 런칭했을 때가 2010년이니 시간이 참 많이도 지났네요 ㅎㅎ 제 블로그에 제가 회사다니면서 만든 앱을 적어둔 것도 있지만 안그런 것도 많아서ㅋ

 그럼 제가 개인적으로 이번에 만들어본 어플을 정리해 볼까 합니다.

우선 마켓은 

https://play.google.com/store/apps/details?id=com.magimon.quicktouch

이곳입니다.

이름은 퀵터치(QuickTouch)입니다. 앱 이름을 정하는 것도 참 힘들더군요 ㅡㅡ...

 주된 기능은 다른 앱이 실행되더라도 항상 퀵터치 뷰가 보여지고, 뷰안에서 모바일 데이터, 배터리, 메모리 등을 모니터링 합니다. 그리고 항상 빨리 실행하고 싶은 앱을 추가해서 다른 앱을 실행하더라도 그 위치에서 바로 실행할 수 있습니다. 머 이게 주된 기능이라고 보면 될듯 하네요.

 모바일 데이터를 모니터링 해주는 앱은 많지만, 이것을 확인할려면 위젯이나 안드로이드의 notification bar에서 확인해야 합니다. 다른 앱이 실행중이면 위젯은 가려져서 확인할 수 없고, notification bar에서는 화면을 내려봐야 사용된 내용을 확인할 수 있죠. 이런것도 단순히 항상.. 실시간으로 확인해 보는 것입니다. 모바일 게임을 하면서 항상 데이터를 확인할 수 있죠.

 안드로이드느 백그라운드에서 앱이 많이 실행됩니다. 여러가지 서비스도 많이 돌고, 넥서스 시리즈가 아닌 국내 제조사의 폰들은 자체적으로 또 많은 추가적인 서비스를 넣죠. 요즘 최신 디바이스들이 메모리가 2기가 가까이 되지만 메모리를 기본적으로 많이 사용하고있죠. PC를 생각해도 메모리를 많이 사용하면 PC전체가 조금 느려지기도 하고 .. 그래서 메모리 사용량을 실시간으로 모니터링해 보여주고, 메모리를 사용자 설정보다 많이 사용하게 되면 메모리를 clear하라는 경고를 알려줍니다. 

 하상 퀵터치 뷰가 맨위에 존재하다 보니 이걸 통해서 언제든지 사용자가 등록해둔 앱을 빨리 실행해 볼 수도 있습니다. 기본적으로 하나의 앱을 실행하는 도중에 다른앱을 실행할려면 백키나 홈키를 통해서 빠져 나온 뒤 실행해야 하지만, 이것은 바로바로 실행할 수 있죠. 조금의 시간이라도 절약할 수 있는 겁니다 ^^


 

 

 

 

 

 


아직 수정하고 손봐야 할 곳들이 많습니다. 추가했으면 하는 기능은 댓글로 남겨주시거나 메일로 보내주셔도 됩니다 ^^ 소중한 의견은 앱의 발전에 큰 도움이 됩니다 ㅋ



windows 7 professional 64bit를 사용 중 pc를 재부팅 했는데 갑자기 아래와 같은 블루스크린이 나왔다.


오호...이 오랜만에 보는 블루스크린!!!

SRTSPL.SYS 

PAGE_FAULT_IN_NONPAGED_AREA


문제의 원인은 Symantec Endpoint Protection이 문제였던것!! 왜 갑자기 이런 문제를 발생시킨것인지는 잘 모르겠지만... 

해결방법은

1. 안전모드로 부팅

2. 시작->실행->msconfig 

3. 서비스-> Symantec 관련된 것들 모두 중지.

4. 재부팅 하면 블루스크린 나오지 않음.

5. Symantec 관련 된 것들 모두 삭제!!

6. 다시 재부팅 후 Symantec Endpoint Protection 재설치... 재설치 후 재부팅 해도 블루스크린 나오지 않음.

이래저래 문제는 해결했지만... 이번에 Symantec 제품에 대한 불신이 조금 쌓인 것 같음.

회사에서 사용하는 거라서 안쓸 수는 없고 ㅎ

원인을 몰랐으면 포멧 후 OS 재설치 가야 하나... 라는 고민을 했는데 그래도 원인파악이 되서는 해결 ㅎㅎ

'Computer Story' 카테고리의 다른 글

[Computer Story] 하드디스크별 속도 비교 동영상  (0) 2010.07.16
PS3용 모션 컨트롤러  (0) 2009.06.05
서버 부하 테스트 툴  (0) 2008.12.22
RSA 암호  (0) 2007.09.19
OpenCV 설치하기  (1) 2007.08.19

상당히 오랜만에 블로그에 글을  쓴다.

그리고 이번 글은 정답이 없는 글이라고 생각한다. 그냥 개인적인 생각을 좀 적어보고 싶은 것 뿐.

난 아직 부족한 개발자다. 완벽하게 하고 싶지만 항상 2% 부족했고, 그리고 내 코드도 완벽하지 않다고 생각한다.  그 부족한 부분은 개발할 당시엔 모르고 한참 후에야 알게되곤 했으니까... 그리고 난 스스로 발전시킬려고 노력하고 있다. 


얼마전 프로젝트에서 디자이너가 나한테 이렇게 말했다. 

[디자이너가 나인패치를 하기 어렵고 하니 배경 관련된 부분을 pattern으로 가자고, 이전 개발자는 버튼 배경 이미지를 사용했을 대 1px짜리 버튼 이미지를 주면 코드로 알아서 모서리 부분도 라운드 처리해서 사용했다. 그러니 그렇게 가자고]

이 말을 들었을 대 순간적으로 든 생각은 이러했다.

왜!!! 편한길 놔두고 어려운길을 택했는가!!!

그래도 말로 잘 풀어서 나인패치로 했을 때의 좋은점을 설명하고 나인패치가 적용된 이미지로 받아서 프로젝트를 적용할 수 있었다. 그리고는 그 나인패치를 사용하지 않고 pattern으로만 사용하는 개발자가 누구일지 궁금하기만 했었다.


그런데...

내가 직접적으로 하는 프로젝트가 아닌 후임이 주도적으로 하고 내가 뒤에서 봐줘야 하는 프로젝트..

여기에서 다른 디자이너도 오더니 이전 개발자가 pattern으로 주면 사용했었다면서 또 같은말을 했다. 정말 답답한 마음으로 설명해줄 때... 나인패치를 사용하지 않는 개발자가 누군지 알게 되었고 왜 그렇게 하는지 물어보았을때 대답은 간단했다. 그 개발자는 pattern으로 배경 적용하고 모서리 라운딩을 코드로 처리하는게 편하다고... 

사실 개발자가 자기가 편한 방법으로 개발하면 머 틀리진 않는다. 하지만 개인적인 생각은 편하게 그리고 잘 사용하라고 만들어둔 것은 잘 활용하자는게 내 생각이다. 

나인패치로 이미지를 적용하면 정말 버튼과 같은 부분에 size만 정하고 배경에 해당 이미지만 적용하면 끝난다. 코드??? 몇줄 안되고 재활용도 잘 된다. 다른곳에서 size만 다른 버튼에 똑같은 이미지를 가져다 써도 문제가 되지 않으니까...

하지만 pattern으로 배경처리하고 code로 모서리 round처리했을때... pattern적용할 resource를 따로 만들고 round 버튼을 만들 custom layout을 만들어야 한다. 다른 방법이 있다면 shape resource를 만들어 줘야 한다는거.

음.. 과연 어떤 방법이 편할까..

개인적인 개발자 스타일이라고 생각을 해도 이건 정말 이해하기 힘들다. 그래서 두가지 방법으로 했을 때 Activity의 onCreate에서 화면이 다 만들어지는 시간을 보기로 했다... 화면이 다 만들어지는데 얼마나 시간이 걸리는지를 보고 싶어서

나인패치를 적용한 버튼이 6개 있는 화면이 만들어지는데 걸리는 시간.

07-23 15:45:21.968: D/Load Time(18945): Time NinePatch = 9

07-23 15:45:23.088: D/Load Time(18945): Time NinePatch = 9

07-23 15:45:24.013: D/Load Time(18945): Time NinePatch = 6

07-23 15:45:24.948: D/Load Time(18945): Time NinePatch = 6

07-23 15:45:25.928: D/Load Time(18945): Time NinePatch = 8

07-23 15:45:26.883: D/Load Time(18945): Time NinePatch = 8

07-23 15:45:27.758: D/Load Time(18945): Time NinePatch = 6

07-23 15:45:28.588: D/Load Time(18945): Time NinePatch = 6

07-23 15:45:29.458: D/Load Time(18945): Time NinePatch = 5

07-23 15:45:30.708: D/Load Time(18945): Time NinePatch = 9


화면은 똑같고 pattern을 이용하여 custom button을 만들었을 때..
07-23 15:47:20.543: D/Load Time(18945): Time Pattern = 10
07-23 15:47:21.523: D/Load Time(18945): Time Pattern = 13
07-23 15:47:22.378: D/Load Time(18945): Time Pattern = 9
07-23 15:47:23.248: D/Load Time(18945): Time Pattern = 15
07-23 15:47:24.018: D/Load Time(18945): Time Pattern = 13
07-23 15:47:24.803: D/Load Time(18945): Time Pattern = 8
07-23 15:47:25.708: D/Load Time(18945): Time Pattern = 7
07-23 15:47:26.563: D/Load Time(18945): Time Pattern = 8
07-23 15:47:27.548: D/Load Time(18945): Time Pattern = 7
07-23 15:47:28.423: D/Load Time(18945): Time Pattern = 11

이런 결과가 무슨 비교 대상이 될지는 모르겠다. 하지만 약간의 차이라도 속도 차이도 있고, 편의성도 상당한 차이가 있다. 편의성이라고 해봐야 코드의 양이다. 코드가 많다고 좋은 개발자라고 생각하지 않는다. 요즘은 10줄자리 코드가 한두줄로도 끝날 수 있도록 잘 만들어진 api들이 많기도 하니까. 
그냥 개인 특성이라고 생각하고 싶지만, 그래도 이해하기가 정말 힘들다. 물론 나인패치를 몰라서 사용하진 않았을 거라고 생각하진 않는다. 그래.. 그냥 개인 개발 특성이라고 생각하자...

하지만!!!
나인패치!!! 사용하면 정말 편하고 좋다!!! 처음에 점찍는거 어려울지 몰라도 익숙해지면 정말 편하다!!!
그러니 좀 쉽게쉽게 가자~~~

이번 2011-2012 시즌에 보드를 타면서 찍었던 몇몇 사진들...

성우리조트 시즌권과 시즌 락카를 구비하고 이번 시즌을 지냈으니...
많이 가긴 했으나.. 보통 가서 오전만 타고 올라오고 저녁에 일보고... 이러다 보니 정말로 많이 탔다고는 못하겠고 ㅎㅎ

2011-2012 신상 데크인 살로몬 오피셜과 릴레이프로... 작년부터 갖고 싶던 데크라 매장이 풀리자마자 사버렸던... 그래서 많은 할인율이 적용되기 전에 사버렸다... 그래도 이번 시즌 나를 즐겁게 해줬기에 기분이 좋음.


데크 세워두고.. ㅎㅎ


스티커도 안땐 베이스... 깨끗함 ㅎㅎ


내 데크..살로몬 오피셜 + 살로몬 릴레이프로... 그리고 동생거인 그레이 밤비나와 메트릭스 바인딩...


컴즈 다니면서 알게된 지인들과 같이 간 대명 비발디파크에서... 위쪽에 줄무늬 후드 입고 있는 분은 철기씨 ㅎㅎ


비발디파크에서


비발디파크


비발디파크


성우리조트에 혼자 보드 타러 가서 찍은 셀카... 


리프트 혼자 타고 올라가면서 찍은 사진...


슬로프 내려가기전...


동생이랑 같이 타러 가서 리프트에서 찍은 데크 사진...


눈이 좀 많이 온 뒤라 그런지 하얀 성우리조트


눈이 정말 많이 왔었다..ㅎㅎㅎ. 성우리조트에서...


성우리조트...


성우리조트에서 여동생...


성우리조트에서 나... ㅎㅎ 못나왔다 ㅜㅜ


소리바다에서 같이 일했던 광훈이형... 성우리조트에서 같이 보드 탐...


성우리조트... 사람 없을 때...


성우리조트... 정말 한산한 슬로프...


리프트에서 동생


대명 비발디파크... 콘도에서 짐정리하면서 찍은 사진... 사람들이 은근 많음...


컴즈에 계시는 진웅과장님... 아 이번에 차장님으로 승진 


지금 로엔에 계시는 혜진 누나...


컴즈에 있는 철기씨...


혜진누나...


대명 비발디파크... 야간


이것도 대명의 야간...


대명 리조트 놀러가서... 3명다 후드가 비비팩토리 제품 ㅋㅋㅋ


혜진 누나와 같이


혜진 누나와 석보형님..두분은 커플


대명리조트 곤도라에서.


대명리조트 곤도라에서 ㅋ


대명리조트 정상에서... 난 딴데 보고 있다~ ㅎ


이것도 딴데 보고 있음 ㅋ


대명리조트에서 단체 사진 ㅋ


대명리조트에서 단체 사진


이것도 단체~


이것도~ ㅎㅎ


즐거웠던 대명리조트


대명리조트에서 알리했던 사진... 생각보다 높이 뛰었음 ㅎㅎ


석보형님과~


대명리조트에서 야간 보딩하면서 찍은 단체 사진...


야간 단체 사진...



성우리조트에서 동생들과 같이~


성우리조트에서 동생들과 같이~


성우리조트에서 동생들과 같이~


성우리조트에서 동생들과 같이~


성우리조트에서 효상이가 찍어준 사진... 


성우리조트에서 효상이가 찍어준 사진...  슬로프 올라가는중


성우리조트에서 효상이가 찍어준 사진... 


성우리조트에서 효상이가 찍어준 사진... 동생들과 리프트 타고 올라가는중 ㅋ


성우리조트에서 효상이가 찍어준 사진... 


성우리조트에서 효상이가 찍어준 사진... 


성우리조트에서 효상이가 찍어준 사진... 엣지가 서있음 ㅎㅎ 속도만 더 있었음 땅그지턴도 가능했을지도...


성우리조트에서 효상이가 찍어준 사진... 동생들과 리프트에서 ㅋ


성우리조트에서 효상이가 찍어준 사진... 


성우리조트에서 효상이가 찍어준 사진... 알리하는중...연사로 찍었음 이 뒤에 모습이 아주 제대로 였을터인데... 참고로 안넘어졌음 ㅎㅎ


성우리조트에서 효상이가 찍어준 사진... 이건 펀파크에서... 효상이가 펀파크에 사진찍겠다고 해서 큰맘먹고 첨음 파크에 입문... 파크 재밌지만 재밌었음... 좀 과감해 질 필요가 있겠다는 생각? ㅎㅎ 이사진은 좀 일찍 찍었으면 하는 아쉬움이... 일찍 찍어줬으면 공중에 있었던 사진? ㅎㅎ
한번은 뛰니까 착지할 때 찍고... 한번은 못뛰었고... 한번은 엄한 사람 찍고 ㅋㅋ



이제 성우리조트에 한번만 더 가고 시즌종료할 예정...
셔틀이 3월1일 까지만 운행... 안그러면 사당이나 양재를 가서 셔틀을 타야 하는데... 귀찮음... 그래도 탈까나? ㅎㅎ
그리고... 정캠의 오피셜과 릴레이프로가 데크와 바인디이 좋지만... 좀 가벼웠으면 하는 바램이 있었음...
거기에 이번에 산 데님보드복 바지도 무거워서 ㅋㅋ
그라운드 트릭하는데 처음에 괜찮지만... 많이 하다 보니 체력이 딸려지기도 해서...
음... 내년 시즌엔 rocker 시리즈의 데크와 완전 가벼운 바인딩을 하나 더 구입해 볼까 하는 욕심?? 이 생김... 머 돈이 있어야 하겠지만 ㅋㅋ 이번시즌도 이래저래 장비와 의류 때문에 출혈이 너무 커서... 그럼 이월데크로?? 그럼 지금 사도 되는데? ㅎㅎㅎㅎ
하아.. 그래도 2011-2012 시즌은 너무 즐거웠음 ^^ 겨울엔 보드 없이는 못살아~~ 이러면서 어렸을 때 즐겼던 스키로 전향해 볼까 하는 욕심도 생김^^

+ Recent posts