Posts Tagged ‘ Mac

Windows7과 타임캡슐의 연결이 잘 안될 때

최근에 Windows7을 설치하고 난 후에 Windows Vista에서도 아무런 문제없이 잘 사용하던 타임캡슐에 문제가 생겼습니다. 연결이 자꾸 끊기는 것은 물론이고, Windows7 -> 타임캡슐로 복사도 안되더군요.

검색해보니 해외에서도 펌웨어를 최신으로 업데이트 하고 난 후에 비슷한 증상을 겪었다는 사람들이 많았습니다. 최신 버전인 7.4.2의 문제로, 많은 사람들이 7.3.2로 펌웨어를 롤백하라고 권장하고 있었습니다.

7.4.2에서 7.3.2로 롤백하는 방법은 다음과 같습니다.

1. AirPort 유틸리티를 실행합니다.

1. AirPort 유틸리티를 실행합니다.

1. AirPort 유틸리티 실행

2. 컨트롤 키를 누른 채로 파일 -> 업데이트 확인 메뉴를 클릭합니다.

2. 컨트롤 키를 누른 채로 파일 -> 업데이트 확인 메뉴를 클릭합니다.

2. 컨트롤 키를 누른 채로 파일 -> 업데이트 확인 메뉴 클릭

3. 원하는 버전(여기서는 Time Capsule 7.3.2)을 선택한 후 다운로드 버튼을 클릭합니다.

3. 원하는 버전(여기서는 Time Capsule 7.3.2)을 선택한 후 다운로드 버튼을 클릭합니다.

3. 원하는 버전 선택 후 다운로드 버튼 클릭

4. 베이스 스테이션 -> 펌웨어 업로드를 선택합니다.

4. 베이스 스테이션 -> 펌웨어 업로드

4. 베이스 스테이션 -> 펌웨어 업로드

5. 취소 버튼을 클릭합니다.

5. 취소 버튼 클릭

5. 취소 버튼 클릭

6. 원하는 버전을 선택한 후, 확인 버튼을 클릭합니다.

6. 원하는 버전 선택

6. 원하는 버전 선택

7. 설치가 완료되었습니다.

7. 설치 완료

7. 설치 완료

위와 같이 펌웨어 드라이버를 롤백하고 난 후에는 Windows 7에서도 정상적으로 복사가 가능해졌습니다. 얼른 이 문제가 수정된 펌웨어가 나왔으면 좋겠습니다. ^^

Snow Leopard에서 ezPlus 사용하기

최근에 운영체제를 Leopard(이하 레퍼드)에서 Snow Leopard(이하 스노우 레퍼드)로 업그레이드 했습니다.

스노우 레퍼드 (출처 : 애플코리아)

스노우 레퍼드 (출처 : 애플코리아)

일부 호환성 문제가 있다고 알려져있지만, 다행히 제가 쓰는 범위 내에서는 큰 문제가 없었습니다. 유일하게 FTP 클라이언트인 Cyberduck이 실행이 안되었는데, 홈페이지를 찾아가보니 스노우 레퍼드에 대응한 베타 버전을 이미 내놓았더군요.

문제는 신한은행에서 제공하는 맥용 클라이언트인 ezPlus 였습니다. 혹시나 했지만 역시나 신한은행에서는 스노우 레퍼드의 출시가 있거나 말거나 무관심한 분위기고, 인터넷에는 재빨리 업그레이드한 사람들의 푸념섞인 소리만 보이더군요. 증상을 정확히 말하면 프로그램 실행은 되는데, 공인인증서 패스워드를 입력하고 로그인을 시도하다가 다음과 같은 에러를 나타냅니다.

ezPlus 오류

ezPlus 오류

오류 메시지에 있는대로 프로그램을 바탕화면으로 옮겨보기도 했습니다만, 역시 같은 오류를 보게 됩니다. 그리고, 오늘 검색을 다시 해보니 레퍼드에 있는 Java 1.4 버전을 모두 옮기면 된다는 해결책이 있더군요. 하지만, 이미 업그레이드를 해버린 저에겐 옮겨올 레퍼드가 없었습니다. T^T

