2012년 12월 26일 수요일

Objective-C 에 관한 잡담

그렇게 오래는 아니지만 어쨌든 Objective-C를 수 년 간 이용해 왔다. 이제는 익숙해졌기 때문에 처음 봤을 때의 인상에 비해 호감이 가는 언어가 되었다. 심심해서 이 언어에 대한 썰을 한번 풀어본다.

이하 Objective-C는 한글로 '옵씨'로 줄여서 표현한다. 그리고 옵씨에 대한 설명이 아니다 보니 옵씨를 이제 시작하는 분들에게는 별 의미 없는 글일 것 같다.


2012년 12월 24일 월요일

[Python] 데이터를 예쁘게(?) 찍어주기

제목을 정확히 쓰자면 'Data Pretty Print' 이다. Python에 기본적으로 포함되어 있는 pprint 모듈에 대해 간단히 소개하고자 한다.

pprint는 말 그대로 Pretty Print 이긴 한데 이름 만으론 잘 감이 안 올 수도 있다. 이 모듈은 복잡한 자료구조의 내용을 조금 더 알기 쉽게 표시해 주는 역활이다.

[Python] 특정 디렉토리(폴더)의 모든 파일 이름 알아내기

이전에는 os.listdir이나 glob 같은걸 써서 재귀호출(recursive call)로 특정 디렉토리 아래의 모든 폴더를 순환하며 파일 이름을 모으는 코드를 만들곤 했었는데, 이는 순전히 무식해서 고생한 거였다. Python의 기본 모듈인 os.walk가 이런 역활을 하도록 이미 구축되어 있었다.

2012년 12월 10일 월요일

[Python] Nested 문법?

개인적으로 Python 언어로 코딩을 하면서 자주 안쓰게 되는 문법이 있다. 이 문법을 정확히 어떤 용어로 표현해야 하는지 몰라서 일단 'Nested 문법' 이라고 적었는데 틀린 표현 같지만 제목이 필요하기에 어거지로 썼다.

C에 익숙했던 (비영어권) 사람이라면 아마도 Python이나 기타 스크립트 언어들 특유의 문법에 간혹 놀라기도 혹은 질리기도 한다. 스크립트 언어들의 독특한 문법 중 하나는 프로그래밍 언어를 마치 사람의 언어처럼 표현하기도 하거나 이 코드의 내용을 마구 줄여버리는 것이다.

참고로 이 글은 Python을 어느 정도 공부한 사람이라면 읽을 필요가 없다.

2012년 12월 6일 목요일

변화를 거부하고 도전을 싫어하는 개발자

변화를 거부하거나 도전을 싫어하는 사람은 물론 있다. 많을 것이다. 이런 사람들의 태도가 무조건 잘못된 것이라고 평가하는 것은 좋지 못 하지만, 이런 사람들을 위해 하고 싶은 말이 참 많기도 하다.

나 조차도 변화나 도전은 좀 겁을 내는 경향이 있다. 하지만 어느 순간 약간씩 도전해 보면서 얻기도 하고 성취하기도 하고 보람을 느끼기도 하고 실패하기도 한다.

별 의미는 없겠지만 이런 저런 불평불만을 글로 한번 남겨볼까 한다.

2012년 12월 5일 수요일

추억 속의 컴퓨터 이야기 IQ-2000

내 나이대도 이제는 젊다고 하기에는 힘든(?) 수준으로 치닫고 있다. 세월의 흐름이 너무 빨라서 아쉽고 벅차고 숨차기는 하지만, 이럴 때 일 수록 추억을 떠올려 보면 나름 재미있는 세월을 보냈구나 생각이 든다.

이참에 옛날 옛적에 쓰던 구식 컴퓨터에 대한 이야기를 한번 써 볼 까 한다. 이 글은 이 중 IQ-2000이라는 고물(?)에 대한 이야기다.

2012년 12월 4일 화요일

[Python] parse

간단한 문자열 파싱을 할 때는 대체로 정규표현식(re) 모듈을 많이 활용한다. 하지만 단순한 패턴을 읽어 낼 때는 정규표현식은 귀찮은게 많다. 이럴때는 간단하게 파싱 할 수 있게 도와주는 parse 모듈을 사용 할 수도 있다. 이 모듈의 설명은 아래 한줄이면 충분하다.

parse() is the opposite of format()

앞서 소개했던 str.format() 과는 반대되는 기능을 제공한다는 의미이다. 이걸로 대충 설명은 끝나는 것 같다. :-)

