'전체'에 해당되는 글 56건
- 2010/04/13 안드로이드 이야기 (2010/04/13)
- 2010/03/22 안드로이드 이야기 (2010-03-22)
- 2010/03/15 넥서스원과 아이폰 구입 (4)
- 2010/02/21 이클립스 코드 흉내내기
- 2010/01/29 [책] Git, 분산 버전 관리 시스템 (인사이트, 2010) (2)
- 2010/01/03 이클립스에서 안드로이드 소스 코드 보기
- 2009/12/28 눈사람을 만들다 (2009-12-27)
- 2009/12/26 [eclipse] Smart Compare 플러그인
- 2009/12/06 아이맥 구입 그리고 ... (2009/11/06)
- 2009/12/06 낙서 (2009-08-09)
안드로이드 이야기 (2010/04/13)
무언가 할 얘기가 많았지만 당장 생각나는 내용만 정리한다.
1) 인텔리제이(IntelliJ)로 이전하는 데 성공했다.
기본 키맵을 Max OS X 10.5+로 바꾸니 이클립스에 적응돼서 어색하던 부분도 대부분 해결된다. 맥에서 익숙한 단축키들이 대부분 적용되기에 쾌적하게 이용할 수 있다. Eclipse용 키맵도 제공하지만, 윈도 단축키를 기반으로 단축키가 설정되어 있어서 맥 사용자는 오히려 불편하다.
안드로이드 개발에는 인텔리제이를 강력 추천한다.
2) 비율을 정확히 고정시키고 싶을 때는
자체 테이블을 그리거나 할 때 TableLayout을 사용하면 알아서 늘어나고 줄어드는 컬럼 때문에 정신건강에 좋지 않다. 이럴 때는 LinearLayout을 이용해서 android:layout_width를 0px로 변경하고, weight로 비율을 고정하면 늘어나고 줄어들지 않게 고정시킬 수 있다. 정확히 나뉜 컬럼이 필요하거나 할 때는 이 방법을 이용한다. 단, 이렇게 나뉘는 영역에는 당연하겠지만 margin이 포함되지 않으니 margin을 함부로 사용하면 어그러진다. padding을 잘 활용해야 한다.
- android:layout_width="0px"
android:layout_height="wrap_content" - android:layout_weight="0.25"
3) Footer를 삽입하는 가장 효과적인 방법은?
RelativeLayout으로 부모와의 관계를 지정하면 된다. 화면의 상단 부분은 무슨 레이아웃을 써도 고정시키기 어렵지 않은데, 아래부분은 LinearLayout 등으로 고정시키기 쉽지 않고 그리 권장할 만한 방식은 아니다. RelativeLayout을 절대값을 이용하는 방식과 비슷하게 생각하고 무시하면 안 된다. 개인적으로는 LinearLayout과 함께 가장 많이 사용한다.
- android:id="@+id/footer"
- android:layout_alignParentBottom="true"
4) Style의 활용
XML 코드에서는 아무래도 복사하고 붙여넣는 행위에 대한 죄책감이 적은데, 이것도 분명 코드의 중복이다. 그리고 HTML 엘리먼트에 스타일 속성들 넣어서 사용하면 저질스러운 행동이라고 알면서, 유달리 XML에 관대하다. 안드로이드의 XML 레이아웃은 HTML과 유사해서 CSS로 스타일을 정의하듯이 Style 파일로 관련 스타일을 관리할 수 있다.
사실 XML에 스타일 바로 정의해서 사용하는 경우도 잦긴하다. 그래도 반복적으로 사용하는 것들은 추출해서 사용하자.
5) 컬렉션에 큰 자료구조 넣지 말자
모토로이나 넥서스원 급의 기기에서 아무런 문제가 없다고 해서 문제가 없는 게 아니다. 당장 에뮬레이터를 띄워서 큰 컬렉션을 사용하는 부분을 돌려보면 Out of Memory로 뻗어버리는 경우가 잦다. 모바일 기기에서 메모리에 큰 자료구조를 잡아서 사용하는 방식자체가 문제지만 자바에서 습관적으로 사용하던 방식대로 사용하면 안 된다.
이 글은 스프링노트에서 작성되었습니다.
'개발 이야기' 카테고리의 다른 글
| 안드로이드 이야기 (2010/04/13) (0) | 2010/04/13 |
|---|---|
| 안드로이드 이야기 (2010-03-22) (0) | 2010/03/22 |
| 이클립스 코드 흉내내기 (0) | 2010/02/21 |
| 이클립스에서 안드로이드 소스 코드 보기 (0) | 2010/01/03 |
| [eclipse] Smart Compare 플러그인 (0) | 2009/12/26 |
| [Mac] Hex Color Picker (0) | 2009/12/06 |
안드로이드 이야기 (2010-03-22)
1) 안드로이드 개발환경으로는 IntelliJ IDEA가 좋은 것 같다.
이클립스 플러그인 개발자로서의 자존심을 버리고 개발환경을 IntelliJ로 옮겨 왔다 (아직은 평가판으로 평가 중). 아무리 생각해도 Mac용 이클립스는 여전히 무언가 이상하고, 안드로이드 개발 환경은 이상하게 느리다. IntelliJ는 UI 디자이너를 제공하지는 않지만 어차피 만족스러운 수준이 아닌지라 XML을 편집하게 되는데, XML 편집 기능 만큼은 IntelliJ가 최고다. IntelliJ는 버전 4일 때 정도 써본 것 같은데 아직은 많이 어색하다.
근데 이클립스나 IntelliJ나 자체 Logcat 뷰어에서는 UTF-8을 지원하지 않아서 한글이 깨진다. 당장은 adb logcat으로 보는 편이 좋다 (윈도에서는 명령 프롬프트의 인코딩을 변경해야 한다). 결과는 grep으로 원하는 정보만 잡아서 보자.
2) ViewFlipper로 원하는 페이지 이동하기
Swing의 CardLayout이나 SWT의 PageBook과 비슷한 역할을 수행하는 ViewFlipper는 자칫 이전 페이지/다음 페이지 전환 밖에는 허용하지 않는 것으로 볼 수 있다. showNext()와 showPrevious()와는 다르게 setDisplayedChild()라는 이름으로 원하는 인덱스의 페이지로 이동하는 기능을 제공한다. 이름만으로는 찾기 쉽지 않다. 항상 의심되면 직접 소스를 열어서 확인해보자.
3) 프로그래밍적으로 TextView의 텍스트 색상 변경하기
text.setTextColor(R.color.color1)과 같은 방식으로 색상을 변경할 수 없으니 속지 말아야 한다. text.setTextColor(getResources().getColor(R.color.color1))와 같은 방식으로 색상을 변경한다. 동적으로 색상을 변경할 필요가 없다면 프로그래밍적으로 색상 변경을 하지 않는 편이 좋다. 대신 XML에 선언적으로 정의하는 방식을 이용하자.
이 글은 스프링노트에서 작성되었습니다.
'개발 이야기' 카테고리의 다른 글
| 안드로이드 이야기 (2010/04/13) (0) | 2010/04/13 |
|---|---|
| 안드로이드 이야기 (2010-03-22) (0) | 2010/03/22 |
| 이클립스 코드 흉내내기 (0) | 2010/02/21 |
| 이클립스에서 안드로이드 소스 코드 보기 (0) | 2010/01/03 |
| [eclipse] Smart Compare 플러그인 (0) | 2009/12/26 |
| [Mac] Hex Color Picker (0) | 2009/12/06 |
넥서스원과 아이폰 구입
결론부터 말하자면 넥서스원(Nexus One)을 구입해서 곧 개통할 예정이고, 네이버 이벤트에서 아이폰(iPhone)이 당첨돼서 개통 했습니다. 10년을 사용한 번호를 바꾸고 싶지도 않았고 아이폰 외에는 그리 끌리는 스마트폰이 없어서 2G 피쳐폰을 사용하고 있었습니다. 사실 아이폰의 유혹을 뿌리치면서 맘에 드는 안드로이드폰 발매를 기다리고 있었는데 기대하지 않은 이벤트 당첨 덕분에 아이폰 사용자가 됐습니다. 넥서스원의 구입은 약간 충동적인데 당장 일에 안드로이드폰이 필요하기는 했지만 분명 다른 선택이 있었음에도 구매했습니다.
넥서스원. 인증 신청 후 기기만 먼저 돌려 받은 상태로 다음 주에 개통할 예정입니다.
넥서스원과 전용 독(Dock). 독에 올려두면 탁상 시계가 됩니다. 그리고 독은 블루투스를 내장하고 있는데 연결된 스피커로의 음악 재생 이외에 다른 기능은 없는 것으로 보입니다.
전용 독에 올려두고 오른쪽 상단 아이콘을 꾹 눌러주면 잘때도 방해 받지 않고 시간을 확인할 수 있는 탁상 시계가 됩니다.
네이버 뮤직 이벤트로 받은 아이폰. 전화기로서의 가치보다는 3G 인터넷, GPS, 나침반, 스피커 등이 주는 편리함이 대단하네요.
아이폰과 넥서스원. 아이폰 애플리케이션 개발도 탐나지만 두 기종을 모두 사용하면서 얻을 수 있는 아이디어가 더 기대됩니다.
아직 개통도 하지 않은 넥서스원의 사용 느낌은
- 기기 자체에 대해서는 꽤 만족합니다. 다만, 아래 터치 버튼이 자꾸 실수로 눌려서 불편합니다. HTC의 Desire는 이 부분을 하드웨어 버튼으로 처리했던데 그래서 기대됩니다.
- 구글의 서비스가 이렇게 잘 연동된다니 무섭네요. 하지만 아직 한국 사용자에게 불친절합니다. 한글화는 잘 된 편이지만 당장에 기본 연락처 애플리케이션만 봐도 A-Z까지의 목록만 제공하고 한글은 그 뒤에 붙습니다. 한국 사용자를 잘 배려한 애플리케이션을 기본 탑재한 네이버폰, 다음폰이 기대됩니다.
- 개인적으로는 빠른 개발폰이 생겨서 너무 좋습니다. 아이폰 애플리케이션을 만들 때는 시뮬레이터로 작업하고 폰에 올려서 확인하지만, 안드로이드 애플리케이션은 (아이폰에 비해 폰에 바로 배포하기 꽤 편하기 때문이기도 하지만) 일단 폰에 올려서 개발하고, 다양한 버전과 해상도에 대한 테스트를 에뮬레이터에서 진행한다고들 하네요. 안드로이드 에뮬레이터는 느리지만 잘 만들어서 괜찮은 게 아니라, 잘 만들었지만 너무 느려서 안 괜찮습니다.
- 전용 독에 올려두고 개발 폰으로 사용할 수 있었으면 하는 아쉬움. 넥서스원이 iTunes와 같은 클라이언트 프로그램이 있는 것도 아니라 블루투스를 포함하고 있어도 오디오를 듣는 것 말고는 딱히 사용할 일이 없습니다. 그 기능만 놓고보면 가격이 저렴하지는 않습니다. 사실 개발용도의 USB 디버깅 기능을 블루투스를 이용해 대체해 주기만해도 참 편할텐데 조금 아쉽네요.
합리적으로 생각한다면 이렇게 외국폰을 들여와 인증 받아서 사용하는 게 바람직하지는 않습니다.
- 일단 전혀 경제적이지 않습니다. 단말기 할부도 지원 받을 수 없고 일시불로 구입해야 합니다. 무엇보다도 30만원 중반에서 50만원이나 되는 인증 비용을 추가로 지불해야 합니다. 관련 액세서리도 구하기 쉽지 않을 수 있습니다. 당장 넥서스원 전용 독을 따로 구입하려고 해도 10만원에 가까운 비용을 지불해야 합니다.
- A/S를 기대할 수 없습니다. 사용하다 고장이 난 경우에도 그렇지만, 초기 제품 불량에 대해서도 구입 방법에 따라서 다르겠지만 제품 교환이 쉽지 않습니다.
- 그리고 제가 생각하는 가장 큰 문제로 통신사의 서비스에서 배제될 수 있습니다. 앞으로 개선될지 모르지만 현재는 SKT로 개통해도 티스토어와 MMS를 이용할 수 없습니다. 그리고 모토로이 등의 폰에서 무료로 제공할 예정인 티맵 등의 서비스도 기대하기 어렵습니다. 당장은 이렇다할 통신사의 서비스가 없지만 앞으로 각 통신사의 안드로이드 관련 서비스가 진행돼도 배제될 가능성이 큽니다.
그렇다고 아무런 장점도 없는 것은 아닙니다.
- 어느 정도 안정적인 소프트웨어 업데이트를 기대할 수 있습니다. 특히, 넥서스원의 경우 레퍼런스 폰의 성격도 가지고 있기에 하드웨어 성능이 되는 한 업데이트가 지원되리라 예상할 수 있습니다. 이런 이유로 국내 전용 모델이 아니라 외국 발매 모델의 기다리는 사람이 많다는 사실을 국내 회사들이 알아줬으면 좋겠네요.
- 커뮤니티의 지원을 기대할 수 있습니다. 많은 사용자를 확보한 제품의 경우 외국 커뮤니티에서의 다양한 정보, 소프트웨어 지원을 기대할 수 있습니다. 저는 가능하면 제품 그대로 사용하려고 하기에 당장은 큰 메리트가 되지 못하는데 더 이상 소프트웨어 업데이트가 공식적으로 지원되지 않는 경우에도 XDA와 같은 곳에서의 지원을 기대해볼 수 있습니다.
오랜만에 하는 포스팅이라 글이 길어졌는데 저 2G폰 사용하다 스마트폰 된장 됐습니다. :)
이 글은 스프링노트에서 작성되었습니다.
'일상 이야기' 카테고리의 다른 글
| 넥서스원과 아이폰 구입 (4) | 2010/03/15 |
|---|---|
| 눈사람을 만들다 (2009-12-27) (0) | 2009/12/28 |
| 아이맥 구입 그리고 ... (2009/11/06) (0) | 2009/12/06 |
| 낙서 (2009-08-09) (0) | 2009/12/06 |
| 울릉도 여행(2) (0) | 2009/12/06 |
| 울릉도 여행(1) (0) | 2009/12/06 |
이클립스 코드 흉내내기
"이클립스 플러그인 개발"을 주제로 월간 마이크로소프트웨어 2009년 7월호에 실렸던 글을 공개합니다. 6월호에 실렸던 이클립스 플러그인 개발 시작하기는 플러그인 개발을 처음 시작할 때 필요한 내용을 소개했고, 7월호에서는 『이클립스 코드 흉내내기 - 히스토리 기능 확장』라는 제목으로 기존 이클립스의 코드를 참고해서 흉내내고 확장하는 주제를 다뤘습니다.
이 글은 스프링노트에서 작성되었습니다.
'개발 이야기' 카테고리의 다른 글
| 안드로이드 이야기 (2010/04/13) (0) | 2010/04/13 |
|---|---|
| 안드로이드 이야기 (2010-03-22) (0) | 2010/03/22 |
| 이클립스 코드 흉내내기 (0) | 2010/02/21 |
| 이클립스에서 안드로이드 소스 코드 보기 (0) | 2010/01/03 |
| [eclipse] Smart Compare 플러그인 (0) | 2009/12/26 |
| [Mac] Hex Color Picker (0) | 2009/12/06 |
[책] Git, 분산 버전 관리 시스템 (인사이트, 2010)
제가 공역한 『Git, 분산 버전 관리 시스템』의 예약 판매가 시작 됐습니다. 책의 표지는 물이 퍼지는 그림으로 "퍼진다 == 분산"이라는 느낌을 표현했군요. 개인적으로는 『프로그래밍 jQuery』에 이은 두 번째 번역서이고 첫 번째 책 만큼이나 독자들의 평이 어떨지 긴장하고 있습니다. 책의 원서인 『Pragmatic Version Control using Git』은 『실용주의 프로그래머』로 유명한 Pragmatic Bookshelf의 시작 시리즈 중 한 권입니다. 책에 대한 소개는 인사이트 출판사의 블로그에 잘 정리된 글이 있으니 참고하세요.
개인적인 책에 대한 감상은 옮긴이의 글 내용을 일부 발췌해서 대신합니다.
국내에 CVS가 처음으로 소개되던 때만 해도 버전 관리 도구의 필요성을 인식시키고 도구를 도입하도록 하는 것이 무엇보다 중요했지만, 더 이상 필요성에 대해서 언급하면 조금은 식상할 얘기가 될 정도로 요즘은 버전 관리 도구의 사용이 당연하게 여겨지고 있습니다. 이제는 버전 관리 도구의 필요성을 언급하기 보다는 "어떤 버전 관리 도구를 도입할까?"에 대해서 고민하고 있습니다. 오픈소스 진영에서는 낙관적인 버전 관리를 채택한 CVS에서 원자 커밋을 도입한 SVN 그리고 현재는 분산 버전 관리 도구인 Git이 인기를 얻고 있습니다. 당연한 얘기지만 어떤 버전 관리 시스템을 사용하는냐 보다는 버전 관리 시스템을 얼마나 잘 사용하는지가 중요합니다. 이러한 점에서 Git은 CVS나 서브버전에 비해 활용도가 훨씬 뛰어납니다. 기존의 중앙 집중식 저장소의 경우 네트워크 지원이 필수적이지만, Git은 분산 환경을 지원하며 덕분에 빠릅니다. 게다가 세세한 제어가 가능한 많은 명령어를 제공하며 적은 양의 디스크를 사용합니다. 이미 우수성을 인정 받아 그 결과로 리눅스 커널외에도 안드로이드와 루비 온 레일스를 포함한 많은 오픈 소스 프로젝트가 버전 관리 시스템으로 Git을 선택했습니다.
이 책은 이렇게 인기를 얻고 있는 Git을 소개합니다. Pragmatic Bookshelf의 실용주의 시작 시리즈(Starter Kit)는 빠르게 훑어보고 바로 시작해보도록 구성되어 있습니다. 원격 저장소와의 통신이나 실제 서버의 구축과 같이 미리 여러 저장소를 구성해야 하거나 설정이 복잡한 주제는 처음부터 다루지 않고, 분산 환경이라는 장점을 최대로 살려서 바로 자신의 컴퓨터에서 버전 관리를 시작해 볼 수 있도록 하고 있습니다. 이 책을 읽으실 독자 여러분은 Git을 처음 시작한다면 서버를 설정하는 것과 같이 복잡한 부분은 필요없으니, 직접 설치해서 예제를 따라하고 많은 연습을 통해 Git을 자신의 것으로 만들기 바랍니다. 처음에는 생소하게 다가오겠지만 사용하다 보면 빠르고 유연한 Git의 매력을 알게되리라 생각합니다. 그리고 원서에는 없는 내용이지만 도움이 될 것 같다는 생각에 Git 저장소로 애용되고 있는 GitHub의 사용법과 통합 개발 환경인 이클립스의 Git 지원에 대해서 부록을 추가 했습니다.
국내에 분산 버전 관리 시스템을 다루는 서적을 처음으로 소개하는 만큼 한 번 쓰이기 시작한 용어가 표준처럼 굳어지는 경우가 많기 때문에 책을 옮기면서 용어를 번역하는데 특히 가장 많은 고민을 하였습니다. 그 중 하나는 '병합'과 같이 기존부터 사용했지만 평소에는 자주 사용하지 않는 어색한 용어보다는 생활 속에서 더 자주 사용하는 '합치기'와 같은 표현을 사용하려고 노력했습니다. 또한, 용어를 가능한 한글로 사용하려고 하되, 명령어로 사용되는 영어 단어는 특히 분산 버전 관리 시스템에 처음 도입된 명령어들은 그 의미도 중요하지만 명령어 자체가 의사소통의 수단이 되므로 의미를 문장으로 풀어서 설명하되 명령어는 소리나는 대로 적었습니다.
모든 옮긴이들이 하는 공통적인 고민이겠지만, 저희 눈에는 아직도 부족해 보입니다. 다만 옮긴이들이 책을 번역하며 느꼈던 Git의 놀라움을 많은 분들이 함께 나눌 수 있도록 도움이 됐으면 하는 바람입니다. 분산 버전 관리 시스템의 세계에 오신 것을 환영합니다.
'책 이야기' 카테고리의 다른 글
| [책] Git, 분산 버전 관리 시스템 (인사이트, 2010) (2) | 2010/01/29 |
|---|---|
| 프로그래밍 jQuery 증보판 소식 (0) | 2009/12/01 |
| 눈먼 자들의 도시 (해냄, 2002) (0) | 2009/12/01 |
| [책] 프로그래밍 jQuery (0) | 2009/12/01 |
| 책 이야기 (2009-03-22) (0) | 2009/12/01 |
| 『프로그래밍 jQuery』서평 정리 (0) | 2009/12/01 |
이클립스에서 안드로이드 소스 코드 보기
안드로이드 SDK는 기본적으로 소스 코드와 함께 배포되지 않고 있기에 이클립스 안에서 사용하는 API의 코드를 볼 수 없습니다. 개발 과정에 직접 소스를 보면서 작업하려면 적어도 애플리케이션 개발자가 직접 사용하는 자바 API 수준에서는 함께 배포하면 좋을텐데 말이지요. 이클립스를 깊게 사용하는 분이라면 알고 있을 라이브러리에 소스를 링크해주는 기능도 android.jar 파일에 대해서는 꺼져있습니다.
이 문제를 다루고 있는 이슈가 등록되어 있으니 불편함을 느꼈다면, 여기서 알아볼 번거로운 작업을 피할 수 있도록 되길 바라며 왼쪽 상단의 별표를 체크하기 바랍니다.
방법 1
검색하면 몇 가지 방법이 나오는데 그 중에서 가장 쉽게 설명하고 있는 글을 참조해서 소개합니다. 컴퓨터에 Git이 설치돼 있어야 합니다.
- > git clone git://android.git.kernel.org/platform/frameworks/base.git android-sources
- > cd android-sources
- > git branch -r
- origin/HEAD -> origin/master
origin/cdma-import
origin/cupcake
origin/cupcake-release
origin/donut
origin/donut-plus-aosp
origin/donut-release
origin/eclair
origin/master
origin/release-1.0
자신이 소스를 연결하려는 브랜치나 태그를 체크아웃 받습니다. 저는 안드로이드 2.0을 이용하고 있으니 origin/eclair를 체크아웃 받았습니다.
- > git checkout origin/eclair
마지막으로 SDK가 설치된 경로에 체크아웃 받은 안드로이드 소스를 심볼릭 링크로 연결해줍니다.
- > cd <안드로이드 SDK 경로>/platforms/android-2.0.1
> ln -s <소스 코드 경로>/android-sources sources
이제 이클립스를 실행하고 소스 코드가 잘 연결되었는지 확인해봅니다.
방법 2
이클립스에서 소스 좀 보려고 Git까지 공부해서 설치하기 싫다면, 누군가 이미 올려둔 소스로 연결하는 방법이 있습니다. 이 문제에 대한 이슈 페이지 하단에 가면 rjgruet라는 사용자가 올려둔 2.0 소스 코드의 압축본이 있습니다. 다만 이런 링크는 언제라도 깨질 수 있습니다.
이제 안드로이드 SDK 설치 경로로 가서 하위에 sources 폴더를 만들고, 내려 받은 파일을 해당 폴더에 압축 해제합니다. 그리고 이클립스를 실행하고 소스 코드가 잘 연결되었는지 확인하면 됩니다.
이 글은 스프링노트에서 작성되었습니다.
'개발 이야기' 카테고리의 다른 글
| 안드로이드 이야기 (2010-03-22) (0) | 2010/03/22 |
|---|---|
| 이클립스 코드 흉내내기 (0) | 2010/02/21 |
| 이클립스에서 안드로이드 소스 코드 보기 (0) | 2010/01/03 |
| [eclipse] Smart Compare 플러그인 (0) | 2009/12/26 |
| [Mac] Hex Color Picker (0) | 2009/12/06 |
| 이클립스 플러그인 개발 시작하기 (2) | 2009/12/06 |
눈사람을 만들다 (2009-12-27)
월요일 출근 길에 녹아내린 눈에 그리 유쾌하지는 않았지만 어제(27일) 정말 오랜만에 눈사람을 만들어 봤습니다. 재료는 눈, 당근, 나무젓가락, 종이, 김, 산타, 그리고 다 먹은 네스프레소 캡슐을 이용했습니다. 이제는 2009년에는 변하겠다는 다짐을 얼마나 지켰는지 다시 돌아보고 큰 변화의 시기인 2010년을 준비할 시간이네요.
이 글은 스프링노트에서 작성되었습니다.
'일상 이야기' 카테고리의 다른 글
| 넥서스원과 아이폰 구입 (4) | 2010/03/15 |
|---|---|
| 눈사람을 만들다 (2009-12-27) (0) | 2009/12/28 |
| 아이맥 구입 그리고 ... (2009/11/06) (0) | 2009/12/06 |
| 낙서 (2009-08-09) (0) | 2009/12/06 |
| 울릉도 여행(2) (0) | 2009/12/06 |
| 울릉도 여행(1) (0) | 2009/12/06 |
[eclipse] Smart Compare 플러그인
이클립스에서 이름으로 파일을 찾아서 비교해주는 Smart Compare 플러그인을 공개합니다. 개인적인 용도로 만들어서 사용하다 정리해서 공개합니다.
필요한 이유?
동일한 프로젝트의 두 브랜치에서 동시에 작업하고 생각해보세요. 둘 중 하나의 최신 내용이라도 버전 관리 시스템에 들어있다면 저장소의 리소스와 비교하는 게 가장 빠릅니다. 그런데 둘 다 동시에 작업하고 있고 작업 중인 내용을 서로 비교해야 한다면 어떻게 하나요?
개인적으로는 두 브랜치의 소스 트리를 쭉 펼쳐놓고 해당 리소스를 서로 찾은 다음 Compare With > Each Other를 이용해서 비교했습니다. 바로 그림1과 같이 두 리소스를 비교할 수 있지만, 패키지 구조가 복잡해지고 소스 트리가 길어지면 두 리소스를 비교하는 간단한 작업도 엄청 귀찮아 집니다.
그림1. 기존의 리소스 비교 방식
Smart Compare 플러그인은 ...
이름으로 비교 대상을 검색해서 비교하기에 복잡한 소스 트리를 뒤지지 않아도 됩니다. 그림2와 같이 비교 대상을 이름으로 검색하고 비교하려는 리소스를 2개(상호비교)나 3개(기반 리소스와 다른 두 리소스의 비교) 선택하면 바로 그림3과 같이 Compare 편집기를 실행해주는 간단한 플러그인입니다.
Ctrl + Shift + = 단축키를 누르거나 툴바의 아이콘(Open Type 아이콘 옆에 추가됩니다)을 누르면 대상을 검색하는 창이 뜨고, 여기서 이름으로 검색하고 선택한 대상에 대해 비교해주는 편집기를 실행해주는 간단한 사용방식입니다.
처음 만들었을 때는 이름이 같은 두 브랜치간의 리소스를 비교하기 위해서 만들었지만 서로 다른 이름을 가진 리소스를 비교할 필요도 있기에 "이름으로 검색 > 더블 클릭 선택 (이미 검색된 목록에 추가) > 다른 리소스를 이름으로 검색 > 더블클릭 > 검색창 지우기 > 등록된 대상 선택"의 방식으로 이름이 다른 리소스를 비교하는 기능도 추가해 두었습니다. 이 부분은 좀 더 편리하게 비교할 수 있도록 개선할 생각입니다.
그림2. 이름으로 비교 대상을 찾는 Smart Compare 기능
그림3. Smart Compare로 실행시킨 Compare 편집기
설치하기
이클립스를 실행한 후 Help > Install New Software ...를 선택합니다. 여기서 그림4와 같이 새로운 업데이트 사이트로 http://update.pragmatic.kr을 추가합니다. 추가한 업데이트 사이트를 선택하면 그림5와 같이 세 개의 플러그인을 볼 수 있습니다. 세 개의 플러그인을 볼 수 있습니다. 세 번째 Smart Compare Feature를 선탠해서 설치합니다. 위의 두 플러그인은 Multi-File History 플러그인과 Open External 플러그인으로 이번 플러그인을 올리면서 기존의 잘못된 업데이트 사이트 구조도 정비했습니다.
그림4. 업데이트 사이트 추가하기
그림5. Smart Compare 플러그인 설치하기
소스코드
제가 만들어서 공개하는 모든 이클립스 유틸리티 프로젝트의 소스 코드는 구글 코드 호스팅을 통해서 공개하고 있습니다. 이클립스 플러그인 개발 공부에 필요하다면 소스를 받아서 이용하세요.
이 글은 스프링노트에서 작성되었습니다.
'개발 이야기' 카테고리의 다른 글
| 이클립스 코드 흉내내기 (0) | 2010/02/21 |
|---|---|
| 이클립스에서 안드로이드 소스 코드 보기 (0) | 2010/01/03 |
| [eclipse] Smart Compare 플러그인 (0) | 2009/12/26 |
| [Mac] Hex Color Picker (0) | 2009/12/06 |
| 이클립스 플러그인 개발 시작하기 (2) | 2009/12/06 |
| me2DAY for Android 릴리스 (2009/06/11) (4) | 2009/12/06 |
아이맥 구입 그리고 ... (2009/11/06)
2009년 10월에 발표된 신형 아이맥 27인치 모델을 구입했습니다. 기존에 사용하던 맥북도 거의 데스크탑으로 사용하고 있었던지라 다음 맥으로는 데스크탑 모델을 구입하려고 했었습니다. 맥미니를 알아보다 메모리 슬롯 4개(게다가 2개는 비어있어요.), 2560의 고해상도 모니터, 무선 키보드와 매직 마우스 포함이라는 장점에 아이맥으로 결정했습니다. 기존에 사용하던 델의 24인치 모니터와 듀얼로 연결하니 정말 넓군요. 새로운 맥이 아깝지 않으려면 그 동안 쌓아둔 일들을 정말 열심히해야겠어요^^
이전 중에 글을 남겼지만 블로그를 완전히 티스토리로 이전했습니다. 필요하다고 생각되는 글과 제게 의미있는 글들만 옮겨왔습니다. 기존 URL이 깨지지 않도록 새로운 주소로 연결해주려 했지만 꽤나 번거로운 작업인지라 그대로 두기로 했습니다. 혹시라도 기존 URL로 자료를 찾는 분들께는 죄송합니다. 자주 글을 올리지는 않겠지만 만들다 치워둔 이클립스 플러그인(이름하여 Smart Compare Plug-in)에 대한 글과 안드로이드를 주제로 글을 써보려 합니다.
그리고 원래 계획보다 많이 늦어졌지만 12월 말이나 1월초에 "Pragmatic Version Control using Git"의 번역서가 나옵니다. 국내에 최초로 Git을 소개하는 책인데 많이 늦어져서 그 동안 Git 책을 기다려온 분들께 죄송한 마음입니다. 이제 곧 출간되니 조금만 더 기다려주세요.
이 글은 스프링노트에서 작성되었습니다.
'일상 이야기' 카테고리의 다른 글
| 넥서스원과 아이폰 구입 (4) | 2010/03/15 |
|---|---|
| 눈사람을 만들다 (2009-12-27) (0) | 2009/12/28 |
| 아이맥 구입 그리고 ... (2009/11/06) (0) | 2009/12/06 |
| 낙서 (2009-08-09) (0) | 2009/12/06 |
| 울릉도 여행(2) (0) | 2009/12/06 |
| 울릉도 여행(1) (0) | 2009/12/06 |
낙서 (2009-08-09)
오늘은 올 여름들어서 가장 더운 날씨였지만 하늘 만큼은 정말 최고였다. 여기저기 하늘 사진이 올라오는 것만 봐도 많은 사람들이 서울에서 볼 수 없는 하늘 모습에 감탄했나보다. 대세에 동참해 조금 늦은 시간 찍은 하늘 사진을 포스팅한다. 오후 2시쯤 모습은 마치 UFO 무리가 서울을 침공하는 모습같았는데 조금 아쉽다. 풍성한 하늘과 에어콘 그리고 커피 한 잔에 감사하며 늦은 저녁 작업에 열중한다.
이 글은 스프링노트에서 작성되었습니다.
'일상 이야기' 카테고리의 다른 글
| 눈사람을 만들다 (2009-12-27) (0) | 2009/12/28 |
|---|---|
| 아이맥 구입 그리고 ... (2009/11/06) (0) | 2009/12/06 |
| 낙서 (2009-08-09) (0) | 2009/12/06 |
| 울릉도 여행(2) (0) | 2009/12/06 |
| 울릉도 여행(1) (0) | 2009/12/06 |
| 안드로이드 HTC G1 구입 (0) | 2009/12/06 |



