맥북에서 마우스 보조 버튼 사용하기


맥의 기본 마우스 설정엔 보조 버튼 맵핑을 지원하지 않는다. 왜!!  왜!!

그래서 마이크로 소프트나 로지텍과 같은 그나마 이름있는 브랜드는 따로 mac용 드라이버를 지원하기도 하지만

그나마도 지원이 빠르지도 않은듯 하다.

(내가 사용하는 ms 마우스는 os 엘케피탄 업데이트 후 보조 버튼이 동작하질 않는다!!  망할 intellipoint..)




▲ 사용중인 Microsoft Explorer Mini Mouse



steer mouse라는 마우스 설정 지원 소프트웨어가 있긴 한데 20$...

(다운로드 받으면 30일 무료)


뭐 20$정도의 가치는 충분히 하겠지..   싶어 평가판을 사용해봤었는데

가끔 프로그램이 다운되어 그때마다 새로 실행시켜야하는 불편함이 있었다.

(이건 복불복인듯..)


암튼 

분명 다른 방법이 있겠지 싶어 찾아보다가 발견한게

일명 BTT (Better Touch Tool)


▲ BTT 아이콘 (뭔가 싶었더니만 트랙패드에 손가락을 올려놓은..)




다운로드 페이지



▲ 사용중인 os 버전에 맞춰 다운로드를 받자. (10.7 이상은 녹색 버튼)



사용법은??


BTT엔 트랙패드 제어, 제스쳐 등록, 마우스 버튼 기능 설정 등등 많은 기능이 있는데

그 중 마우스 보조버튼 등록만 고고싱


▲ 애플 마우스가 아닌 일반 마우스를 설정해야 하므로 Normal Mice 선택 후

1) Global 선택

2) Add New Button 선택







▲ 1) [Click here to select mouse button] 클릭 후 설정하려는 보조 버튼을 누른다.

2) [Predefined Action]  선택




▲ Mimicking Standard Gestures

3F Swipe Left (Page Back) : 뒤로가기  또는

3F Swipe Right (Page Forward) : 앞으로 가기

원하는 기능을 선택해주면 끝~!!!










Array 와 Set의 차이


거의 비슷한 형태의 Array와 Set!!  무슨 차이일까???

이것도 코드로 확인해보자!!!!


1
2
3
4
5
6
7
8
9
10
//Set의 경우 배열과 구분짓기 위해 타입(Set)을 명시해줘야한다!!!!
var testArray = ["사과""배""귤""바나나"]
var testSet : Set = ["사과""배""귤""바나나"]
 
 
testArray.insert("사과", atIndex: testArray.count)
//=> ["사과", "배", "귤", "바나나", "사과"]
 
testSet.insert("사과")
//=> ["사과", "배", "귤", "바나나"]
cs


testArray는 "사과"가 추가되었지만 testSet는 추가되지 않았다.
왜??
Set은 중복된 값을 허용하지 않기 때문이다.

한마디로 Array는 중복 여부와 상관없이 아무 값이나 넣을 수 있고
Set은 모든 값들이 고유한 값으로 채워지도록 되어있는 형태이다.


구문 레이블


반복문이나 조건문에 이름을 달자!!! 근데 왜??


말이 필요없다.  코드로 확인해보자.


1
2
3
4
5
6
7
8
9
10
label_1 : for i in 1...9
{
    label_2 : for j in 1...9
    {
        if j == 5
        {
            break label_1
        }
    }
}
cs

j 가 5가 되면 break로 for문을 빠져나가게 되는데 구문 레이블을 사용하지 않을 경우 다시 바깥에 있는 for문을

수행해야 한다.

하지만 구문레이블을 사용하면 바깥에 있는 label_까지 바로 빠져나갈 수 있다.


짱좋음!!



'개발 > Swift' 카테고리의 다른 글

#available  (0) 2015.12.22
extention  (0) 2015.12.12
willSet didSet  (0) 2015.12.11

#available


버전별 사용자 처리를 위한 키워드라고 할 수 있겠다.


유니티를 예로 들자면 각 유니티 버전에 대한 타입 분류를 


1
2
3
4
5
#if UNITY_4_6_5
    //4.6.5 버전 사용자 처리
#else
    //그 외 버전 사용자 처리