[Python] str.format()

파이썬에선 기본적으로 C 스타일의 문자열 포맷 방법을 제공한다. printf나 sprintf 처럼 % 문자를 사용해서 문자열을 대체하는 것 말이다. 우연찮은 기회에 이 방법이 아닌 다른 방법으로 문자열을 포매팅 하는 방법(str.format)을 알게 되어서 이에 대해 가장 기본적인 사항을 포스팅을 해 본다.

우선 이 기능은 Python 2.6 부터 동작하며 일부는 2.7에서 추가된 기능도 있을 수 있다.

2012년 12월 3일 월요일

[프로그래머 유머] C Perl GNOME Java

왠만한 프로그래머라면 고전 유머로 이해될 만한 내용이겠지만, 이 글은 비 프로그래머 일반인 혹은 현대적인(?) 프로그래머를 위해 그냥 풀어보는 썰이다. ;-)

2012년 11월 30일 금요일

스마트폰 관련 뉴스를 볼 때 마다 화가 난다

스마트폰 붐을 타면서 아이부터 어른까지 스마트폰을 사용하고 있다. 그러면서 나오는 문제들은 보안과 중독성에 관한 것이고 시간이 가면 갈 수록 더욱 크게 이슈가 되고 있다. 지금 하려는 이야기는 이 중 보안과 관련된 뉴스들에 대한 이야기이다.

2012년 11월 20일 화요일

[Python] 인터프리터 테스트는 다르다

특정 모둘을 만들고 이 모듈을 파이썬 인터프리터로 테스트 할 때 간혹 문제가 생기는 케이스가 있다. 특히 PYTHONPATH와 함께 발생 할 수 있는 import 문제가 있다.

약간의 신중하지 못한 (혹은 무식한) 점이 이틀 간의 삽질로 나를 이끌었다. 아직도 명확한 원인은 모른다. 애초에 이런 디자인은 좋지 않다는 것을 되세기며 이번 포스팅을 기록으로 남긴다.

2012년 11월 19일 월요일

Emacs 24.x S-SPC 키보드 먹통 문제

Emacs가 버전 24로 올라오더니 OS X에서 S-SPC(Shift-Space) 키 입력을 인식하지 못 하는 문제가 생겼다. 그리고 24.2 버전이 되면서 구름 입력기를 이용 도중에 S-SPC를 누를 경우 키보드가 먹통이 되는 문제로 진화(?)되었다.

2012년 11월 13일 화요일

[Python] logging 의 중복 로그 현상

logging 을 사용해서 로그 찍는 루틴을 만들었는데, 로그를 찍을 때 마다 동일한 로그가 계속 하나씩 더 찍히는 현상을 경험했다. 로그1, 로그2, 로그2, 로그3, 로그3, 로그3, ... 이런 식이었다.

사실 현상이라기 보단 코딩을 잘못해서 나타난 문제이다. 하지만 이 문제 해결을 위해 너무나 귀찮은 짓을 다 해 봤기에 기억하자는 의미로 글을 남긴다.

2012년 11월 12일 월요일

[OS X] 한글 입력 상태에서 특정 키가 동작하지 않는 증상

OS X에서 한글 입력 상태에서 특정 키, 예를 들자면 Emacs 키맵과 비슷한 Ctrl-A, Ctrl-E 같은 키가 제동작을 하지 않는 증상이 있었다. 이 문제 해결을 위해 굉장히 단순한 포스팅을 한다. ;-)

2012년 11월 9일 금요일

스크린세이버, 과연 필요한가?

스크린세이버(Screen Saver). 이름 처럼 화면을 보호하기 위해 만들어진 기능이다. 하지만 이 기능이 지금에 와서야 정말 필요한건가 의문이 든다.

2012년 10월 22일 월요일

윈도우 사용자를 위한 맥 및 OSX 용어

개인적으로 윈도우를 오랫동안 사용하다 맥을 처음 사용했을 때 용어나 각 앱의 이름이 뭔지 몰라서 막막했던 시절이 있었다. 그 때를 회상하며 약간 헷갈리거나 알 수 없는 용어들을 한번 정리해 볼까 한다.

2012년 10월 18일 목요일

[Emacs] jump-char.el

이번 글은 아주 간단하다면 간단한 네비게이션용 확장인 jump-char의 소개글이다. 기능은 많지만 중요한 것을 하나 꼽자면 바로 Vim의 f 키 기능과 비슷한 기능을 하는 확장이다.