다행히 해외쪽에서 자바 문제를 해결한 페이지를 찾게 되었습니다. 1.5와 1.4 어떤 방법을 사용해도 해결은 가능하지만, 페이지에 있는 대로 Java 환경설정을 건드리면 기본 자바 버전이 1.6 64bit에서 1.5 32bit로 변경됩니다. 기본값이기 때문에 ezPlus 를 제외한 다른 자바 프로그램에서도 1.5 32bit를 사용한다는 것인데, 성능 상으로도 안 좋을 것 같고 왠지 찝찝하죠. 그래서 1.4 버전만 설치해봤더니 자바 환경설정을 건드리지 않아도 잘 동작하더군요. 방법은 다음과 같습니다.

1. 자바 1.4 버전을 다운로드 받습니다.

http://www.cs.washington.edu/homes/isdal/snow_leopard_workaround/java.1.4.2-leopard.tar.gz

위 URL 에서 받을 수 있습니다. 그리고 위 파일의 압축을 해제합니다. 압축을 해제하면 다음과 같이 1.4.2 폴더가 생성된 것을 볼 수 있습니다.

1.4.2 폴더

1.4.2 폴더

2. 터미널을 열고, 1.4.2 의 부모 폴더로 이동합니다.

그 다음, 다음 명령어를 입력합니다.

sudo mv 1.4.2 /System/Library/Frameworks/JavaVM.framework/Versions/1.4.2-leopard
cd /System/Library/Frameworks/JavaVM.framework/Versions/
sudo ln -s 1.4.2-leopard 1.4.2

이게 전부입니다. ^^
이제 ezPlus를 실행해보면 정상적으로 실행되는 것을 알 수 있습니다.

[JS] Mac에서의 컨트롤키 찾기

키보드 이벤트(keypress, keydown, keyup)가 발생할 때 전달받는 이벤트 객체에는 지금 눌려있는 특수키를 알 수 있는 속성이 포함되어 있다. 예를 들어, 전달받은 이벤트 객체를 oEvent라고 하면, oEvent.shiftKey 속성의 값을 사용해서 shift key가 눌렸는지 알 수 있다. 이 속성값이 true라면 눌린 것이고, 그렇지 않다면 눌리지 않은 것이다.

다른 운영체제와 달리 Mac에는 커맨드 키(Command key)라는 특수한 키가 있고, Windows에서 Control 키가 그러하듯 여러가지 단축키로 사용한다. 예를 들어, Windows에서는 복사를 하기 위해 Ctrl+C 를 단축키로 사용하지만, Mac에서는 Command+C를 사용한다. 커맨드 키는 oEvent.metaKey 속성의 값을 살펴보면 눌렸는지의 여부를 알 수 있다.


어쨌든… shiftKey, ctrlKey, altKey, metaKey 속성을 사용하면 자바스크립트로 단축키 기능을 만들 수 있다. 예컨데, ctrl+B가 눌렸는지 알고 싶다면 다음과 같이 작성하면 된다.

if (oEvent.ctrlKey &&
   oEvent.keyCode == 66 &&
   !oEvent.shiftKey &&
   !oEvent.altKey &&
   !oEvent.metaKey)
{
	alert('ctrl+B');
}

이렇게 작성하면 운영체제에 관계없이 ctrl+B를 검출 할 수 있다… 였으면 좋겠지만 실상은 그렇지 않다. Mac에서는 특이하게 Ctrl 키만 눌렀음에도 불구하고 metaKey까지 같이 눌린 것으로 나타난다. 그렇기 때문에 Linux와 Windows에서는 잘 동작하는 위의 코드가 Mac에서는 동작하지 않는다.

따라서, Mac에서는 Ctrl 키만 눌린 경우를 찾고 싶다 해도, ctrlKey와 metaKey가 둘 다 true인 조건을 찾아야 한다. 따라서 위 코드는 다음과 같이 변경할 수 있다.

if (oEvent.ctrlKey && oEvent.keyCode == 66 && !oEvent.shiftKey && !oEvent.altKey) {
	alert('ctrl+B');
}

하지만, altKey 혹은 shiftKey와 조합되는 단축키를 사용하려면 metaKey 체크를 해서 shift+B와 shift+meta+B가 혼동되지 않도록 해주는 것이 좋다.