블로그 이미지
Every unexpected event is a path to learning for you.

카테고리

분류 전체보기 (2738)
Unity3D (817)
Programming (475)
Server (33)
Unreal (4)
Gamebryo (56)
Tip & Tech (228)
협업 (58)
3DS Max (3)
Game (12)
Utility (136)
Etc (96)
Link (32)
Portfolio (19)
Subject (90)
iOS,OSX (53)
Android (14)
Linux (5)
잉여 프로젝트 (2)
게임이야기 (3)
Memories (20)
Interest (38)
Thinking (38)
한글 (30)
PaperCraft (5)
Animation (408)
Wallpaper (2)
재테크 (18)
Exercise (3)
나만의 맛집 (3)
냥이 (10)
육아 (16)
Total
Today
Yesterday
05-06 11:21
아이튠즈(iTunes) 폴더 저장위치 변경하기

아이패드를 이용하기 위해서는 아이튠즈(iTunes)를 PC에 설치해서 사용해야 합니다. 아이튠즈(iTunes)에 아이패드,아이폰을 연결하면 자동으로 백업을 진행 하지요.

 

전 아이패드를 많이 사용안하는데 백업된 자료가 약 8기가 가까이 됩니다. 아이패드를 많이 사용하신다면 용량은 더 크겠지요.

 

아이튠즈가 차지하는 용량이 문제가 안되는 사용자는 이 글이 도움이 안될것이지만 저처럼  VHDX를 이용해서 윈도우를 사용하는 사용자, 용량 작은 SSD사용하는 사용자라면 아이튠즈(iTunes)가 찾이 하는 용량이 부담이 될것입니다.

 

그리고 VHDX를 이용해 자주 윈도우를 밀어버리고 새로운 윈도우를 사용한다면 그것도 불편함을 야기합니다.

 

그래서 저는 아예 아이튠즈(iTunes)폴더를 다른 드라이브로 옮겨 사용하고 있는데 그 방법을 올려볼까 합니다.

 

아이튠즈(iTunes) 폴더 다른 드라이브로 옮겨 사용하기

 

방법은 아주 간답합니다. 한가지 이 글은 윈도우즈 8.1에서 작성되었으니 폴더경로가 다른 운영체제에서는 약간 다를수 있습니다.

 

그럼 시작해 보겠습니다.

 

탐색기에서 왼쪽 표시한 부분 '음악'폴더안에 iTunes폴더가 있습니다. 위 이미지처럼 아이튠즈(iTunes)폴더를 선택하고 마우스 오른쪽 버튼을 눌러 '잘라내기'를 선택 하세요.

 

그리고 아이튠즈(iTunes)폴더를 옮길 드라이브로 이동해서 (전 F드라이브로 지정) 마우스 오른쪽 버튼을 눌러 '붙혀넣기'를 하시면 폴더가 이동됩니다.

 

폴더가 이동되면 바탕화면이나 아이튠즈(iTunes)가 설치된 폴더로 가서 'iTunes'을 실행하는데 이때 키보드 Shift키를 누른 상태에서 아이튠즈를 실행시킵니다.

 

그럼 위 이미지 처럼 'iTunes 보관함'선택 창이 뜹니다. '보관함 선택...'을 클릭하세요.

 

파일 선택 창이 열리는데 iTunes폴더를 이동해 놓으신 드라이브로 가셔서 iTunes폴더안에 'iTunes Library.itl'파일을 선택 후 '열기'버튼을 클릭 합니다.

 

그럼 아이튠즈(iTunes) 폴더 저장위치가 변경되었습니다.

 

 

확실히 확인하기 위해 아이튠즈(iTunes)가 실행되면 '메뉴 -> 기본설정'을 선택해서 '고급'텝을 선택하시면 변경되 경로를 보실수 있습니다.

 

간단하게 아이튠즈(iTunes) 폴더 저장위치를 변경해서 C:드라이브 용량을 확보 하세요.



출처: http://pastimelife.com/566 [잡다한 세상]


반응형
Posted by blueasa
, |

보내는 메일에 자동으로 본인이 숨은참조가 되도록하면 메일 관리가 보다 편리해 집니다.

보낼 때 마다 숨은 참조에 추가하면 되지만 귀찮기 때문에 자동으로 추가되도록 설정해 봅시다.

 

아웃룩 실행 후 Alt + F11 을 누르면 아래와 같은 창이 뜹니다.

 

ThisOutlookSession을 더블클릭하면 입력 창이 나오고 아래 내용을 입력합니다.

 