2012년 10월 11일 목요일

[Vim] 파일 저장 시 뭔가를 하고싶다

어떻게 보면 광범위한 제목이 될 지도 모르겠지만, 이 글은 Vim에서 특정 파일을 편집하다 저장 했을 때 특정한 일을 실행 하기에 관한 내용이다.

2012년 10월 6일 토요일

[OSX] 사파리의 탭 자동 리로드 문제 해결(?)

OS X에서 사파리(Safari)를 사용하다 종종 버리곤(?) 했었는데 굉장히 단순하면서도 치명적인 이유가 있어서 였다. 여기 블로거에 글을 작성하는 도중에 참고 문서를 찾기 위해 새 탭을 띄워 구글링을 하다 다시 글을 작성하던 탭으로 돌아오면 탭이 리로딩 되면서 그 동안 써 놓은 글이 싹 날아가 버리는 어이없는 문제를 몇 번 겪어서이다.

2012년 10월 5일 금요일

[Emacs] YASnippet용 템플릿 만들기

YASnippet에 관한 글은 별도로 적지 않았는데 Emacs에서 YASnippet은 워낙 유명하다 보니 소개에 관해서는 생략. 이 포스트는 YASnippet용 템플릿과 관련한 가장 기본적인 내용을 다룬다.

2012년 9월 28일 금요일

[iOS] 시스템 아이콘 추출기 UIKit Artwork Extractor

아이폰이나 아이패드 등 iOS용 앱을 개발 할 때 함께 일하는 디자이너가 없다면 앱 디자인 때문에 골머리를 썩힌다. 특히 아이콘은 가장 단순하면서도 필수적인 것인데 이걸 구하는 것도 힘든 일이다. 특히 기존의 아이폰 앱 등과 비슷한 모양을 만들어야 할 때는 시스템 아이콘을 쓰고 싶기도 한데 가끔 제약이 따른다.

2012년 9월 26일 수요일

[Emacs] Speedbar를 메인 윈도우에 넣기: sr-speedbar.el

Emacs의 내장 Speedbar는 별도의 윈도우가 뜨면서 동작한다. 개인적으론 좀 불편하다고 생각되어서 메인 윈도우 안에다 집어넣는 방법을 찾고 있었는데 누군가 이미 비슷한 목적으로 만들어 놓은 것을 찾았다.

[Emacs] Speedbar에서 특정 파일이 보이지 않는 경우

최신 Emacs에는 Speedbar가 포함되어 있으니 (정확히는 CEDET) 설치는 생략. 아는 사람은 알다싶이, Speedbar는 파일 목록을 띄워주는 Emacs용 확장이다. 사용법도 간단해서 그냥 M-x speedbar 로 띄우는 것이 가능하다.

그런데 이 Speedbar가 모든 파일을 표시해 주는 것은 아니다. 기본 설정 상태에서는 제한적인 파일만 표시해 준다.

2012년 9월 22일 토요일

[Emacs] expand-region.el

expand-region.el 은 선택 영역을 확장(Expand)해주는 확장(Extension)이다. 아래의 github 저장소 링크에서 확인 할 수 있다.

[Cocoa] 창이 다 닫기면 앱 종료하기

처음으로 써 보는 코코아 관련 메모. 기본적으로 코코아 앱은 멀티 윈도우를 지원하는 경우 창을 다 닫아도 앱 자체가 종료되지 않는다. 만약 윈도우(MS-Windows) 처럼 창이 다 닫기면 애플리케이션이 종료되길 원한다면 AppDelegate에 다음 코드를 넣는다.

2012년 9월 20일 목요일

[Emacs] Javascript와 CSS가 포함된 HTML 파일 편집

Emacs는 다양한 메이저모드(Major mode)를 가지고 있고 특정 파일을 편집 할 때 특정한 모드가 매핑되어 편집이 편하도록 도와주는 것이 일종의 메카니즘이다. 하지만 이런 정책(?)이 방해되는 케이스가 있으니 바로 웹 개발, 특히 자바스크립트와 CSS가 포함되어 있는 HTML을 편집하는 경우이다.

2012년 9월 14일 금요일

아이폰5, 그놈의 혁신 타령 궁시렁...

