콘텐츠로 건너뛰기
Home » 도구와 팁 » Mac Tips

Mac Tips

macOS Tips
맥OS를 사용하면서 겪는 문제에 대한 해결방법과, 비싼 돈 주고 산 맥을 제대로 활용하는 법에 대한 이야기

grep 간단 사용법🔍

grep은 주어진 파일(들)이나 표준입력에서 주어진 패턴과 매칭되는 라인들을 필터링하여 출력해주는 유틸리티로 여러 파일에서 특정한 문자열을 한 번에 찾을 수 있게하는 도구이다.

grep의 사촌쯤 되는 fgrep, egrep도 있는데 이들은 각각 grep의 -F, -E 옵션으로 통합되었으며 현재는 오래된 스크립트에서 호출하는 상황을 위해호환성 유지 측면으로만 남겨져 있다고 생각하면 된다.

더 보기 »grep 간단 사용법🔍

쉘에서 파일 디스크립터를 사용한 필터 구현

쉘에서 파일 디스크립터 사용하기

입출력을 반복하는 형태의 커뮤니케이션을 구현하기 위해서는 한 쌍의 FIFO 파이프를 만들어서 사용한다. 파이프는 mkfifo 명령을 통해서 이름이 붙은 파이프를 만들 수 있다. (이름이 붙은 파이프라는 것은 결국 임시파일이다.)

mkfifo /tmp/infifo
mafifo /tmp/outfifo

입력을 sed를 이용해 필터링하여 출력하는 예제는 다음과 같다.
더 보기 »쉘에서 파일 디스크립터를 사용한 필터 구현

[Cocoa / Objective-C] NSString의 문자열 뒤집기, 글자를 정렬한 문자열 구하기.

프레임워크에 당연히 있는 기능일 줄 알았는데 없더라… 그래서 자작. 짤막한 설명 문자열 뒤집기는 C문자열로 바꾼다음 포인터를 쓰는게 제일 깔끔할 것 같아서 그렇게 했다. -UTF8String 메소드는 const char 타입 포인터를 리턴하는데, 이걸 char 형으로 강제캐스팅하는 게 찜찜해서 strcpy로 복사했는데, 어디서 이 함수도 상당히 나쁘다고 쓰지 말라더라. (다른 뭐를 쓰라던데 그게 기억이 안나서 그냥 씀) malloc으로 할당한 메모리는 ARC의 관심밖이므로 철저히 free 해주는 나란 남자, 그런 남자… 문자열내 문자들을 사전순으로 정렬해주는 건 소인수 분해 따위나 할 때 쓸모가 있긴 있을텐데,  NSArray의 sortedUsingComparator:… 더 보기 »[Cocoa / Objective-C] NSString의 문자열 뒤집기, 글자를 정렬한 문자열 구하기.

iTunes 11 출시

한국시간으로 11월 30일 새벽에 아이튠즈 11이 출시되었다. 원래는 10월에 출시될 예정이었는데 문제가 있어서 출시를 한 달 미루면서 일부 설계를 바꾸고 새로 작성한 부분이 꽤 된다는 이야기가 있다.  (11월 출시조차 못맞추는 건 아닐까 내심 조마조마했었다.) 거의 2년 가까이 아이튠즈의 외관에는 큰 변화가 없었는데, 그나마 마이너 업데이트가 계속 되었던 것은 iOS의 버전이 올라가면서 그에 맞는 드라이버 업데이트가 필요했기 때문이다. (윈도와 맥 공통으로 아이폰을 컴퓨터와 연결하는 데 필요한 장치 드라이버는 아이튠즈에 포함되어 있다. 그래서 상위 버전의 iOS와 동기화하려면 아이튠즈 업그레이드는 필수) 이번에 새로… 더 보기 »iTunes 11 출시

맥의 부팅음을 없애는 방법

맥 특유의 부팅음은 PC계열의 삑- 하는 소리보다는 아름답지만, 도서관 등의 공공장소에서 재부팅이라도 한 번 할라치면 참 난감하다. (생각보다 이 부팅음의 소리는 큰 편이더라.) 맥 부팅음을 없애주는 앱 같은 것도 나와 있는 것 같던데. 암튼, 누군가는 이런 게 분명 필요한 모양이다. 이 부팅음을 영영 안나오게 하는 건 서드파티 앱 없이도 할 수 있다. 터미널을 열고 다음과 같이 입력한다. sudo 명령을 쓴다는 것은 이 명령을 입력하고 엔터를 친 후, 비밀 번호를 물어보게 된다. sudo nvram SystemAudioVolume=%80 입력 후 자신의 로그인 계정의 비밀번호를… 더 보기 »맥의 부팅음을 없애는 방법

[OSX] 맥에서 손쉽게 아이폰용 동영상 인코딩하기