Private Sub Application_ItemSend(ByVal Item As Object, Cancel As Boolean)
 Dim objMe As Recipient
 Set objMe = Item.Recipients.Add("email@email.com")
 objMe.Type = olBCC
 objMe.Resolve
 Set objMe = Nothing
 End Sub

 

email@email.com 부분에는 본인의 이메일을 입력합니다.

 

 

저장 완료 후

[파일] - [옵션] - [보안 센터] -[보안 센터 설정] - [매크로 설정] 으로 이동한 후

[모든 매크로 실행]을 체크합니다.

 

보안이 우려 되신다면 [모든 매크로에 대해 알림 표시]를 선택합니다.

매크로 실행시 알람이 뜨기 때문에 위의 매크로를 등록 할 경우 아웃룩 실행 시 마다 알람이 나타납니다.

그때 매크로 실행을 선택해 주시면 됩니다.

 

 

 

 

아웃룩을 다시 실행하시면 이제 메일을 보낸 경우 본인에게 자동으로 숨은 참조가 되는 것을 확인 하실 수 있습니다.

메일 작성 시 숨은참조 영역엔 아무 표시도 되있지 않지만 발송 시 매크로를 통해 본인의 메일이 숨은 참조로 추가되게 됩니다.

 

참고 : http://gmate.tistory.com/296



출처: http://noota.tistory.com/entry/outlook-2013-%EB%B3%B8%EC%9D%B8-%EC%9E%90%EB%8F%99-%EC%88%A8%EC%9D%80-%EC%B0%B8%EC%A1%B0 [누더기]

반응형
Posted by blueasa
, |

UDID, UUID, 유니크 한 고정 값 완결



먼저 각 명칭에 대해 알아보도록 한다.



UUID - Universally Unique Identifire ( 시간, 공간을 이용하여 뽑아낸 128bit (중복되지 않는) 값 )

GUID - Globaly Unique Identifire ( UUID 와 같은 MS 에서 사용하는 값 )

UDID - Unique Device Identifire ( 기기 별 고유 식별 값 )


Vendor Identifier - 공급 업체 식별자

Advertising Identifier - 광고 식별자





기기별 고유값을 얻어오기 위해 이전 ( IOS 4 이하 ) 에서는 UDID 값을 가져와 사용 할 수 있었다.

그러나 이후 해킹 등에 취약하다는 이유로 사용 금지 시키고 IOS 5 부터는 UUID 를 사용하라고 권고하였다.


CFUUIDRef udid = CFUUIDCreate(NULL);
NSString *udidString = (NSString *) CFUUIDCreateString(NULL, udid);

위는 UUID 얻는 방법이다.  ( IOS 5 에서 )

IOS 6 에서는 아래와 같이 간편하게 얻을 수 있다.


NSString *uuid = [[NSUUID UUID] UUIDString];

이는 시간, 공간 값을 이용하여 128bit 를 이용해 얻어내여 중복 가능성이 없다고 한다.


얻어진 결과의 예제는 는 다음과 같다.

BE5BA3D0-971C-4418-9ECF-E2D1ABCB66BE


이를 사용하여, 유니크한 값으로 사용할 수는 있다.

다만 호출시마다 유니크한 값을 준다.


따라서 이 값으로 기기를 식별하거나 할 수 없다.


이를 사용하기 위해 키체인을 사용하여 저장하는 방법도 있다.

해당 방법은 아래와 같다.


접기

[UUID 키체인 저장 방법]

KeyChain API들은 Security.framework에 정의 되어 있는데 C함수로 되어 있고 API를 쓰는 것이 쉽지 않아 애플에서 쉽게 사용할 수 있게 KeychainItemWrapper 예제 클래스를 제공하고 있다.

일단 KeychainItemWrapper를 다운 받고 프로젝트에 추가해야 한다. (download)


    KeychainItemWrapper.h

    KeychainItemWrapper.m


아래는 UUID를 생성해서 KeyChain에 저장하는 함수 이다.

//처음에 UUID KeyChain에서 불러오는데 nil이라면 UUID 생성해서 KeyChain 저장한다.

//저장 후에 다시 함수를 호출 하면 저장된 값을 리턴한다.

- (NSString*) getUUID

