<?xml version="1.0" encoding="UTF-8"?><lists>
	<data>
		<rowid>9</rowid>
		<subject><![CDATA[인터넷이 보급되면서 사용자에 대한 신용과 서비스 공급자에 대한 신뢰가 서로 부합해야 정상적인 거래가 이루어질 수 있는 문제에 봉착했고 
이러한 문제는 시대의 흐름에 따라 요구되는 신뢰의 방식이 달라지고 있습니다. ]]></subject>
		<reg_date>2010.01.03</reg_date>
		<content><![CDATA[
		인터넷이 보급되면서 사용자에 대한 신용과 서비스 공급자에 대한 신뢰가 서로 부합해야 정상적인 거래가 이루어질 수 있는 문제에 봉착했 고 이러한 문제는 시대의 흐름에 따라 요구되는 신뢰의 방식이 달라지고 있습니다. 하지만, 실뢰와 낙인은 다른 개념입니다. 목적이 신뢰였는데, 좀더 심사숙고할 필요없이 확실한 방법이인 것 같다는 저차원적인 접근으로 낙인을 사용하는 것은 근본의 목적을 잊어버리고 무책임한 처사가 아닐 수 없습니다. 한국의 개인인증방식이 그러한 역사를 잘 보여줍니다. 수치스러운 현상이 아닐 수 없습니다. 필자도 인터넷 개발 1세대라 이 문제에서 극구 반대를 했지만, 결국 사회를 움직이는 지배세력의 움직임은 철학과 근본을 상실한 단기적인 이익을 위주로 움직였습니다. 인터넷상에 회원을 가입하는데 한국에서만 사용하고 노출되면 안되며, 국가에서만 관리되어야 할 주민번호 등의 개인정보를 남발하는 체계가 자리잡은데 대해 한탄스러운 결과라 생각하며, 본인도 이에 대해 아무런 영햑력을 미치지 못한데 무한한 책임을 느낌니다. 인너넷은 한국에서만 사용하는 것이 아니고 전세계를 대상으로 움직이는 네트웍입니다. 이러한 간단한 개념만 잘 이해하고 있다면, 지금같이 단순하고 근시안적이며 노예의 낙인과 같은 인증방식은 사용하지 않았을 것입니다. 국가에서도 인터넷에 대한 심도있는 연구가 부족하여 주민번호 등의 개인정보를 사용하는데에 대한 규제가 없었고 이제는 전세계에 한국의 주민번호가 떠돌아 다니는 상황에 까지 이르렀습니다. 그렇다고 상황이 끈났다고 생각하며 할수없는 처사가 아니냐는 생각을 가진다면 십수년전의 상황은 그대로 반복될 것입니다. 의식을 가진 지위권자가 근본부터 심도있게 연구하고 사회적인 캠페인을 알으켜 하나하나 교정해 가야 합니다. 또한, 의식있는 지도자가 나타나기 위해서는 의식있는 사용자와 개발자 즉, 대중이 이에 대한 요구가 절실해야 함을 잊지 많고 기반부터 탄탄한 계몽이 필요합니다. 계몽은 근대에만 존재해야 하는 역사가 아닙니다. 역사는 수수방관하면 개탄스러운 결과를 보여준다는 사실을 잊지 말아야 합니다.
		]]></content>
	</data><data>
		<rowid>8</rowid>
		<subject><![CDATA[전화 번호 기재사항에서 주의해 야 할 것은 맨 앞부분에 ' + ' 기호를 반드시 붙여 주어야 합니다.  ]]></subject>
		<reg_date>2010.01.03</reg_date>
		<content><![CDATA[
		본인의 핸드폰 번호가 010-1234-5678 이라면 [+821012345678] 기재합니다.
앞의 숫자 82는 한국 국가 번호입니다. 핸드폰의 경우 010의 앞자리 0을 제외한 나머지 10과 뒤의 번호를 그대로 기재해주면 됩니다. 지역번호 경우도 마찬가지로 서울일 경우 02지역번호에서 0을 제외한 2부터 기재하여 주면 됩니다.
]]></content>
	</data>
	<data>
		<rowid>7</rowid>
		<subject><![CDATA[개발자등록이 완료되면, 개발자가 제작한 앱을 업로드는 할 수 있지만, 곧바로 퍼블리싱을 할 수 는 없습니다.]]></subject>
		<reg_date>2010.01.03</reg_date>
		<content><![CDATA[개발자등록이 완료되면, 개발자가 제작한 앱을 업로드는 할 수 있지만, 곧바로 퍼블리싱을 할 수 는 없습니다. 등록이 되었어도 진행 중이기 때문입니다. 등록완료 안내문에 안내하듯이 곧바로 배포할 수는 없습니다. 안드로이드 관리자가 신청사항을 검토하고 승인해주는데, 하루정도의 시간이 소요됩니다.]]></content>
	</data>
	<data>
		<rowid>6</rowid>
			<subject><![CDATA[터미널을 이용한 앱인증키 생성]]></subject>
		<reg_date>2010.01.03</reg_date>
		<content><![CDATA[터미널 명령에 익숙한 개발자라면, 다음에서 설명하는 바와 같이 앱인증키를 터미널 명령으로 생성할 수 있습니다.
"MS Windows" 에서는 명령프롬프트(CMD.exe)를 실행하고, "Mac OS X"와 같은 유닉스계열에서는 터미널을 실행합니다.
과정1. 명령프롬프트 또는 터미널을 실행합니다.
과정2. "mkdir"명령으로 "앱키폴더(C:\User\owl\Keytools)"를 생성하고, "cd"명령을 "앱키폴더"로 이동합니다.
과정3. 다음과 같이 "keytool"명령을 이용하여 "앱키생성"을 시작합니다.
- 앱키생성 명령 형식 : keytool -genkey -v -keystore "앱키파일명" -alias -alias_owl -keyalg RSA -validity "유효기간(년)"
- 앱키생성 명령 사례 : keytool -genkey -v -keystore test/test-key.keystore -alias -alias_owl -keyalg RSA -validity 10000]]></content>
	</data>
	<data>
		<rowid>5</rowid>
			<subject><![CDATA[Hot Code Replace Failed ]]></subject>
		<reg_date>2010.01.03</reg_date>
		<content><![CDATA[가상기기를 "디버그 모드"로 켜두고, 소스를 변경할 때, 그림과 같은 경고문이 나타납니다. 요약하자면, 변경사항을 즉시 가상기기에 반영할 수 없다는 의미입니다. "Continue"버튼을 클릭하고 계속 코딩하면 됩니다.
이 경고문의 내용을 정리하면 다음과 같습니다.
메소드명을 바꾼다거나 오류가 발생하는 경우 작동중이 가상기기에 즉시 반영하지 않습니다. 응용 프로그램을 계속실행하는데는 문제가 없지만, 코드가 달라졌기 때문에 계속 디버깅하는데는 수정된 사항이 반영되지 않을 수 있으니 감안하고 진행하거나 새로 디버그 모드로 실행하는 것이 좋습니다. "Continue"버튼을 클릭하면 계속 진행하겠다는 것을 의미하고, "Disconnect" 버튼을 클릭하면 가상기기와의 연결을 해제한다는 것을 의미합니다.]]></content>
	</data>
	<data>
		<rowid>4</rowid>
			<subject><![CDATA[액티비티와 리소스의 연동원리]]></subject>
		<reg_date>2010.01.03</reg_date>
		<content><![CDATA[표면적으로 개발자가 해야하는 작업입니다. 이렇게만 해도 만들어지기는 하나 작동원리를 이해하지 못하면, 나중에 개발에 대한 아이디어도 없을 것이고, 응용할 수 있는 능력도 뒤처질 수 밖에 없습니다.
위와 같은 작업은 매우 단순하지만, 액티비티가 뷰리소스를 호출하여 화면에 출력하는 과정을 보여주고 있습니다. 액티비티는 "src/com.owl.app/appSite.java"파일이고, 화면에 보이는 실체인 뷰리소스는 "res/layout/intro.xml"입니다. 또한, 액티비티와 뷰리소스를 "gen (Generated Java Files)"가 자동으로 중계역할을 해줍니다.]]></content>
	</data>
	<data>
		<rowid>3</rowid>
			<subject><![CDATA[프로그래밍의 솔루션 선택방법론]]></subject>
		<reg_date>2010.01.03</reg_date>
		<content><![CDATA[프로그램을 하는데 "어떤 클래스를 사용하고, 어떤 메소드를 사용해야 목적에 맞는 솔루션을 시행착오없이 신속하게 구현해 낼 수 있는냐"의 문제가 바로 "솔루션 선택방법론"입니다. 산에 오르는데 선택할 수 있는 안내문에 있는 몇 가지 입구를 보고 등산길을 판단하고 선택하는 것과 비슷합니다.

안드로이드 웹뷰에서 한글 인코딩을 해결하는 솔루션의 경우, 좋은 사례가 될 수 있습니다. 본서에서 "안드로이드 한글 인코딩"을 해결하는 방법으로 몇 가지를 추려 설명하지만, 좀 더 넓게 보고 구상해보면, 수십가지, 수백가지로도 세분화해서 솔루션을 풀어 낼 수 있습니다. 마치, 산에 오르는 방법을 등산 안내문과 같이 몇 가지로 설명하지만, 길을 개척해서 올라갈 수도 있고, 걷기를 포기하고 헬기를 타고 날라갈 수도 있는 것과 같은 논리입니다.

하지만, 여건에 맞지 않는 비현실적인 상상만 것이 목적은 아닙니다. 여건과 목표한 기능을 구현하는데 목적이 있으므로, 사용할 수 있는 연장과 자신의 재량에 맞는 명석한 선택이 필요합니다.

특히, 자료나 솔루션이 부족한 상태에서 개발할 때, 프로그래머로서의 실력차는 "클래스를 몇 개 더 외우고 있느냐" 또는 "비슷한걸 만들어 봤느냐"에서 결정되는 것이 아니고, 이와 같은 판단력과 통찰력에서 결정됩니다. 수학문제를 풀 때, 문제의 취지와 구해야 할 해답이 목적임을 잊고, 혼탁한 상태에서 미로속을 해메는 것과 같은 것입니다. 만들어야 할 프로그램이 있어 무턱대고 습관처럼 컴퓨터 앞에 앉아 코팅만 해댄다면, 이미 비젼(Vision)없는 개발자로 전락하고 있는 것입니다. 개발자는 항상 이를 경계해야 합니다.

안드로이드 한글인코딩을 해결하는 솔루션을 선택하는 방법을 사례로 솔루션 선택방법론을 소개해 보겠습니다.

"loadUrl()"은 메소드 정의에서 보는 바와 같이 인코딩을 제어할 수 있는 인자가 없습니다. 웹주소를 직접 호출하는 방식이므로 웹서버에서 받은 데이터를 원하는 인코딩을 변환할 방법이 잘 보이지 않습니다. "loadUrl()"메소드의 인자 중 "Map<String, String>"객체인 "extraHeaders"를 이용하여 수신할 데이터의 인코딩을 데이터 헤더로 선언하는 방법이 엿보이긴 하지만, 이도 분명치 않은 것이 안드로이드 매뉴얼에 명백하게 설명하고 있지 않고, "loadData()"메소드가 "extraHeaders"정보를 받아 데이터 전체의 인코딩을 변환해 주도록 프로그램되어 있는 지 알 수 없습니다. "android.webkit.WebView"클래스의 소스를 분석해 보고 실험을 통해 입증하지 않는 이상 장딤할 수 없는 방식입니다. 산에 오르다 길이 막힐 수 있는 가능성이 높은 방법입니다.

다행히, 안드로이드 웹뷰는 "loadData()"와 "loadDataWithBaseURL()"에서 인코딩을 변환할 수 있는 "encoding"인자를 제공하고 있습니다. 안드로이드도 웹의 필수 솔루션인 인코딩에 대한 해법을 놓칠리 없습니다. 다행이라기 보다는 당연한 일입니다. 하지만, "loadData()"의 정의서를 보면, 나중에 실험결과로 보여주겠지만, 네트웍 HTML 데이터를 웹뷰에서 제대로 출력하지 못합니다. 따라서, "baseUrl" 인자 때문에 조금은 아쉽고 제약적인 요소가 있지만, "loadDataWithBaseURL()"메소드를 사용할 수 밖에 없습니다.

개발자는 이렇게 주어진 여건 속에 솔루션을 판단하고 선택하는 통찰력과 맑은 판단력이 꼭 필요합니다.]]></content>
	</data>
	<data>
		<rowid>2</rowid>
			<subject><![CDATA[안드로이드 개발자 매뉴얼에는 아직 체계적인 샘플소스가 많이 부족합니다.]]></subject>
		<reg_date>2010.01.03</reg_date>
		<content><![CDATA[조금 아쉬운 점은 다른 클래스에 대한 안드로이드 매뉴얼도 그렇지만 좀더 현실적인 샘플 소스가 없다는 점입니다. 자바 개발을 오래 해보면서 프레임웍까지 개발해 본 속련된 개발자도 클래스나 메소드, 속성, 이벤트에 대한 정의만 가지고는 사실상 시행착로는 겪는 실험과정을 통해야만 활용할 수 있습니다. 다른 개발언어에 비하면, 대중적인 기반을 가지고 있으면서도 관련 샘플 소스가 체계적을 수집되고, 디버깅 될 수 있는 시스템이 구비되지 않고 있습니다. 웹뷰 속성의 경우, 믾은 실험을 통하거나 원본 클래스 소스를 복석해야만 정확한 의미를 알 수 있습니다. 안드로이드가 더욱 발전하기 위해서는 이와 같이 필요치 않은 노력을 많은 개발자가 똑같이 해야하지 않도록 구체적인 매뉴얼 시스템이 필요합니다.]]></content>
	</data>
	<data>
		<rowid>1</rowid>
			<subject><![CDATA[입력기 해킹]]></subject>
		<reg_date>2010.01.03</reg_date>
		<content><![CDATA[해커가 키보드 프로그램을 변조하여 사용자가 입력하는 값을 수집하는 경우가 있습니다. 이 키보드는 현재 개발을 목적으로 하고 있고 실제 사용자가 사용하는 한글 입력기는 단말기 제조사가 제공하므로 실사용자에 큰무제가 없을 것입니다. 혹시라고 해킹목적으로 변조된 한글 입력기를 개발자가 가상기기에 설치하고 실제 개인정보를 입력한다면, 해킹의 피해를 입을 수도 있으니 주의가 필요합니다. 이와 같은 문제는 보안이 인증된 공식 사이트에서 받아 설치하지고 떠돌아 다니는 입력기를 받아 설치할 경우에 가능성이 있지만, 항상그런것이라고 할 수는 없습니다. 오해의 소지도 다분하다는 의미입니다. 만일, 한국에 국가적인 차원의 공식적인 한글입력기 관리 기관에서 이를 관리한다면 안드로이드에 한글자판이 지원되지 않는 불상사가 벌어지지도 않았을 뿐더러 이런 보안문제가 완전히 없어지지는 않더라도 체계적으로 대처할 수 있고 피해를 최소화할 수 있으리라 생각합니다. 필자도 능력은 미천하지만 소프트웨어 개발업계에 오래동안 몸담고 있으면서도 이러한 사회적 합의를 도출하는데 노력을 소홀이 한데에 대한 깊이 반성합니다.
]]></content>
	</data>
</lists>