몇 일 전, 애플이 아이폰5를 발표 하자마자 바로 국내 언론사의 기사가 떴다. 또 '혁신은 없었다' 라는 기사다. TV 공중파 뉴스에서도 혁신은 없었다 라고 평가절하하는 내용이 주류를 이루고 있다. 도데체 왜 혁신이 없다고 하는 걸까?

2012년 9월 12일 수요일

첫 애드센스 수익금을 지급받았습니다

사이트 모양이 조잡해 짐에도 억지로 광고를 욱여넣었던 것이 결국 1년 6개월 만에 빛을 보았습니다. AdSense 수익금 집계가 $100을 넘어서 지급 받을 수 있게 된 것이지요.

2012년 9월 5일 수요일

Emacs 24의 새로운 기능: theme

예전부터 Emacs에서 색상 문법 강조(Syntax Highlighting)을 위해서 color-theme 라는 확장을 주로 이용해 왔었다. 어떻게 보면 Emacs에서 가장 필수적인(?) 확장이 아니었을까 생각된다.

Emacs 24부터는 이런 color-theme 기능을 흡수하여 theme라는 기능으로 아예 built-in이 되어버렸다. 더이상은 color-theme를 사용할 이유가 없어진 것이다. (하지만 API가 흡수된 것이 아니라 기능이 흡수되었기 때문에 호환되지 않는다는 점을 주의하자)

2012년 8월 13일 월요일

[Python] fileDownloader.py

제목 만으로도 알 수 있겠지만, 그냥 웹 상의 파일을 다운로드 받을 수 있는 모듈이다. 물론 이 모듈 없이도 urllib과 httplib 등으로 받을 순 있지만 귀찮다. -_-;;;

2012년 7월 26일 목요일

Objective-C 2.0에서 property / synthesize

Objective-C의 OOP에서 특별한 문법이 있다면 바로 property와 synthesize라고 생각한다. 멤버변수(인스턴스)로의 접근 권한을 설정하고 이 멤버에 값을 세팅하는 규칙을 표준적인 방법으로 정의해 둠으로써 클래스의 사용 방법을 인터페이스(interface, 헤더의 역활?)화 해 준다.

2012년 7월 17일 화요일

NSException 디버깅

XCode에서 디버깅 모드로 테스트 중인 앱이 뭔가의 오류로 죽었다. 그런데 죽은 곳을 알 수가 없을 때가 있다. 디버거의 트레이스는 main을 가리키고 있는 경우가 많다. 이 경우 로그창의 메시지를 이용해 간접적으로 원인을 알 수도 있지만 실제 원인은 알 수 없는 경우도 많다.

MKMapView를 사용하는 앱이 자주 죽는 경우...

맵뷰(MKMapView)를 사용한 앱이 자꾸 죽는 문제가 있었다. 에러의 원인은 sent message to deallocated object, 즉 메모리 상에서 해제되어 버린 오브젝트의 무언가를 호출하려 했기 때문에 죽는다는 것이었다.

2012년 7월 12일 목요일

[Emacs] 커서 위치의 단어 검색

Emacs에서 순차검색(isearch. 단축키는 C-s) 시 현재 커서 위치에 있는 단어(Word)를 검색하려면 검색어 입력 시 C-w를 입력하면 자동으로 검색어로 입력된다.

2012년 7월 3일 화요일

Emacs 24에 내장된 Package System

ELPA라는 Emacs용 Lisp 패키지 관리 시스템이 있다. 개인적으로 별로 쓸 만한 확장이 없고 대부분 EmacsWiki에 있는 것을 auto-install 로 설치해서 쓰는 편이어서 그다지 쓸 일이 없었다.

2012년 6월 22일 금요일

Emacs 24에 추가된 electric-pair-mode

electric-pair-mode는 Emacs 24 버전에서 추가된 마이너 모드이다. 기능은 pair 라는 이름에서 auto-pair-mode 와 비슷하다고 느낄 수 있는데 그 기능이 맞다.

앱스토어 판매 가능 국가 32개 추가

오늘 애플 개발자 뉴스레터로 애플 앱스토어의 새로운 판매 가능 국가 소식이 전해졌다. 해당 국가는 아래와 같다. (잘못 보시는 분들이 많은가 본데 '앱'스토어이지 '애플'스토어가 아니다 ㅇㅅㅇ)

2012년 6월 21일 목요일

iPad와 Surface 발표 비교 영상?

잡스의 키노트(주. Keynote는 애플의 프리젠테이션 소프트웨어 상품 명이기도 하지만 원래의 의미는 '기조연설' 등 프리젠테이션과 비슷하다)와 서페이스 발표회의 영상을 서로 비교해 놓은 영상.