디지털 카메라나 아이폰이 아닌 스마트폰으로 찍은 동영상을 아이폰에서 재생하려면 인코딩을 해야하는 경우가 있다. 윈도에서는 곰인코더 같은 게 많이 있던데 맥에서는 뭘쓰면 좋을라나… 싶었지만 구관이 명관(?)이라고 리눅스 쓸 때부터 쓰던 Handbrake가 좋겠다 싶었다. (당연히 맥용도 있고, 윈도용도 있음) HandBrake는 Preset을 정해서 쉽게 인코딩을 할 수는 있지만, 매번 영상 파일을 찾아서 일일이 지정하기는 좀 번거로우니까, 아예 Automator를 써서 한 방에 처리할 수 있는 도구를 만들어 보도록 하자. 이 때 약간의 준비물이 필요하다. 동영상을 인코딩할 Handbrake는 CLI 버전이 있어야 하고 (터미널에서 실행되는 명령줄… 더 보기 »[OSX] 맥에서 손쉽게 아이폰용 동영상 인코딩하기

최근 Xcode의 개선사항

애플은 단지 SDK만 업그레이드하는게 아니라 개발도구도 지속적으로 개선해나가고 있다. Xcode 3 -> 4로 넘어올 때도 상당히 좋아졌는데, 4.5까지 오면서 계속해서 개선되고 있다. What’s new in Xcode 4.3 개별 도구 앱이 하나의 앱 패키지에 통합됨 명령줄 도구를 선택적으로 설치하도록 분리됨 /Developer 디렉터리를 사용하지 않음. 한대의 맥에 다른 버전의 Xcode를 동시에 설치하는 것이가능하며, Xcode는 기존 버전의 Xcode를 삭제하는 기능을 제공함 신규 코코아 프로젝트에서 Auto Layout이 디폴트로 설정됨. What’s new in Xcode 4.4 LLVM 4.0 컴파일러가 적용됨. 이 때부터 NSString외의 객체도 @Literal을 사용할… 더 보기 »최근 Xcode의 개선사항

MacVim의 vimrc 파일을 별도로 관리하기

MacVim은 코코아로 만들어진 GUI 기반의 vim앱이다. 취향에  따라서는 터미널에서 vi를 실행해서 쓸 수도 있지만 (난 아무래도 이쪽인 듯) MacVim은 마우스를 지원하는 등의 “조금 더 쉽게” vi의 강력한 기능들을 활용할 수 있다. MacVim은 ~/.vimrc 파일을 로딩해서 터미널의 vi와 동일한 설정을 그대로 따를 수 있지만, 경우에 따라서는 몇몇 설정이 별도로 필요할 수 있다. 이런 경우에는 MacVim에서만 사용하는 vimrc 파일이 있으면 좋겠는데…. 그런데 그것이 실제로 있습니다. 아는 사람은 아시다시피 OSX의 앱은 그 자체가 하나의 ‘폴더’로 존재한다. 즉 폴더에 아이콘이 씌워져 있고, 이를 더블… 더 보기 »MacVim의 vimrc 파일을 별도로 관리하기

[Mac] 다음으로 열기… 에서 앱이 중복으로 나타나는 문제

파인더에서 특정 파일을 열 때 기본 앱이 아닌 다른 앱으로 실행하려면 오른쪽 클릭 후 “다음으로 열기…”를 선택하여 앱을 고를 수 있다. 만약 설치에 문제가 있었거나, 제대로 삭제하지 않고 재설치하는 등의 이유로 인해 중복된 앱이 표시되는 문제가 있을 수 있다. (특히 구글 크롬의 경우, 업데이트 되는 과정에서 이런 문제가 생길 수 있음) 이때의 해결책. 다음의 명령을 복사하여 터미널에서 실행한다. /System/Library/Frameworks/CoreServices.framework/Versions/A/Frameworks/LaunchServices.framework/Versions/A/Support/lsregister -kill -r -domain local -domain system -domain user 조금 시간이 걸릴 수 있다. 완료되면 파인더를 재시작한다. killall Finder 확인해보면 중복앱이 정리되어… 더 보기 »[Mac] 다음으로 열기… 에서 앱이 중복으로 나타나는 문제

터미널로부터 알림 받기

터미널을 통해 시간이 걸리는 작업을 걸어놓고 멍하니 변화없는 터미널을 바라보기 보다는 다른 작업을 하고 있는 편이 좋을 때도 있다. 그렇다고 다른 작업을 하다가 터미널에서 돌아가던 작업이 완료된 것도 모르고 빠져들어버리면 그것도 좀 시간 낭비가 될 수 있고… 아무튼 그런 경우에 유용하게 사용할 수 있는 팁. tput 명령을 사용하면 터미널이 비활성 상태일 때 Dock에 있는 터미널에 알림을 보낼 수 있다. tput bel 이라고하면 터미널 창이 비활성 상태일 때 Dock을 통해 알림을 보낸다. 따라서 수행하고자 하는 명령을 입력한 후 && tput bel… 더 보기 »터미널로부터 알림 받기