제임스딘딘의
Tech & Life

개발자의 기록 노트 138

[우분투] Ubuntu 16.04 한글키보드 한글입력 방법

Prologue2009년부터 사용하던 오래된 노트북 컴팩 CQ40.그동안 약 4년정도를 윈도우7을 설치해서 사용해오다가, 포맷을 하고 우분투 16.04 를 설치해서 사용하기로 했다.설치를 마친 후, 한글 입력을 하려니 왠걸. 되질 않는다.기억을 더듬어보자.회사 업무PC에 우분투 12.04를 처음 설치 한 후, 한글 입력이 곧바로는 되지 않았었다.몇가지 설정을 더 해주고, 별도의 Nabi라는 입력기를 설치해야만 한글 입력이 가능했던 것 같다. 본격 Ubuntu 16.04 한글 입력 가능하게 만들기한글키보드로 한글 입력을 할 수 있게 만드는 과정은 간단하다. 1. 입력기 설치( IBus 설치 )2. 몇가지 설정 먼저, 입력기 설치다. IBus라는 입력기를 설치할 것이다. IBus hangul 패치버전 설치를..

[안드로이드] 펜딩인텐트 (Pending Intent)

안드로이드의 펜딩인텐트 (Pending Intent) 펜딩인텐트 (Pending Intent) 는 인텐트의 일종이다. 그러면 일반 인텐트와의 차이점은 무엇인지 알아보는 것부터 시작해보자. 컴포넌트에서 다른 컴포넌트에게 작업을 요청하는 인텐트를 사전에 생성시키고 만든다는 점과 "특정 시점"에 자신이 아닌 다른 컴포넌트들이 펜딩인텐트를 사용하여 다른 컴포넌트에게 작업을 요청시키는 데 사용된다는 점이 차이점이다. 수행시킬 작업 및 인텐트(실행의도)와 및 그것을 수행하는 주체를 지정하기 위한 정보를 명시 할 수 있는 기능의 클래스라고 보면 된다. 이해하기 쉽게 말하자면, 아래와 같이 하고 싶을때 사용할 수 있는 것이다. A한테 이 B인텐트를 C시점에 실행하라고 해. 지금은 실행하지 말고. 이 클래스의 인스턴스는..

[안드로이드] 안드로이드 Wi-Fi를 앱에서 소스 코드(API)로 끄고 켜는 방법

안드로이드 Wi-Fi를 코드(API)로 끄고 켜는 방법종종 앱을 개발하다보면, Wi-Fi를 앱에서 프로그램으로 제어 하고 싶을 때가 있다.안드로이드 장치의 Wi-Fi를 사용자의 터치 입력이 아니라, 자신이 개발중인 앱의 소스 코드 상에서, API호출을 하여 끄거나 켜는 방법을 알아보자. 우선, 아래와 같이 Wi-Fi 관련 권한들을 매니페스트 파일(AndroidManifest.xml)에 선언해야 한다. 이제 간단히 예제를 만들어 보겠다.Enable 및 Disable 기능을하는 2개의 버튼을 가진 간단한 샘플 앱을 만들 것이다. 우선, 간단히 아래와 같이 xml을 통해 Layout을 만든다. 파일이름은 activity_main.xml 으로 했다. 그리고 AndroidManifest.xml 은 아래와 같이 했..

[안드로이드] 안드로이드 Activity

안드로이드 액티비티란?Activity는 일종의 애플리케이션 구성 요소로서, 사용자가 전화 걸기, 사진 찍기, 이메일 보내기 또는 지도 보기 등의 일을 하기 위해 상호작용할 수 있는 화면을 제공한다.액티비티마다 창이 하나씩 주어지며, 안드로이드 앱 개발자는 이곳에 UI(사용자 인터페이스)를 구현하게된다. 이 창은 일반적으로 화면을 가득 채우지만, 작은 창으로 만들어 다른 창 위에 띄울 수도 있다. 하나의 애플리케이션은 보통 여러 개의 액티비티가 느슨하게 서로 묶여 있는 형태로 구성된다. 통상 한 애플리케이션 내에서 하나의 액티비티가 "Main" 액티비티로 지정되며, 사용자가 이 애플리케이션을 처음 실행할 때 이 "Main"으로 지정된 액티비티가 사용자에게 최초로 보여지게 된다. 각각의 액티비티는 여러 가지..

[네트워크/프로토콜] BOOTP 에 대해서. BOOTP 패킷 형식(BOOTP Packet Format)

BOOTP 에 대해서. BOOTP 패킷 형식(BOOTP Packet Format) 위의 BOOTP 특성에서 알아봤듯이, BOOTP에서 정보를 교환한다는 것은 클라이언트가 보낸 요청과 서버가 보내는 답장 쌍을 이루는 것이다.BOOTP도 일반적인 다른 '요청 / 응답 프로토콜'들과 마찬가지로 요청 및 응답에 사용되는 공통된 메시지 형식을 정의해서 사용하고 있다. 구현하기 나름이겠지만, 일반적으로 클라이언트는 요청메시지의 크기만큼의 메모리 공간을 모두 0으로 초기화 하는 것 부터 시작한다.그런 다음 이전 항목에서 보았던 것처럼 각각의 메시지 필드를 채운 다음 요청을 서버로 보낸다. 사실 역시 구현하기 나름이겠지만, 일반적으로 서버측은 메세지를 처음부터 다시 작성하지 않고, 클라이언트로 부터 받은 요청을 메모리..