{

    // initialize keychaing item for saving UUID.

    KeychainItemWrapper *wrapper = [[KeychainItemWrapper alloc] initWithIdentifier:@"UUID" accessGroup:nil];

   

    NSString *uuid = [wrapper objectForKey:(__bridge id)(kSecAttrAccount)];


    if( uuid == nil || uuid.length == 0)

    {

        // if there is not UUID in keychain, make UUID and save it.

        CFUUIDRef uuidRef = CFUUIDCreate(NULL);

        CFStringRef uuidStringRef = CFUUIDCreateString(NULL, uuidRef);

        CFRelease(uuidRef);

        uuid = [NSString stringWithString:(__bridge NSString *) uuidStringRef];

        CFRelease(uuidStringRef);

        

        // save UUID in keychain

        [wrapper setObject:uuid forKey:(__bridge id)(kSecAttrAccount)];

    }

    

    return uuid;

}


KeyChin에 대하여 설명을 하면..

KeychainItemWrapper를 사용하여 키체인에 값을 등록하게 되는데..

- (id)initWithIdentifier: (NSString *)identifier accessGroup:(NSString *) accessGroup


//내부 앱에서만 사용할 경우 

KeychainItemWrapper *wrapper = [[KeychainItemWrapper alloc] initWithIdentifier:@"UUID" accessGroup:nil];


//Keychain Group끼리 공유할 경우

KeychainItemWrapper *wrapper = [[KeychainItemWrapper alloc] initWithIdentifier:@"UUID" accessGroup:@"???????.com.yourcompany.GenericKeychainSuite"];


KeychainItemWrapper 인스턴스를 생성할 때 저장할 값을 구별할 이름(initWithIdentifier)과 accessGroup을 지정해야 한다.


- accessGroup은 KeyChain Group을 지정하는 것인데 nil이면 내부 앱에서만 사용하는 것이고 nil이 아닌 값을 사용하면 같은 Keychain Group을 사용하는 앱에서 공유가 가능하다.


- Keychain Group을 확인하는 방법은 xcode6에서는 프로젝트 > TARGETS 프로젝트 > capabilities > Keychain Sharing 에서 확인하면 된다. (xcode5, 6)


- (id)objectForKey:(id)key


//키체인에 저장된 값을 가져온다.

NSString *uuid = [wrapper objectForKey:(__bridge id)(kSecAttrAccount)];


- (void)setObject:(id)inObject forKey:(id)key


// 키체인에 저장한다.

[wrapper setObject:uuid forKey:(__bridge id)(kSecAttrAccount)]; 


- KeychainItemWrapper를 사용하여 데이터를 저장할 때 사용할 수 있는 상수는 아래와 같다.

  (https://developer.apple.com/library/ios/documentation/Security/Reference/keychainservices/index.html)

   1) kSecAttrAccount : Account 정보

   2) kSecAttrLabel : 라벨 정보

   3) kSecAttrDescription : 설명

   4) kSecValueData : Data


- 예를들어 암호화된 비밀번호를 저장하기 위해서 kSecValueData를 Key로 하고 암호화된 비밀번호를 InObject로 하면 된다. 로그인 이름을 저장한다면 kSecAttrAccount를 Key로 하고 저장하면 된다.


[참고]

http://10apps.tistory.com/archive/20130403

http://dev-metal.blogspot.kr/2010/08/howto-use-keychain-in-iphone-sdk-to.html



다음으로 

identifireForVender 의 설명이다.


1. 설치된 앱에서 호출 시 매번 같은 값을 리턴한다.

2. 다만 앱 재 설치 시 값이 바뀐다.

3. 같은 벤더를 사용하는 경우 값이 유지 된다,

    다만같은 벤더를 사용하는 앱을 모두 지울 경우 마찬가지로 값이 바뀐다.


따라서 identifireForVender 값도 영원한 기기 식별자로 사용 할 수 없다.






유니티의 SystemInfo.deviceUniqueIdentifier



Android 


 - readPhoneState 퍼미션이 설정되어있을 경우

   IMEI 값 리턴

   ex) 51F30A87-BBFA-128F-E915-C92391D2F164


 - readPhoneState 퍼미션이 설정되어있지 않을 경우

   AndroidID 값 리턴

   ex) 8127362567812635



IOS


 - IOS6 버젼 이전

   MAC_ADRESS 값을 해싱 하여 리턴


 - IOS7 버젼 이후

   ASIdentifierManager advertisingIdentifier 값을 리턴

   어떤 이유에서 이 값을 리턴 할 수 없는 경우 

   UIDevice identifierForVendor 를 리턴


[출처] http://flystone.tistory.com/149

반응형
Posted by blueasa
, |


[링크] http://gold-kitten.tistory.com/29

반응형
Posted by blueasa
, |