#endif
cs


이렇게 c# 전처리 define을 사용해서 처리할 수 있는데
스위프트는 #available 키워드로 코드상에서 좀더 세밀하게 처리가 가능하다.

1
2
3
4
5
6
7
if #available(iOS 9*)
{
    //ios 7 버전 사용자 처리
}else{
    //그 외 버전 사용자 처리
}
 
cs

또한, 여러개의 플랫폼을 구분지어서 체크할수도 있다.

#available(iOS 9, OSX 10.11.2, *)

여기서 주의할점은 항상 마지막엔 *을 넣어서 입력이 끝났음을 알려주어야 한다.



'개발 > Swift' 카테고리의 다른 글

구문 레이블  (0) 2015.12.22
extention  (0) 2015.12.12
willSet didSet  (0) 2015.12.11

맥북 프로 2011 early SSD 하드 교체와 옵티베이(멀티하드) 장착



데스크탑이 있긴 하지만 거의 사용을 하지않고 거실에 있는 맥북을 주로 사용하는데

OS가 몇 번 업그레이드 되면서 이게 OS 사양을 못따라가는건지 아니면 오래 사용을 해서 그런건지

암튼 버벅임 현상이 날이갈수록 심해지는거다.



 메모리가 무려 16기가!!  그런데도 버벅인다고???




도대체 원인이 뭐지??  폭풍 검색 돌입..

[결론은 오래된 사양이긴 하지만 SSD 하드 업그레이드로 어느정도 커버가 가능하다!!]

신형으로 새로 구매까지 고려하고 있었는데 하드만 따로 구입한다면

해볼만한 장사다 싶어 바로 부품 구매 시~~~작



SSD 삼성 840 PRO 512G


SSD 는 가장 안정성이 뛰어나다는 삼성 제품 840PRO 512G.

850PRO가 보증기간도 더 길고 신품이긴 하지만 벤치 마크에서 840PRO의 읽기/쓰기 속도가 더 높게 나온다는 얘기도 있고...

음..사실 그런거 잘 모르겠고 -_- 그냥 중고나라에 신품이 싸게 나와서 구매해버렸다. - 20만원




정밀 드라이버 세트


맥북 분해 시 별모양 드라이버가 필요하다길래 덥썩 구매.

45종 세트 가격이 7,100원뿌니 안한다!!  Made in china 만세!! - 7,100원




옵티베이(세컨베이)


SSD 장착 후 기존 하드를 계속 사용하기 위해 구매.

옵티베이를 사용하면 맥북의 CD롬을 떼어네고 그 자리에 HDD 장착이 가능해진다. - 옵티베이 + ODD 케이스 24,000원



자..  이제 부품은 다 준비가 됐으니

교체 시작~!!!





뒷판 분리 - #00 십자 드라이버 사용





네모 표시된 부분이 메인보드와 배터리를 연결해주는 케이블





▲ 배터리 연결 케이블을 분리. 쇼트 방지를 위해서일까??  암튼 그게 좋다니 일단 분리 ㄱㄱ





왼쪽 구석에 교체할 하드가 보인다!!





하드 고정쇠 나사 2개 제거





분리 완료!!





▲ HDD 옆에 삐죽이 나와있는 필름(?) 을 쭈욱 잡아당기면





▲ HDD가 쭉 딸려나오는데 표시된 부분의 케이블을 쭉 뽑으면 HDD 완전 분리 성공!!





 분리한 HDD를 보면 한면에 2개씩 총 4개의 볼트가 있는데 여기서 별모양 드라이버가 필요하다. 





▲ 기존의 HDD 에서 4개의 볼트를 분리 후 장착할 SSD에 그대로 끼워준다.





 볼트 조립 완료.





 분리했던 케이블을 SSD에 연결해주고 





▲ 원래 HDD가 있던 자리에 넣어준 후 HDD 고정쇠를 다시 결합하면 하드 교체는 완료!!






 분리한 HDD는 옵티베이에 장착. 네모 표시된 부분이 잘 결합되도록 주의해야한다!!





 결합 완료!





 양쪽 옆면을 보면 저렇게 홈이 있고 그안에 고정 나사가 있다. 나사를 돌려 HDD와 옵티베이를 고정~~