2012년 6월 19일 화요일

Xcode Storyboard, 약인가 독인가

스토리보드도 Xcode 4 버전에 들어서 새롭게 지원되기 시작한 개발 도구이다. 뷰 디자인과 흐름을 시각화 시켜서 직관적인 개발이 가능하게 도와준다는 점에서 편하게 개발 할 수 있다. 이 글은 이 스토리보드에 관한 감상 일 뿐이지 상세한 설명을 위한 글이 아님을 먼저 밝힌다.

제목이 '약이냐 독이냐' 라고 지었다면 역시 결론은 나온다. 잘 쓰면 약이고 못 쓰면 독이다. 다만 잘 써야 한다는 것은 잘 사용해야 한다는 의미가 아니라 용도에 맞게 사용해야 한다는 점이다.

2012년 6월 18일 월요일

Objective-C의 레퍼런스 카운트는 왜 필요한 건가

다른 언어를 사용하던 이가 Objective-C 를 접했을 때 가장 생소해하며 혹은 헷갈려 하는 부분이 바로 레퍼런스 카운트 개념이다. 이 글은 레퍼런스 카운트 개념이 왜 필요한지에 대한 것이다. 다만 도움이 될지 이해가 될지 잘 모르겠다. ;-)

Xcode ARC, 약인가 독인가

ARC(Automatic Reference Counting)라는 기능은 XCode 4 들어서 보여준 새로운 기능이다. Objective-C에 정의된 요소이긴 하지만 사실상 Objective-C를 사용하게 되는 곳은 현재로썬 Xcode 뿐인 것 같으니 그려러니 생각하자.

무료 Git/SVN/Hg 프론트엔드 SourceTree

소스트리(SourceTree)는 Git, Mercurial(hg), SVN 등을 지원하는 맥 OS X용 GUI 프론트엔드이다. 프론트엔드(front-end)란 간략히 설명해서 커맨드라인(CUI) 유틸리티를 GUI로 쓰기 편하게 만든 어플리케이션이라는 말이다. 다른 말로는 클라이언트 라고도 표현하기도 하지만...

2012년 6월 16일 토요일

블로거 게시물 관리 기능에 절망하였습니다.

태그 관리가 잘 안되어 있어서 이 참에 조금씩 태그를 글 하나하나 지우고 만들고 하고 있습니다. 그런데 블로거 게시물 관리 기능에 일괄적으로 태그를 붙이는 기능이 있는 것을 발견하고 기뻐했습니다.

그래서 블로거의 게시물 관리 기능으로 일괄적으로 태그를 붙이고 있었습니다. 하나하나 검색해서 말이지요.

그런데 큰 문제가 있었습니다.

  1. 특정 단어 검색
  2. 태그 붙이기 위해 선택 한 후 태그 지정
  3. 다른 단어 검색
  4. 앞에서 선택했던 게시물 중 일부도 검색됨
  5. 문제는 체크했던 게시물은 계속 체크가 되어있음

문제가 무엇이냐면, 체크된 것을 언체크 해도 눈에 안보이는, 즉 이전에 체크했던 게시물은 그대로 계속 체크가 되어 있다는 점입니다. 일괄 언체크를 해도 눈에 보이는 것들 중에서만 언체크가 됩니다.

결과적으로 계속 검색 해 가며 일괄 태그 적용 기능을 이용하면 지금까지 체크 했던 글 모두 해당 태그가 붙어버리게 됩니다.

...

급좌절. 결국 하나하나 문제가 생긴 태그를 수정하고 있습니다만 이것도 언제 끝날지 장담 할 수 없군요. 300개가 넘는단 말입니다! 어휴!

이 문제를 회피하려면 검색 할 때 마다 관리 페이지가 아닌 다른 페이지로 이동 후 다시 관리 페이지로 접속해야 합니다. 관리 페이지는 전체적으로 자바스크립트로 계속 메모리가 관리되기 때문이지요.

블로거 너무하는데 이거...

2012년 6월 14일 목요일

Python용 PostgreSQL 인터페이스 psycopg2

psycopg2는 Python에서 PostgreSQL을 다루기 위한 인터페이스 모듈이다. 즉, PostgreSQL 서버에 접속하거나 쿼리를 보내거나 데이터를 읽어 오는 등의 기능을 Python으로 하기 위한 모듈 중 하나이다. 이번에는 이 psycopg2 모듈을 간단히 소개한다.


