Lion Launchpad 아이콘 삭제 Macintosh

Lion OS 로 변경된 후 OS 인터페이스가 많이 달라졌을 뿐더러 기존 머신에 대한 성능이 향상됨을 알수 있습니다.
그중에 가장 눈에 띄이는 부분인 Launchpad입니다. 
iPhone이나 iPod Touch 또는 iPad 사용을 해본 유저라면 어랏 인터페이스가 비슷하잖아? 라고 느낄 것입니다.
이유가 어찌 되었던 기존 MacOSX를 사용하는 유저들에게는 그닥(?) 많이 사용을 할까라는 생각이 듭니다만... 여하튼 Launchpad기능으로 인해 맥북 사용자들에게는 조금 더 편한 인터페이스임은 틀림이 없을 것이라 생각이 듭니다.
(개인적으로는 그다지 사용하지 않는 기능입니다 ㅡ.ㅡ; )
하지만 자주 사용하는 분들에게 팁을 드릴 까 합니다.
간혹 Launchpad를 사용하면서 원하지 않는 아이콘을 삭제를 할 경우 iPhone또는 iPad를 사용하는 분이라면 손쉽게 삭제가 가능 할 것입니다.
(아이콘을 길게~ 누르면 아이콘이 막 떨죠? 좌측 상단에 X표시를 클릭하면 자연스레 삭제가 됩니다.)
하지만 삭제가 안되는 Case 가 있더군요. 제가 잘 못해서 그럴 수 있겠지만...
예를 들어 Parallels Desktop 설치 후 생성되는 윈도우 계열에 아이콘등등...
(Parallels를 사용하다가 지금은 가상머신으로 VirtualBox를 사용합니다만...)
이를 삭제하기 위해 아이콘을 길~게 눌러보았습니다만 삭제할 수 있는 버튼이 생성이 되지 않더군요.
그래서 구글링을 통해 알아낸 것인데 다음과 같이 하면 됩니다.
조금 난이도가 있습니다만.... 개발자라면 쉽게 해결이 됩니다.
터미널 창을 띄워서 다음과 같이 작성 후 실행을 하시면 됩니다.
"sqlite3 ~/Library/Application\ Support/Dock/-.db"
sqlite> select * from apps; 이렇게 입력하면 위와 같이 Launchpad에 실린 아이콘 정보 값을 조회 할 수 있습니다.
"오호라~ 아이콘을 이렇게 sqlite3 Database를 이용하여 관리한다라~" 아마도 개발자라면 무언가 번쩍 뇌리를 스치게 될 것입니다.
그렇다면 우리가 Table에 대한 정보를 확인 할 수 있는데요.
위 내용과 같이 ".schema apps"를 입력하면 해당 table에 대한 스키마 정보를 확인 할 수 있습니다.
우리가 눈여겨 볼만한 Column명은 "title", "bundleid" 입니다.
자신이 필요없는 아이콘을 삭제를 하고 싶다면 다음과 같은 명령어를 이용해 삭제가 가능 합니다.
"Delete from apps where title = '[삭제하고자 하는 아이콘명]';"
이렇게 입력하면 간단하게 삭제가 가능 합니다.
허나 Parallels와 같이 windows계열에 여러 아이콘이 있는 경우 삭제는 무척 노가다 수준을 요구를 합니다.
만약 이 글을 읽고 있는 분이 쎈스가 있는 분이라면 아까 이야기한 column명중 "bundleid"를 기억하고 있을 것입니다.
"delete from apps where bundleid like 'com.parallels.winapp.%';"
이렇게 입력하고 실행하면 관련된 정보가 삭제가 됩니다.
나름 재미는 있지요? 터미널 창에 익숙하지 않는 분이라면 SqliteManager 툴을 이용해서 쉽게 접근이 가능합니다.
단지 쿼리 작성하는 방법은 아셔야겠죠?
하지만 쉐어웨어 앱 이기 때문에 20개만 출력이 되는 단점이 있습니다. ; )
그러나 다 같은 개발자가 아닌 점을 감안한다면 더 쉬운 방법이 있을 법 합니다.
구글링을 통해 찾아보니... 다음과 같은 툴이 있더군요.
Launchpad-Control 상당히 유용한 툴이라 생각이 듭니다만... ^^
단순히 해당 아이콘을 보여주고 안보여주고 하는 역활 이더군요.
이를 실행하면 "~/Library/Application\ Support/Dock/" 디렉토리에 db backup파일이 자동으로 생성이 됩니다.
아마도 다시 복원하려면 백업된 데이터에서 값을 가져와야 하는 이슈가 있긴 합니다. ; ) 
(왠지 간단한 툴이지만 아이디어가 돋보이는 툴이기도 합니다.)
다운 받을 수 있는 자료

백운산 계곡에서 여름 휴가를... 우리가족