▲ 이제 ODD 분리를 위해 본체와 연결된 케이블들을 분리하자!!  저 쬐깐한 케이블 두개 분리.





 리본 케이블 3개 분리 (Airport/Bluetooth 케이블이라 ifixit.com에 설명되어있다.)





 표시된 부분의 나사를 분리 - #00 십자 드라이버





▲ 서브 우퍼 분리





▲ Airport/bluetooth 모듈 분리





▲ ODD 나사 3개 분리





▲ 드디어 분리 완료!!!





▲ ODD 연결 케이블 분리





▲ 분리완료~





▲ 장착할 옵티베이에 ODD 연결 케이블을 결합





▲ 기존 ODD 옆면에 달려있는 지지대도 분리해서





▲ 장착할 옵티베이에 달아준다.





▲ 분리한 ODD는 ODD케이스에 넣어주면 되는데 저렇게 연결부를 잘 확인해서 꼽으면





▲ 요렇게 쑥 들어간다.





▲ 밑판을 덮어주면 외장 CD롬 완성~~!!  이제 USB로 연결해서 사용하면 된다.





▲ 조립은 분해의 역순~~~~!!!





조립이 완료된 후 command +shift + R 버튼을 누른 상태에서 전원을 키면

인터넷 복구모드로 쓩~~~

이제 OS를 새로 설치하고 두근두근한 마음으로 재부팅을 해보면


기존 하드 대비 재부팅 시간이 대략 20초 정도 줄어들었고 (ssd 교체 후 재부팅 약 23초)

xcode나 unity 사용시에도 버벅거림이 현저하게 줄어들었다!!!





아...   진작 바꿀껄 ㅠㅠ




















'일상 > Mac Life' 카테고리의 다른 글

맥북에서 마우스 보조 버튼 사용하기  (0) 2015.12.25
맥에서 화면 캡쳐하기  (0) 2015.12.14
Snow Leopard 클린 설치  (0) 2011.05.09

맥에서 화면 캡쳐하기


업무용으론 iMac, 집에선 데스크탑(Windows), 맥북을 사용하다보니 각 OS의 기본 기능별로 

아!!  이건 정말 편하구나!!  라고 느끼는 부분이 있다.

Mac에서의 화면 캡쳐 기능도 정말 편리하다고 느낀 기능들 중 하나!!


맥에서 화면 캡쳐하는 법을 간단하게 소개하자면..


▶ 전체 화면 캡쳐 (command + shift + 3)

command키, shift키, 숫자 3번키를 동시에 누르면 바로 현재 보여지는 화면 전체를 캡쳐한다.

(※ 듀얼 모니터 사용 시 양쪽 모니터의 화면 모두 각각의 파일로 저장된다. - 저장 파일 형식은 PNG)





▶ 부분 화면 캡쳐 (command + shift + 4)

원하는 영역 만큼만 선택해서 캡쳐 할 수 있다.

command + shift + 4키를 누르면 +모양으로 커서키가 바뀌는데 그 상태에서 캡쳐하고 싶은 영역을 마우스로 드래그하여 캡쳐한다.





▷▷캡쳐된 화면 




▷ 윈도우 캡쳐 (command + shift + 4 > space > 캡쳐 할 윈도우 선택)

화면에 보여지고 있는 특정 윈도우(메뉴, 팝업 창 등등)를 선택해서 캡쳐 할 수 있다.

command + shift + 4키를 누른 후 커서가 +로 바뀌면 다시 스페이스바를 누른다. 그러면 커서가 카메라 모양으로 바뀌고 원하는 윈도우를 선택하면 캡쳐 완료!!





▷▷캡쳐된 화면 










xcode 라인 삭제


지금이 때가 어느때인데 말야

라인 삭제가 안되는 에디터라니!!!  이게 말이됨???!!


안되면 되게하자..

(참고로 난 이클립스 + 모노디벨롭 + 기타등등의 모든 에디터에서 라인 삭제는 command + d로 사용하고 있음)


1) xcode 종료 후 Finder > 이동 > 폴더로 이동 선택





2) 아래 링크 복 붙 후 이동 버튼 ㄱㄱ!!

/Applications/Xcode.app/Contents/Frameworks/IDEKit.framework/Resources/IDETextKeyBindingSet.plist