2012년 6월 12일 화요일

카카오톡/보이스톡, 페이스타임 그리고 이통사

얼마전 카카오톡에서 지원되기 시작한 음성통화(m-VOIP) 기능 때문에 이통사에서 불만이 많았습니다. 자신들이 차려놓은 밥상에 공짜로 숟가락 얹어 놓았다고 말이지요. 그리고 이제는 iOS6의 페이스타임이 이동통신망을 통해 서비스가 시작된다는 것도 동일하게 말이 많습니다.

얼핏 보면 이통사의 이런 주장에 일부 일리는 있습니다. 자기네들의 수익 기반, 문자(SMS)라던가 통화 수익을 갉아먹는 요소임에는 틀림이 없지요. 페이스타임은 또한 영상통화라는 수익 기반을 갉아먹는 요소는 맞습니다.

하지만 그들의 주장에는 납득 할 수 없는 요소가 있습니다. 바로 자신들이 깔아놓은 망에 무임승차 한다는 주장입니다.

2012년 6월 11일 월요일

게시물 보기에 약간 오류가 있습니다. (수정완료)

미리 죄송하다는 말씀을 드립니다.

프로그래머 특유의 귀차니즘이 발동하여서 블로그 템플릿을 좀 뜯어 고치고 있습니다. 이 과정에서 수동 삽입한 광고와 템플릿으로 자동으로 삽입되는 광고가 중첩되어서 글 보는데 지장을 줄 정도로 광고가 표시되는 경우가 있습니다.

현재 포스트를 하나하나 들여다보며 문제를 수정하고 있는 중입니다. 그 전 까진 불편을 드리게 될 것 같습니다.

이 글 포함 총 311개의 글을 하나하나 뜯어 고쳤습니다. 헥헥 힘들어요. 살려주세요. 팔이 아파요.

글 중간에 삽입된 광고를 모조리 제거하였습니다. 과연 광고 수익에 영향을 얼마나 끼칠지는 알 수 없지만 애초에 광고비도 쥐꼬리였기 때문에 줄어봤자겠지요. 하하 ;ㅅ;

2012년 6월 4일 월요일

[Emacs] bash의 PATH 환경변수 eshell로 가져오기

개인적인 경우겠지만, bash를 기본 쉘로 이용하고 .bashrc에 개인적으로 이용하는 몇 가지 경로를 PATH에 추가해서 사용하고 있다. 이럴 때 Emacs를 쉘에서 띄우지 않은 경우 - 즉 OSX의 경우 Emacs를 GUI로 바로 실행한 경우 등 - 에는 PATH 정보가 틀리게 된다.

2012년 5월 29일 화요일

Emacs용 달력 프레임워크 Calfw

Emacs에는 이미 calendar라는 함수가 있어서 실행(M-x calendar)시키면 달력이 표시된다. 하지만 그냥 달력만 표시될 뿐 뭐 특별히 일정 관리라던가 등의 달력과 연관된 기능을 제공하지는 않는다. 당연히 정보를 제공 할 만한 여유 공간도 없다.

Calfw의 등장은 아마도 이런 달력과 연관된 기능을 제공할 목적인 것 같다. 달력을 표시하고 이 달력에 어떤 정보를 넣을 것인지 등의 정보를 입력해서 달력의 기능을 확장 할 수 있는 것이다.

2012년 5월 9일 수요일

iTerm2에서 tmux 화면이 깨지는 현상

iTerm2에서 tmux를 이용해 페인(pane)을 나누었을 경우 화면이 깨지는 케이스가 있다. 예를 들자면 아래 스크린샷 같은 경우이다.

2012년 5월 7일 월요일

iOS 앱 디렉토리 이야기

iOS앱은 데이터를 기록하거나 읽기 위한 몇 가지 디렉토리를 가지고 있다. 다들 알겠지만 이 디렉토리들은 샌드박스로써 해당 앱에서만 접근이 가능하다. 이 글에서는 이 디렉토리의 용도를 간략히 적어본다.

참고로, 이 글에서 디렉토리 이름에 AppHome 이라는 이름은 그냥 앱 디렉토리를 의미한다. 각 앱이 아이폰이나 아이팟, 아이패드 등에 설치된 디렉토리를 의미한다. 무시해도 된다는 의미이다.

2012년 5월 4일 금요일