오랜만에 계곡에서 휴가를 보냈습니다.
처가댁 형님 가족과 함께...^^

애들이 무척 좋아라 합니다. 
(아~ 뱃살이 ㅡㅡ;;;)


맥 업그레이드 정보 필수 품 Mactracker Macintosh

Mactracker는 상당히 오래된 Application이랍니다.
예전 Old Mac을 사용할 때 부터 개인적으로 상당히 애용하는 편이였죠.
얼마전에 회사 직원에게 노트북용 메모리 4GB DDR3(1333Mhz)를 기증 받았죠.
그런데 제 맥북은 애플에서 이야기하는 Max 4GB로 업그레이드 한 상태이기 때문에 어떻게 할 까(?)를 고민하게 되더군요. ㅎ;
그래서 Mactracker를 이용했답니다.

역시 오래된 애플 제품부터 해서 현재까지 각 기기마다 상세한 정보를 제공을 해줍니다.

사실 자신이 사용하는 모델에 대해서 초기 구입시 스팩에 대해서 잘 알고 있겠지만.... 시간이 지나면(?) (흠 나이를 먹으면 ㅡ.ㅡ;;; ) 잊어 먹기 일수랍니다.
(흠 저를 생각하는 이들이 상당수가 ㅡ.ㅡ;;;)

여하튼... 기증 받은 DDR3 4GB에 추가로 구입한 동일한 모델 4GB 조합으로 제 맥북에 이식을 하였더랍니다.
참고로 제 맥북 모델은 2008년도 말에 생산된 맥북이랍니다.
(남들이 보면 현재 나온 맥북 프로로 착각을 하게 됩니다. ㅋㅋ)
CPU Intel Core 2 Duo (Penryn)로 아직까지 현업에서 꽤 쓸만한 모델이기도 합니다.
하지만 당시 한국에서는 높은 달러 상승으로 인해 제가 사용하는 모델이 209만원에 거래가 되었던 모델이기도 합니다.
(하지만 전 중고로 구입했답니다. 흠... 남부럽지 않게 가난한지라... ㅡ.ㅡ)

Mactracker를 이용하여 확인해본 결과 위와 같이 정보를 나타내 줍니다.
최대 확장 가능한 메모리는 8GB.... 오호라 애플에서는 최대 4GB라 이야기 해줬던....

화이트 맥북의 경우는 2009년 10월에 발표된 모델부터는 최대 8GB 지원을 합니다.
이전에 나온 화이트 맥북의 경우 6GB까지 지원을 하더군요.
아마도 하드웨어 설계 때문에 그런 듯 하기도 합니다만.... 이상하게 맥북 쓰리즈 중에 2008년 10월에 발표된 맥북(현재 제가 사용하고 있는 모델)의 경우는 하드웨어 설계가 특별했나 봅니다. ; )
맥 환경에서 메모리 많은 탓에 상당히 부드럽게 사용이 가능하고, Bootcamp에서 Windows7을 사용할 때도 상당히 여유가 있었습니다.
더구나 VisualStudio.Net 2010 첫 구동 때 상당히 오랜 시간이 걸리는데 8GB 업 한 후 구동해 보니 전보다 약간 빨라 졌단 생각을 하게 됩니다.
(저만 그리 생각할까요? ㅋㅋ)

아래 Windows 7에서 메모리 상태를 보여주는 내용입니다.
보는 것과 같이 상당히 여유있단 생각을 하게 됩니다. ; )
원래는 맥북프로 이번에 나온 모델을 구입하려 하였으나 제 맥북 메모리 업그레이드로 향 후 2년 정도는 더 쓸 듯 하기도 합니다. ; )
Mactracker를 통해 업그레이드를 손쉽게 할 수 있어서 좋긴 합니다. ^^
그런데 메모리 업그레이드 한 후 단점이 생기더군요.

흠....
맥북이 상당히 발열이 심해졌다는 것과 배터리를 많이 잡아 먹는다는 것입니다.
어찌보면 당연한 것이라 생각 합니다. ㅡ.ㅡ 하나를 얻게되면 다른 하나를 잃게 된다는.....

FireFTP Dev

요즘 들어 FTP Client에 관해 많이 논하고 있는데요.
왜 제가 FTP Client에 관심을 보이는지 ㅎㅎㅎ;

시간이 남아 돌아서 그러는게 아니고, 내용은 이러합니다.
집에 버팔로 NAS 장비를 두고 있는데요. (이전에는 PC를 가지고 FTP 서버를 사용했지요. 하지만 전기 비용이....흠...)
이게 한글 폴더와 한글 파일명인 경우엔 FTP Client가 인식이 안되는 점이 있더군요.
심지여 리스트에서도 출력이 되지 않는 점이 가장 큰 문제점이기도 하고요.