[네트워크/프로토콜] BOOTP 에 대해서. BOOTP 클라이언트/서버의 메세지전송과 주소설정 방법

BOOTP 에 대해서: BOOTP 클라이언트/서버의 메세지전송과 주소설정BOOTP는 다양한 장치에 사용할 수 있지만, 최초 개발의 주된 동기 중 하나는 저장 장치가 없는 "멍청한"장치를 자동으로 구성하는 방법을 제공하는 것이었다.대부분 이러한 멍청한 장치들은, 비교적 제한된 기능만을 가지고 있기때문에, 근사한 부팅 프로토콜을 지원하도록 요구하는 것은 사실 말이 되지않았다.따라서 BOOTP는 복잡한 개념이나 근사한 개념 혹은 근사한 구현 요구사항 없이, 호스트 구성을 수행하는 복잡하지 않은 프로토콜이다. BOOTP 클라이언트 및 서버다른 많은 TCP / IP 프로토콜과 마찬가지로 BOOTP는 실제로 클라이언트 / 서버이다.프로토콜의 작동은 BOOTP 클라이언트와 BOOTP 서버 간의 단일 메시지 교환으로 ..

[C#] C#.net에서의 시리얼통신 기초

C#.net에서의 시리얼통신 기초 C#은 시리얼 통신에 대한 모든것을 개발자가 구현할 필요 없이 매우 쉽고 간단하게 사용할 수 있는 객체를 지원한다. 그것은 System.IO.Port namespace에 포함되어있는 System.IO.Ports.SerialPort 인데, Visual Basic 6.0 에서 지원하던 Comm 컨트롤과 매우 유사해 사용은 간단했다. 참고로 이 글은 .net framework 3.5 기준으로 작성됐다. 객체 생성SerialPort 객체를 Form에 끌어넣어주면 된다.SerialPort 객체는 Device Components 에 있다. 아래 그림을 참고하자. 또한, 아래와 같이 namespace 추가가 되었는지 코드를 확인해보고, 안되어있다면 추가하도록 한다. using Sys..

[GPS 이야기] TTFF와 Almanac, Ephemeris 그리고, GPS의 start 방식, Cold start/Hot start/Warm Start ?

여기서는 GPS에 대해 이야기를 해볼까 합니다.GPS는 Global Positioning System의 약자인 것은 널리 알려진 내용인데요. 오늘은 GPS의 이야기를 시작하기에 앞서, 몇가지 용어를 알아볼까 해요. TTFFTTFF(Time To First Fix)란 GPS 수신기의 전원을 켰을 때 GPS 수신기가 현재 위치를 파악하는 데까지 소요되는 시간을 뜻하며, 상황에 따라 Factory Start, Cold Start, Warm Start, Hot Start로 구분됩니다.TTFF를 이해하기 위해서는 먼저 Almanac 데이터와 Ephemeris 데이터에 대하여 이해할 필요가 있습니다.지상의 여러 부 관제국에서 GPS 위성신호를 항시 관측하여 그 데이터를 주 관제국으로 보내고, 주 관제국에서는 그 데..

[안드로이드] SDK manager 통한 업데이트후 ADT 실행 시 오류

지금은 많은 안드로이드 어플리케이션 개발자들이 Eclipse + ADT 조합에서 Android Studio로 넘어갔을 것이라 예상한다.하지만, 나는 아직도 Eclipse + ADT 조합을 이용한다. 그런데 어느순간, SDK manager를 통해 SDK를 업데이트 하고 나서부터 아래와 같이 ADT를 상위버전으로 업데이트 하라는 에러가 발생한다. 그냥 무시하고 써도 되겠거니.. 하고 Close하고 살펴봤는데, 이게 웬걸.아무것도 할수가 없었다.관련 패키지 로딩이 제대로 되지 않는 것으로 판단된다. 그래서 지시한 대로 [Help > Check for Updates]를 클릭하면 업데이트할 항목이 없다거나, 엉뚱한 것들만 표시된다. SubVersion 혹은 SVN 같은 것들. 한참 헤매다 보니, 아래와 같은 방법..

Notepad++ Plugin : NPP Export Plugin

Notepad++ Plugin : NPP Export Pluginnotepad++의 plug-in중, code의 syntax highlight를 보이는 그대로 html형식으로 클립보드에 복사해주는 플러그인이 있다.관련 글은 아래 URL에서 볼 수 있다.관련 질문 : http://stackoverflow.com/questions/3475790/copy-notepad-text-with-formatting 이 플러그인의 코드는 git hub에 공개되어 있다.Github URL : https://github.com/chcg/NPP_ExportPlugin 그리고 dll로 빌드해서 다운로드 받을 수 있는 경로가 제공된다.https://ci.appveyor.com/project/chcg/npp-exportplugin..