맥에서 쓸 만한 간단한 머지(Merge) 툴 opendiff/FileMerge

XCode에 포함된건지 OSX에 기본적으로 배포되는지는 모르겠지만, 일단 기본적으로 FileMerge라는 머지툴을 이용 할 수 있다. 이걸 터미널에서 실행시킬 때는 opendiff 명령을 이용할 수 있다.

2012년 4월 19일 목요일

[iOS] 특정 코드를 비동기로 실행시키기

특정 API를 호출했는데 이 API가 작업시간이 오래 걸린다면 UI가 그 동안 멈추는 현상이 발생한다. 예를 들자면 대용량 파일을 읽거나 쓸 때 그 동안은 UI가 동작하지 않는 경우가 있다. 이 문제를 회피하려면 오래 걸리는 작업을 비동기(Asynchronous)로 처리하도록 할 수 있다.

이런 경우를 위해서 애플이 만든 GCD(Grand Central Dispatch)라 불리우는 기술(개념?)을 이용 할 수 있다. 쓰레드로 분리된 큐에 작업 내용을 넣어서 이를 차례대로 실행시키는 방식으로, 백그라운드 프로세싱과 병렬 처리를 한방에 해결 할 수 있도록 해 주는 고마운 기능이다.

2012년 4월 5일 목요일

OSX용 한글 대안 입력기 '구름 입력기'

Mac OS X에 기본적으로 포함되어 있는 한글 입력기는 제법 불만이 많다. 개인적으로 꼽는 가장 큰 불만은 입력 모드 전환이 너무 느리다 라는 점이다. 한글모드로 바꿀 때 마다 바람개비가 뺑뺑 돌아가는데 속 터진다. 개선이 언제될지는 모른다.

그래서 많은 사람들과 나는 바람입력기라는 대안 입력기를 사용했다. 다만 바람입력기는 한동안 개발이 지연되면서 뭔가 버그 개선이 안되는 느낌이 있었다. 이런 차에 구름입력기 라는 또 다른 한글입력기를 알게 되었다.

2012년 4월 3일 화요일

맥 용 동영상 플레이어, 지금은...

'맥용 동영상 플레이어에 대해' 라는 글을 쓴 뒤 1년 가량 지난 지금에서야 느끼는 맥(OS X)용 동영상 플레이어에 대한 소감을 뜬금없게 또 정리해 볼 까 한다. 물론 정리 대상은 한글 SAMI자막이 지원되는 동영상 플레이어에 한해서이다.

2012년 4월 2일 월요일

맥 용 무료 백신 Avira Free Mac Security

지금까지 맥을 써 오면서 딱히 악성코드 등으로 피해를 입은 경우가 없다보니 백신 등의 보안 프로그램이 필요한지를 잘 느끼지는 못 했다. 물론 지금도 못 느끼고 있다.

[iOS] Launch Image 다국어 작업 및 오류

일단 iOS용 앱 다국어 작업은 많이 알려져 있고 관련 문서도 많으니 일단 생략한다. 여기서는 Launch Image(혹은 Splash Image)를 각 언어에 맞게 설정하는 방법과 관련 오류에 대한 내용을 정리해 본다.

2012년 3월 31일 토요일

js3-mode와 auto-complete

최근 Emacs를 다시 사용하기 시작하면서 js3-mode 혹은 js2-mode를 사용 할 때 auto-complete가 동작하지 않는다는 것을 알게 되었다. 어떻게 보면 굉장히 치명적인 문제다.

2012년 3월 30일 금요일

[Vim] 콘솔에서 클립보드 엑세스 하기

Vim 7.2 이하 버전이라면 fakeclip이라는 플러그인을 이용해 콘솔 버전의 Vim에서 클립보드를 엑세스 하는게 가능하다.

Vim 7.3 부터는 Mac OS X 의 터미널에서 클립보드 엑세스가 가능하다. (출처)

[Emacs] 버퍼를 관리하기 위한 ibuffer

Emacs에서 너무 많은 버퍼를 띄웠을 경우 일일이 죽이기(C-x k)는 귀찮은 일이다. 이럴 때는 ibuffer를 사용해보자.

[Python] Python Debugger - pdb 기본 사용법

Eclipse같은 통합 IDE를 사용한다면 다른 이야기겠지만, 그 외의 경우라면 Python코드 디버깅은 쉬운 일은 아니다. 그나마 다행인 점은 pdb 모듈이 있다는 것.