웹 브라우져에서도 확인을 해보았지만 그나마 크롬 웹 브라우져에서는 파일 다운이 가능이 됩니다만, 한글은 깨지곤 합니다.
맥용 FTP Client 그리고 Windows용 FTP Client 모두 다 테스트를 해보았지요.
하지만... 결과는 동일했습니다.
(제가 설정을 잘 못 해서 그럴 수 있겠지만 많은 자료를 찾아보고 테스트에 임했습니다.)

혹시나 싶어 파이어폭스 웹 브라우져 확장 프로그램인 FireFTP를 테스트 해보기로 하였습니다.
결과는?????

잘 됩니다. ^^ (답이 나온듯 합니다. ㅎㅎ 아마도 이 글을 보고 있는 배나온 선배가 좋아할 지도 모릅니다. ㅋㅋ)
파이어폭스 웹 브라우져 이기 때문에 어떤 OS환경에서 사용이 가능하고, 확장 프로그램 또한 OS에 상관없이 작동이 잘 됩니다.
(IE에도 이런 기능이 있으면 좋으련만 ㅡ.ㅡ)

우선 자신에 PC에 파이어폭스 5를 설치하고, 아래와 같은 Action을 하면 됩니다.

파이어폭스를 설치하였다면 Alt Key를 눌러 도구>부가 기능을 선택합니다.
전 세계 파이어폭스 관련 확장 응용프로그램이 나오게 되는데 이곳에서 FireFTP를 검색하여 다음과 같이 설치하면 됩니다.

설치가 마무리가 되면 파이어폭스 다시 시작 하여 아까 보았던 도구 메뉴에 "FireFTP" 항목이 생성이 된 것을 알 수 있습니다.

해당 항목을 선택하여 FireFTP를 실행 합니다.

위와 같이 Create an Account를 선택하여 FTP 접속 정보를 아래와 같이 설정하면 됩니다.

Main항목과 Advanced 항목에 다음과 같이 지정 후 접속하게 되면 한글 문제가 말끔히 사라지게 됩니다.

국내 개발된 알FTP등 그 외 많은 Client를 테스트를 해보았는데...
결국 버팔로NAS와 FireFTP가 잘 맞단 생각을 해보게 됩니다.

더구나 그 동안 한글 때문에 고민을 많이 하게되었는데... 이번 기회로 더이상 고민을 하지 않아도 될 듯 합니다. ; )
(오죽하면 한글 사이 Space 값 때문에 리스트에 출력이 되지 않는다고 선배와 논하였을까요? ㅡ.ㅡ)

참고로 FireFTP 설치 후 실행하게 되면 FireFTP 개발자와 어린 꼬마아이랑 같이 찍은 사진을 볼 수 있습니다.
단순히 가족이라 생각을 하였는데...

내용을 보니... FireFTP 수익에 절반은 고아원에 기부를 하고 있답니다.
같이 찍은 어린아이는 고아원 중에 한 어린아이라 설명을 하고 있습니다.
(아~ 나도 이런 개발자여야 하는데... 현실은 ....ㅡ.ㅡ )

여유가 있는 분들은 기부를 하시고, 공짜여도 소중하게 사용하시면 될 듯 합니다. ; )
(내가 공짜 너무 좋아하는 듯 ㅡ.ㅡ;;; )

Log4Net Dev

웹 Page 개발 또는 다른 응용프로그램 개발 시 Log을 남기는 형태가 대부분입니다.
(Exception이라던지 Error에 대한 기록 등등... 아니면 PG Transaction에 대한 기록 등등...)

이전에 단순히 Log파일을 기록하고 남기기만 했었는데...
시간이 지나면 상당한 용량으로 Log파일에 대한 고민을 하게 됩니다.

이전 회사에 Daemon Server에 대한 Log 기록하는 기능이 있었는데... 일정 시간이 지나면 새로운 로그 파일이 생성된는게 기억이 나더군요.
그래서 .Net 기반에서 그런 기능이 있을까 하고~ 찾던 와전에 log4net을 알게 되었습니다.
더구나 무척 다양한 기능에 제가 생각했던 Library 라는 점~!!!!
그리고 많은 Java개발자들이 사용한다는 점에 이미 검증되었다는 걸 알게 되었습니다.

그래서 이래저래 테스트를 해보았습니다. ^^

간단하게 Console App을 만들어 보겠습니다. ; )

1. 아래 그림과 같이 VisualStudio.Net에서 Console Application을 선택 후 이름과 위치를 지정합니다.
(저는 Log4Net_Sample 이름으로 지정하였습니다.)


2. VisualStudio.Net Tool에서 프로젝트를 생성하였다면, 참조에 다운받은 log4net.dll를 추가 합니다.
그리고 응용프로그램 구성 파일도 추가 합니다.
(log4net 다운로드는 이곳에서.... "http://logging.apache.org/")