3) 발견한 파일을 다른 곳으로 복제

(해당 파일은 바로 열어서 수정이 안되기 때문에 복제 후 수정 해야함)



4) 텍스트 편집기로 열어서 <key>Deletions</key> 를 찾는다.




5) 제일 마지막 부분에 아래 항목 추가

<key>Delete Line</key>

<string>moveToEndOfLine:, deleteToBeginningOfLine:, deleteToEndOfParagraph:</string>




6) 저장 후 저장된 파일을 원래 있던 위치 

/Applications/Xcode.app/Contents/Frameworks/IDEKit.framework/Resources/IDETextKeyBindingSet.plist 에 붙여넣기!!

(주의!! [대치] 로 덮의 씌워야함)






7) xcode 실행시킨 후 XCODE > Preferences... > Key Bindings 

Filter 입력창에서 delete line으로 추가한 항목을 검색 후 원하는 키로 설정해주면 끝!!





주의!)

입력한 키가 기존에 사용중일 경우가 있으므로 꼭 Conflicts에 들어가서 중복되는 키가 없는지 확인 후 사용해야함!!










extention


확장!??


음...    이럴때 써먹으면 좋을 듯 하다.


일단,

"안녕하세요" => "요세하녕안" 이렇게 역순으로 글자를 바꾸려면 


1
2
var testString:String = "안녕하세요"
String(testString.characters.reverse())

cs


이렇게 해주면 된다.

그런데 저렇게 사용해야할 부분이 많다면??

매번 저렇게 해줘도 되겠지만 

extention으로 String을 확장해서 사용하면 

아주 간단히 사용이 가능하다.


1
2
3
4
5
6
7
8
9
extension String
{
    func backwards() -> String
    {
        return String(self.characters.reverse())
    }
}
 
"안녕하세요".backwards()
cs

이 얼마나 아름다운 기능이냐....  ㅠㅠ  
swift 너란놈은..


'개발 > Swift' 카테고리의 다른 글

구문 레이블  (0) 2015.12.22
#available  (0) 2015.12.22
willSet didSet  (0) 2015.12.11

willSet didSet


아직 공부중이라 어떻게 사용하는게 Best일진 모르겠지만 암튼 사용 용도에 따라 엄청 쓰임새가 많은 놈 임에는 틀림이 없다.


간단하게 정의하자면 저놈들은 한마디로 


변수를 감시하는 감시자!!


그럼 어떻게 동작하는걸까?


1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
class ObserverTest
{
    var testWill = 0
        {
        willSet
        {
            print("\(testWill) <= 바뀌기 전이야!!")
        }
        
        didSet
        {
            print("\(testWill) <= 값이 바꼈어!!")
        }
    }
    
    var testDid:Int = 0
        {
        didSet
        {
            if testDid > 5
            {
                testDid = 0
            }
            print(testDid)
        }
    }
}
var observer = ObserverTest()
observer.testWill = 10
cs


observer.testWill = 10 이 실행되는 순간 

0 <= 바뀌기 전이야!!

10 <= 값이 바꼈어!!


이렇게 찍힌다.

특정 변수를 모니터링 하고 있다가 값이 바뀌게 되면 

바뀌기 바로 직전에 willSet

바뀐 직후 didSet이 실행되는거다.


특정 변수의 값이 변하는 순간을 체크하고 싶을때 print를 걸어둔다던지

변수의 값이 제한 범위를 넘겼을 경우 다시 초기화 하고 싶다던지..

이런 경우 사용한다면 완전 편리하지 싶다!!!

'개발 > Swift' 카테고리의 다른 글

구문 레이블  (0) 2015.12.22
#available  (0) 2015.12.22
extention  (0) 2015.12.12

1. 3D Max의 System Unit을 미터(m)단위로 맞추고 Display Unit은 사용자 편의에 맞춰 설정


2. 모델링 export 시 Scale Factor를 1로 설정.


3. Unity 임포트 시 Inspector의 Scale Factor를 0.01 => 1로 변경 

(보통 max의 System Unit이 cm 단위로 되있어서 유니티 transform의 unit(m)와 맞춰주기 위해 디폴트로 0.01로 설정되있는듯)

+ Recent posts