2012년 3월 29일 목요일

블로그 포스팅 정리정돈 중입니다(?)

글 내용을 몽땅 보여주던 방식에서 일부만 보여주는 방식으로 바꾸고 있습니다.  물론 자세히 읽기로 들어가면 다 보이지요. 제 자신이 태그를 통해서 글을 찾을 때 너무 불편해서 이렇게 정리합니다. 300개 가까이 되는 포스트 일일이 다 정리하려면 시간이 좀 걸리겠군요.

뭐 그렇습니다. 아직까지는 대부분 글 내용이 그대로 전부 보이는데 조만간 수정 될겁니다. ;-)

이 작업이 완료되는 대로 블로그 스킨도 손을 좀 봐야겠네요. 언제가 될지는 모르겠지만...

그 밖에 돈에 눈이 멀어서 광고를 수동배치하고 있습니다. 뭐 이래도 한달에 4~5달러 벌기도 힘들겠지만 -_-;

2012년 3월 23일 금요일

[OS X] 파인더에서 숨겨진 파일 보기

OS X 파인더에서는 기본적으로 숨겸진 파일이나 디렉토리는 보이지 않는다. 특히 .(점)으로 시작하는 이름은 기본적으로 숨겨진다. (이는 유닉스의 특징이다. 점으로 시작하는 파일 이름은 좀 특별하게 취급한다)

파인더의 옵션을 뒤져봐도 숨은 파일을 보는 방법을 못 찾았는데 다른 방법을 이용해 숨은 파일을 볼 수 있는 방법이 있었다.

간단한 웹 서버 aspen

단순한 웹 서버가 필요할 일이 있을까 생각했지만 의외로 필요한 경우가 제법 있다. 예를 들어 Sencha Touch 등을 이용한 웹 앱을 만드는 경우 AJAX 통신을 하려면 꼭 웹서버가 필요하다. 이럴 때는 필요한 기능만 제공하는 단순한 웹서버가 있으면 편하다. 하물며 요즘처럼 웹 개발이 대세인 시대에 이런 도구 하나쯤은 있는 편이 좋을 것 같다.

2012년 3월 22일 목요일

Github for Mac

소스리비전툴인 git를 터미널에서 주로 이용해 왔는데 파일이 많아지면 많아질 수록 역시 터미널은 한계가 있다는 느낌이 들었다. 가끔 귀찮기도 하고... 그래서 맥 용 GIT GUI 클라이언트를 찾아봤는데 Tower라는 칭찬이 자자한 물건이 있었다. 그런데 유료였다! 아악!

2012년 3월 19일 월요일

구글 일본어 입력기와 OS X 라이온 사이의 문제?

이전 XCode4의 버벅임 문제가 여전히 이어지고 있다. 일시적으로 좋아졌다가 다시 나빠지기 시작한 것이다. 현 시점에서 가장 최신 버전의 OS X와 XCode를 이용 중인데 윈도우를 전환해서 활성화 할 때 자주 멈추면서 바람개비가 돌아간다. 심하면 5분 넘게 멈춰있기도 했다.

2012년 3월 16일 금요일

XCode를 위한 gitignore 설정

버벅이는 XCode4. 살려줘!

XCode4가 4.3.1까지 오면서 많이 개선되었다고 생각하지만 실제 체감은 초기 개선 이후로 그다지 별 변함이 없는 것 같다. 요즘은 XCode를 띄운 채로 웹브라우징 시 심심하면 굳어버리는(freezing) 증상이 심해지는 것 같았다.

그래서 해법을 찾다 보니 제법 좋은 방법을 하나 발견했다.

2012년 2월 22일 수요일

버전(Version)을 제대로 이해하기

Q. 1.3과 1.12 중 어느 버전이 더 최신 버전인가요?
A. 1.12가 더 최신버전입니다.

위의 같은 질문류를 커뮤니티에서 본 적이 있는데 놀랍게도 1.3을 1.12보다 더 높은 버전으로 생각하는 사람이 많은 것 같았다. 그래서 이번에는 버전 번호를 제대로 이해하는 방법을 한번 써 볼까 한다.

XCode4 Archive 시 이미지파일 압축 오류

2012년 2월 16일 목요일

[Color Theme] Tomorrow

오랫만에 올리는 포스팅꺼리는 컬러테마. Tomorrow라는 어떻게 보면 굉장히 단순한 어두운 배경에 밝은 글자색을 모토로 하는 테마이다.