3. App.Config 파일에 다음과 같이 코딩을 합니다.
(자세한 내용은 아래에서 설명을 하겠지만...^^)

4. Properties안에 AssemblyInfo.cs 파일을 열어 다음과 같이 코딩을 합니다.

5. Program.cs 부에 아래와 같이 코딩을 합니다.


해당 프로젝트를 Compile 후 실행하게 되면 해당 실행 파일 내에 다음과 같은 log 파일이 쌓이게 됩니다.

자~ 너무나 간단하게 Sample Console App를 만들게 되었습니다.
결과도 잘 나오는 편이고요~

여기서 우리가 잘 이해해야만 하는 부분이 있습니다.

바로 App.Config 파일인데요. log4net dll은 log4net.xml 을 동반하게 됩니다.
개발자가 log4net.xml 파일을 개발자 입맛에 수정할 수 있지만, Web이던 App던 .Config 파일에서 핸들링 하길 원할 것입니다.
오히려 유지보수 하기에도 간단하겠죠? 대부분이 Web.Config나 App.Config 파일에 DB Connection String까지 사용하니 말이죠.

원래는 코딩쪽에서 log4net.xml을 읽어 들여 log4net 설정을 하는편이지만 전 App.Config에 정하였습니다.
이를 위해 Properties=>AssemblyInfo.cs에 Step4에 설명한 것과 같이 추가를 한 것이랍니다.
( 이해가 되나요? 이해가 안된다면 ㅡㅡ;;;; )

그럼 다시 App.Config를 바라 봅시다~!!!

<log4net> 테크 안에 <root>테그가 보일 것입니다.
여기에 Level이 지정되어 있는데요.
Web이나 App에서 Debug또는 Exception등을 Capture하여 Log파일에 기록을 할 수 있습니다.
Option이 상당히 많이 있다는 것을 알수 있습니다.
(Options are "ALL", "DEBUG", "INFO", "WARN", "ERROR", "FATAL" and "OFF".)

전 ALL로 지정을 하였고, 자신이 개발한 App또는 Web 기능이 완벽하다면 주로 INFO또는 ERROR 만 사용하게 됩니다.

log4net핵심이 바로 Appender 입니다.
이 기능이 생각보다 많이 있습니다.
(자세한 내용은 이쪽에서 참고 하세요~!!! "http://logging.apache.org/log4net/release/config-examples.html")

로그 정보를 파일 또는 메일로 발송할 수 있고, EventLog에도 기록을 할 수 있고, 또 DB에도 기록할 수 있습니다.
왠지 메일 발송하는 기능이 꽤~! 매력적이라 할 수 있겠습니다. (으흠~ 에러 메일이 쭈욱쭈욱 날라오겠지요?)

제가 원하는 것은 1분마다 로그파일을 기록하고 새롭운 파일에 이어서 저장하는 걸 원했습니다.
(Daemon때문에 ㅡㅡ;;;; )

그래서 다음과 같이 설정을 하였습니다.

    <appender name="RollingLogFileAppender" type="log4net.Appender.RollingFileAppender">
      <file value="logfile" />
      <appendToFile value="true" />
      <rollingStyle value="Date" />
      <lockingModel type="log4net.Appender.FileAppender+MinimalLock" />
      <datePattern value="_yyyyMMddHHmm&quot;.log&quot;"/>
      <layout type="log4net.Layout.PatternLayout">
        <conversionPattern value="%level %logger %date{ISO8601} - %message%newline"/>
      </layout>
    </appender>

최초 logfile 이란 파일이 생성이 되면서 실시간으로 기록을 하게 됩니다.
RollingStyle을 Date로 지정함으로 인해 1분이 지나면 "logfile_yyyyMMddHHmm.log" 파일로 남게되고 이어서 다시 logfile에 기록을 하게 됩니다.
Transaction이 그리 많이 일어나지 않는다면 "DatePattern" 부를 _yyyyMMdd&quot;.log&quot; 로 지정하여 일별로 저장 할 수 있게 됩니다.
(전 1분 단위로 지정했는데... 이게 초까지는 안되더군요. ㅡ.ㅡ)

그외 다양한 옵션이 있는데 제가 원하는 옵션인지라 이렇게 사용이 되었고, 웹에서 Exception을 처리한다면 Log 파일보단 SMTP를 이용하여 메일로 발송하는 기능이 적절하지 않을 까 하는 생각을 하게 되네요. ^^
(예전에 왜 Exception날때 메일 보내는 로직을 따로 만들었을까? ㅡ.ㅡ)

역시 구글에서 이래저래 자료를 찾아보면 좋은 내용들이 많이 있단 생각을 해보게 됩니다. ; )

1 2 3 4 5 6 7 8 9 10 다음


팔로우링크

Follow filemk on Twitter

Twitter