2013 이전/node.js

[node.js] mac에서 node.js 설치 하기

hagulu 하구루2017. 2. 25. 16:29

최근 많은 관심을 받고 있는 node.js 에 관해서 하나씩 포스팅 해보려고 한다. 현재 내가 구동하고 있는 서버가 mac이므로 mac 위주로 진행될 것이다.



일단 node.js를 정말 간단히 소개하면, javascript 엔진위에 돌아가는 프레임워크로 기존의 웹 클라이언트에서 이용되는 것이 아니라,  서버 사이드에서 python, perl, rudy 와 비슷한 방식으로 이용할 수 있다고 보면 될 것이다.

자세한 사항은 아래 위키 페이지와 다른 정보를 더 얻어 보기 바란다.



설치 방법은 매우 간단하다.
아래 공식 사이트를 가서 각 플랫폼에 맞는 파일을 받아서 설치하면된다.


mac pkg 로 배포하기 때문에 매우 설치가 간단하다.





node.js 를 설치하면 위에 보는것 같이 npm 도 같이 설치되고, 기본 설치 경로가 위와 같다.
npm 이란 node packaged modules 의 약자로 node.js에 쓰이는 각종 module들을 설치하고 update 할수 있는
 tool 이다.

npm 사용법은 앞으로 포스팅될 여러 모듈들 예제에서 사용법을 설명하겠다.
npm의 공식 사이트는 https://npmjs.org/ 이다.
그리고 $PATH 설정도 추가 되어 node 라는 명령으로 어디서든 사용이 가능하다.

여기 까지 완료되면 아주 간단하게 node.js 의 기본 설정이 완료 되었다.
사용법은 기존 python이나 perl등의 언어를 사용해 봤다면 익숙할 것이다.  
아래와 같이 node 명령어로 인터프리터를 바로 사용할 수 있다 (나가려면 ^c 를 두번 해주면 된다)



그리고 .js 파일을 작성하여 실행할 수도 있다.
아래는  wiki에 나와 있는 간단한 웹서버 구현 예제이다.
//nodeHttp.js

var http = require('http');
 
http.createServer(function (request, response) {
    response.writeHead(200, {'Content-Type': 'text/plain'});
    response.end('Hello World\n');
}).listen(8000);
 
console.log('Server running at https://localhost:8000/');
위와 같이 작성하고 아래처럼 실행하면 웹서버가 수행되고




다음과 같은 결과를 얻을 수 있다.
보는 것처럼 기본적인 설치와 사용법은 매우 간단하고 직관적이다.
문법이 javascript라는 점도 매우 매력 적이다.


댓글

댓글쓰기 폼

2013 이전/iOS개발

[iOS 개발] 유용한 각종 UI controller open source 정리 사이트

hagulu 하구루2017. 2. 25. 16:26

iOS에서 쓰이는 기본적인 UI 컨트롤러 외에 좀더 편리한 Custom controller 를 구현하고자 한다면 다음 사이트를 먼저 찾아보고 해보기 바란다.



해당 사이트는 custom으로 만들어 놓은 각종 컨트롤들이 open source로 공개되어 정리되어 있다.
iOS 뿐아니라 Max OSX까지도 올려져 있다. 꽤나 많은 자료가 있고, 최근 유행하는 Custom controller들이 많이 올라와 있어서 아주 유용할것이다. 그리고 라이센스 별로 나누어져 있어서 이부분에서도 사용이 편리할 것이다.


댓글

댓글쓰기 폼

2013 이전/iOS개발

[iOS 개발] 지역에 맞게 날짜 표기 하기

hagulu 하구루2017. 2. 25. 16:26

글로벌하게 앱을 배포하려 하다 보면 날짜 형식을 표시하는데 문제가 생긴다.


일반적으로 우리나라의 표기 방식은

"2012년 10월 5일 금요일" 이런식으로 표시 된다.

하지만 미국의 경우는

"Friday October 5, 2012" 로 표기 순서와 방식이 다르다

그외에 또 다른 나라는 그 나라만의 표기 방식이 있다.

하지만 이를 지원하기 위해 모든 지역의 표기 방식을 찾아서 따로 처리 할 수는 없는 노릇이다.


다행이도 이를 쉽게 적용할 수 있는 method가 존재한다.

위와 같이 날짜를 표기 할때 NSDateFomatter를 사용하게 될 것이다.

기본적인 사용법은 따로 언급하지 않겠다.

한국의 표기 법대로 위의 경우라면

"yyyy MMMM d EEEE" 정도가 될 것이다.
이것을 현재 디바이스에 설정된 지역의 표기 방식으로 한방에 변환 시켜주는 함수가 있다.

간단한 예제를 보여 주겠다.
   NSString *dateFormatString = @"yyyy MMMM d EEEE";
    dateFormatString = [NSDateFormatter dateFormatFromTemplate:dateFormatString options:0 locale:[NSLocale currentLocale]];
    
    NSDateFormatter *dateFormat = [[NSDateFormatter alloc] init];
    [dateFormat setDateFormat:dateFormatString];
    
    NSLog(@"%@", [dateFormat stringFromDate:[NSDate date]]);
위 예제를 수행하게 되면 위에 언급했던 방식으로

한국은 "2012년 10월 5일 금요일" 미국은 "Friday October 5, 2012"로 표시 된다.

위에서 보는것처럼 우리나라의 표시 방식으로 포멧을 스트링으로 만들고 이것을 아래 메소드를 통해서

만든 포멧 스트링과 현재 로케일 정보를 넣어 주면 해당 지역에 맞는 포멧 스트링을 리턴해 준다

dateFormatFromTemplate:dateFormatString:options:locale:

미국의 경우 "EEEE, MMMM d, yyyy"로 변환이 되고한국의 경우 "yyyy년 MMMM d일 EEEE"으로 변환이 된다.

미국의 경우 순서가 바뀌었고,

한국의 경우 "년" "일" 이라는 포멧을 넣지 않았지만 우리나라에 맞춰서 들어가는것을 알 수 있다.
("월"은 EEEE포멧일경우 자동으로 들어 간다)

이것을 이용하면 글로벌하게 배포될 앱의 날짜 포멧의 문제는 한방에 해결되게 된다.

참고로 위 메소드에 현재 로케일은 아래 그림에 표시된 부분의 설정에 따르게 된다. 


 .     


댓글

댓글쓰기 폼

2013 이전/기타

손쉽게 개발서버 구축하기

hagulu 하구루2017. 2. 25. 16:24

예전에 우분투 환경에서 웹서버를 구축하고 이용을 하였었다.


그때 당시 필요에 의해서 ruby on rails 와 redmine을 셋팅하려고 하였는데.. 몇일을 삽질하다가 포기한적이 있다.

리눅스 셋팅에 아직 서투른가보다 하고 고배를 마셨다가,

최근 다시 필요로 해서 Mac환경에서 Redmine을 설치하려고 하였다.

Mac은 더 어려우면 어쩌지하고 찾아 보고 있다가 엄청난 것을 발견하였다.

바로 Bitnami 라는 프로그램이었다.


위 링크를 보면 알겠지만 redmine을 비롯해서 서버 개발자들이 좋아하는 툴들이 모아져 있다.

해당 툴들을 이용하기위한 모든 설치와 셋팅을을 간단한 설치 하나로 해결해 준다.  

더욱 엄청난 것은 윈도우, 리눅스, 맥OS 등의 os에 설치 파일을 제공할 뿐 아니라 vmware을 위한 이미지와 cloud Amazone machine 에서 사용할 수 있는 Amazon AMI 또한 제공해준다.

게다가 일부 메뉴는 설명에 한국어까지 지원되니.. 감격일 따름이다.

본인의 경우 redmine에 mysql, php, svn 등 패키지로 설치가 되어, redmine만 사용하려다가 svn 까지 적용해서 사용하게 되었다.

그외에도 많은 서비스와 툴들이 숨어 있으니 한번 훑어 보는것도 좋을것 같다.



댓글

댓글쓰기 폼

2013 이전/기타

내 도메인을 활용한 무료 ddns 설정 dnsEver

hagulu 하구루2017. 2. 25. 16:23

유동 ip를 사용하는 집에서 서버를 이용하려면 언제 바뀔지 모르는 ip 때문에 힘든점이 많다.


이떄 사용하는 것이 ddns 라는 방법이다.

ddns에 대해서는

http://terms.co.kr/DDNS.htm 를 참조해 보기 바란다.

일반적으로 공유기에서 제공해주는 기능을 이용하는 것이 간편하다.

ipTime의 경우 아래의 링크를 확인해 보기 바란다.


하지만 자신의 도메인을 이용할 수 없어서 그닥 땡기지가 않는다.

일반적으로 호스팅을 사용하는 사용자는 dns를 이용해서 ddns를 활용할 수 있는 방법이 없기때문에 한계가 있다.

그러던 중 알게된 무료! 서비스를 하나 소개하려고 한다.

dnsEver 라는 곳인데, 간단히 이야기 하면 간단한 dns를 제공하고 웹으로 손쉽게 셋팅을 할 수 있게 해주는 서비스다.

주소는 http://dnsever.com 이다

무엇보다 좋은것은 ddns를 제공하고, 해당 ip를 http 리퀘스르를 통해서 쉽게 변경 할 수 있다.

즉, ddns를 자동화 하기가 쉽다는 것이다.

심지어는 윈도우에서는 자동화 프로그램까지 배포 하고 있다.

기본적인 사용 방법은 아래 링크에 너무나도 잘 설명되어 있다.



나같은 경우 지금 보고 있는 블로그는 cafe24의 호스팅을 hagulu.com으로 유지하고

ddns로 mini.hagulu.com을 추가하여 이용하도록 설정하였다.


이를 위해서는 먼저 도메인의 네임 서버를 dnsEver에서 제공해주는것으로 교체를 하고,





메뉴 중에서 호스트 ip 관리를 통해서 메인 ip를 등록하고(본인의 경우 cafe24 내 ip),

다이나믹 dns 관리를 통해 위에 링크에서 설명하는데로 설정해주면 된다.

기존에 메일을 다른쪽으로 돌려서 쓰고 있더라도 메일서버(MX)도 가능해서 걱정할 필요가 없다.

이외에도 위에 보이듯이 여러 작업을 할 수 있으며

 현재, 웹 포워딩 외에는 모두 무료로 사용 할수 있다.


네임서버를 변경하면 몇일은 안정적이게 도메인이 작동하지 못하니 이점은 고려하고 작업을 진행해야 할것이다.


댓글

댓글쓰기 폼

2013 이전/일단까고보자

[일단까고보자] 겔럭시 카메라

hagulu 하구루2017. 2. 25. 16:22

지난 8월 삼성은 겔럭시 노트2, 겔럭시 노트 10.1 등 새로운 라인업을 소개 했다.


그리고 그와 함께 당당하게 소개된 겔럭시 카메라!





겔럭시s3의 카메라와 검색이 겹쳐서 찾기도 번거로운 이름이다. 출시 전에 이런걸 개발하고 있다는 소린 들었는데 어느새 만들어서 발표까지 해버렸다.

일단 까기 전에 일단 스펙을 정리 해보자
1600만 화소 CMOS이미지 센서,  광각 23mm, 광학 21배 줄 렌즈, 4.3 인치 디스 플레이
똑딱이 치고는 잘빠진 스펙임이 분명하다. 일단 자동 카메라를 사용하려는 사용자들에게는 인기가 있을만한 스펙이다. 몇년전의 일이라면 말이다.

그럼 본격적으로 까보겟다


1. 어정쩡한 포지션

최근에는 스마트폰이 급격히 보급이 되면서 그에 따라 똑딱이의 수요는 급격히 줄어 들었다.




 예전의 똑딱이 사용자들은 간단히 자신의 생활을 기록하거나, 여행등 추억을 꽤 쓸만한 화질로 간직하려고 하는 수요 였다. 하지만  최근 나오는 스마트폰의 카메라들은 일반 사용자들은 크게 차이점을 못 느낄정도로 좋은 화질을 자랑한다. 그렇기 때문에 휴대성이 휠씬 뛰어나고 공유 면에서도 편한 휴대폰 카메라로 똑딱이의 수요가 넘어가고 있다. 또한 좋은 사진을 바라는 준 고급 사용자들은 이미 똑딱이는 관심 밖이 었다. 꽤 낮아진 가격으로 접하기 쉬워진 DSLR을 많이 사용하게 되었다. 그리고 최근 무게와 크기가 부담인 고급 사용자를 위하여 콤펙트한 미러리스 DLSR이 각광을 받고 있다. 점점 똑딱이의 경쟁력은 두말 할 필요도 없이 떨어지고 있다. 내 예상으로는 스마트폰의 카메라가 점점더 발전 함으로써 위에 보이는 사진의 판매 추의 예측량보다 훨씬 더 빨리 떨어질 것으로 예상된다.  벌써 여기서부터 똑딱이로 나와 버린 겔럭시 카메라는 경쟁력이 없어 진다.
똑딱이 사용자들이 떠난 이유는 휴대성 때문인데, 원할한 공유가 이를 극복할 수 있을 것이라고 생각했던 것일까.
카메라 용어로 핀이 나가버린 것이다.

2. 요금제? 돈문제!

 겔럭시 카메라의 두번째 무리수는 3G/4G 데이터 사용 가능이다.
평소에는 크게 꺼내 쓰지도 않는 카메라를 위해서 데이터 요금제를 가입해서 쓸사용자가 얼마나 있을까? 삼성에서 내 놓을테니 특화 요금제가 생기긴 하겠지만, 언제 쓸지도 모르는 카메라를 위한 데이터 요금이라니..... 뭐.. 요금제 빌미로 공짜로 뿌리지 않을까 싶긴하다. 일부는, 데이터 요금제 가입하지 않고 사용하면 되지 않겠나? 싶겠지만.. 3G/4G사용 때문에 들어간 칩을 핑계로 가격이 일반 똑딱이라고 할 수 없는 가격이 나올 것이 뻔하다. 아이패드 처럼 와이파이 전용 모델이 나오면 모르겠지만 그런 움직임이 보이지 않는것 같다. 차라리 겔럭시 카메라가 나오기 전에 삼성에서 선보인 미러리스 와이파이 모델  NX 시리즈가 차라리 더 나을지도 모르겠다.
와이파이만 지원이 되고 요즘 각광 받는 미러리스 카메라니 여기가 좀더 포지셔닝이 깔끔해 보인다.





위에 보이는 세 가지 모델로 와이파이 카메라가 나왔었다.
이 카메라 시리즈가 나왔을때 혹시... 안드로이드가 탑제된 카메라가 나오지 않을까 했는데.. 실제로 나와 버린것이다.

정말 이 겔럭시 카메라를 경쟁 모델로 키워 나갈껀지는 의문이지만, 실험적인 하나의 케이스로 남고 끝나길 바란다. 알단까고보자 포스팅의 첫번째 타겟으로 잡은것 이유도 너무나도 명확히 이건 아니라고 생각이 들어서 가볍게 글을 쓸수 있을 것 같아 서이다..

정말 이건 아니다...



댓글

댓글쓰기 폼

2013 이전/iOS개발

[iOS 개발] iCloud keyValue Data Storage 사용

hagulu 하구루2017. 2. 25. 16:20

유니버셜 앱을 개발하여 배포할때 각 앱의 설정을 연동할때 유용하게 사용할 수 있는

 
iCloud keyValue Data Storage를 소개 해보려고 한다.

앱 내에서 iCloud 연동을 위한 설정은 아래 포스팅을 통해 진행하면 된다.


설정이 다되면 이를 이용하는 것은 매우 간단하다.

NSUserDefault를 이용해 본 사용자라면 보자 마자 이해 할 수 있을것이다.

NSUbiquitousKeyValueStore 라는 클래스를 통해서 쉽게 사용 할수 있다.


 NSUbiquitousKeyValueStore* store = [NSUbiquitousKeyValueStore defaultStore];
        
[store setBool:YES forKey:@"kUsrDefAskDeleting"];

 [store synchronize];
보는 것처럼 간단하게 defaultStore 메소드를 통해서 keyValue를 셋할수 있는 객체를 얻어 올수 있고,
 
해당 객체에 set 메소드를 통해서 BOOL 변수 뿐 아니라
- (void)setString:(NSString *)aString forKey:(NSString *)aKey;
- (void)setData:(NSData *)aData forKey:(NSString *)aKey;
- (void)setArray:(NSArray *)anArray forKey:(NSString *)aKey;
- (void)setDictionary:(NSDictionary *)aDictionary forKey:(NSString *)aKey;
- (void)setLongLong:(long long)value forKey:(NSString *)aKey;
- (void)setDouble:(double)value forKey:(NSString *)aKey;
- (void)setBool:(BOOL)value forKey:(NSString *)aKey;
위 메소드를 통해서 여러 형태의 객체를 저장할 수 있다.
 
그리고 모든 저장 절차가 끝나면

synchronize 메소드를 호출해 주면 된다.

synchronize를 호출했다고 해서, 해당 하는 내용이 iCloud로 바로 전송이 되어지는 것은 아니다.

해당 메소드를 호출하면 해당하는 내용이 즉시 파일에 저장이 된다.

이후 iCloud로 전송이 되는것은 시스템이 알아서 해준다.

즉, iCloud로 싱크 시키는것을 명시적으로 해줄 수 있는 방법은 없다.

그렇다고, 그 iCloud로 싱크되는 시점이 늦지는 않으니 걱정하지 않아도 될것이다.

네트워크가 안정적인 환경에서 테스트 해보았을때 30초 안에는 적용이 되어 다른 디바이스에 전달되는것을 확인 하였다.

이제 변경된 사항을 iCloud로 부터 받아 보는 방법을 보겠다.

이도 매우 간단하다.
 NSUbiquitousKeyValueStore *keyStore = [NSUbiquitousKeyValueStore defaultStore];
        
[[NSNotificationCenter defaultCenter] addObserver:self
                                                 selector: @selector(ubiquitousKeyValueStoreDidChange:)
                                                     name: NSUbiquitousKeyValueStoreDidChangeExternallyNotification
                                                   object:keyStore];
    
[keyStore synchronize];

위 와 같은 방법으로 notification을 등록해 준후에 해당 메소드를 구현해주기만 하면 된다.

-(void) ubiquitousKeyValueStoreDidChange: (NSNotification *)notification
{
    // Get the list of keys that changed.
    NSDictionary* userInfo = [notification userInfo];
    NSNumber* reasonForChange = [userInfo objectForKey:NSUbiquitousKeyValueStoreChangeReasonKey];
    NSInteger reason = -1;
    
    // If a reason could not be determined, do not update anything.
    if (!reasonForChange)
        return;
    
    // Update only for changes from the server.
    reason = [reasonForChange integerValue];
    if ((reason == NSUbiquitousKeyValueStoreServerChange) ||
        (reason == NSUbiquitousKeyValueStoreInitialSyncChange)) {
        // If something is changing externally, get the changes
        // and update the corresponding keys locally.
        NSArray* changedKeys = [userInfo objectForKey:NSUbiquitousKeyValueStoreChangedKeysKey];
        NSUbiquitousKeyValueStore* store = [NSUbiquitousKeyValueStore defaultStore];
        NSUserDefaults* userDefaults = [NSUserDefaults standardUserDefaults];
        
        // This loop assumes you are using the same key names in both
        // the user defaults database and the iCloud key-value store
        for (NSString* key in changedKeys) {
            id value = [store objectForKey:key];
            [userDefaults setObject:value forKey:key];
        }
    }
}

위 처럼 구현을 하였는데, 이는 apple developer page에서 그대로 가져다 쓴것이다.


NSUserDefault를 통해서 셋팅을 관리 한다면 그대로 가져다 써도 무방할 것이다.

 해당 내용은 그렇게 어렵지 않으므로 추가 적인 설명은 생략 하겠다. 


 사용이 간단하니 한번씩 앱에 적용해 보는 것도 나쁘지 않을 것으로 보인다.


댓글

댓글쓰기 폼

2013 이전/iOS개발

[iOS 개발] 간단한 animation 처리

hagulu 하구루2017. 2. 25. 16:20

iOS를 통한 개발에 animation은 꽤나 중요한 부분이다.

 
iOS 특성상 부드러운 animation이 앱을 좀더 고급스럽게 만들어 주는데
iOS를 이를 위해 아주 간단하게 animation을 쉽게 구현할수 있도록 해 놓았다.
animation 전과 후의 View의 상태만 정해주면 그이외의 작업들은 모두 알아서 해준다.
예제 코드를 보면서 설명을 해 보겠다.
      CGRect rect = targetView.frame;
rect.origin.x = 300;
targetView.frame = rect;
        
[UIView beginAnimations:nil context:nil]; 
[UIView setAnimationDelegate:self];
[UIView setAnimationDuration:0.3];
[UIView setAnimationRepeatCount:1];

rect = targetView.frame;
rect.origin.x = 0;
targetView.frame = rect;
        
[UIView commitAnimations];

위 의 예제대로 수행을 하면 해당하는 targerView는 x좌표 300의 위치에서 x좌표 0의 위치로 자연스럽게 animation이 변화 하게 된다.

 CGRect에 대한 설명은 따로 하지 않겠다.
 animation을 시켜주는 부분이 중요하다.
 [UIView beginAnimations:nil context:nil]; 

해당 부분은에서 주목해야할 부분은 첫번째 파라 미터이다.

나중에 delegate를 통해서 animation이 시작하거나 끝나는 때에 여러 작업을 할때
각기 다른 animation들을 구분하는데 이용된다. 일종의 animation key이다.
       [UIView setAnimationDuration:0.3];
        [UIView setAnimationRepeatCount:1];

위의 첫번째 메소드는 animation이 진행되는 시작이다 이를 길게 하면 animation 이 느려지고 짧게 하면 animation이 빨라 진다.

두번쨰 라인의 메소드는 보이는 그대로 반복 횟수이다. 해당 animation이 몇번 반복될지 설정해 주는 것이다.
     [UIView commitAnimations];

마지막으로 animation을 마무리 지어 주도록 하는 메소드이다.


이를 해주지 않으면 이후의 모든 frame등의 변화가 animation되는 경의로운 현상을 보게 될것이다.

 재미 삼아 한번 확인해 보는것을 추천한다.

이를 이용해 view의 alpha 값으로 fade 효과도 이용할수 있으며

CGRect를 잘활용하여 위치나 크기 등을 animation으로 쉽게 이용 가능하다.


댓글

댓글쓰기 폼

2013 이전/iOS개발

[iOS 개발] UITableView 기본 delegate, datasource

hagulu 하구루2017. 2. 25. 16:19

UITableView 를 사용하다 보면 항상 기본적인 delegate와 datasource의 소스들을 다른 소스에서 긁어서 쓰고 있다.

이참에 항상 쓰는 소스만 정리해서 올려 놓으려고 한다.
#pragma mark -
#pragma mark tableview delegate

// 섹션의 갯수
- (NSInteger)numberOfSectionsInTableView:(UITableView *)tableView {
    // Return the number of sections.
    
    return 1;
}

// 각 섹션당 로우의 갯수
- (NSInteger)tableView:(UITableView *)tableView numberOfRowsInSection:(NSInteger)section {
    // Return the number of rows in the section.
    
    return 5;
    
}

// 각 셀 그리기
- (UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath {
    
    static NSString *CellIdentifier = @"CalendarCell";
    
    UITableViewCell *cell = [tableView dequeueReusableCellWithIdentifier:CellIdentifier];
    if (cell == nil) {
        cell = [[UITableViewCell alloc] initWithStyle:UITableViewCellStyleDefault reuseIdentifier:CellIdentifier];
        
            
    }
    
    
    return cell;
}


// 셀이 선택 되었을때 수행할 내용 
- (void)tableView:(UITableView *)tableView didSelectRowAtIndexPath:(NSIndexPath *)indexPath {
    
     
}


// 각셀의 높이 
-(CGFloat) tableView : (UITableView *) tableView heightForRowAtIndexPath : (NSIndexPath *)indexPath{
    
    return 45;    
}


댓글

댓글쓰기 폼

2013 이전/iOS개발

[iOS 개발] iCloud app 연동 설정

hagulu 하구루2017. 2. 25. 16:19

앱내의 셋팅 기능에서 많이 사용할 수 있는 간단한 iCould 연동을 소개 해보겠다.


오늘 포스팅할내용은 iCloud 연동을 위한 기본적인 설정 방법에대해서 알아 본다.

iCould를 앱에서 이용할수 있는 것은 아래와 그림과 같이 Document Storage와 keyValue Data Strorage 두종류 이다.






Document Storage는 직접 파일을 저장하고 이를 로드할수 있도록 사용이 가능하고, 사용자의 iCloud용량이 다 찰때까지 이용할 수 있다. 앱에 따른 제한은 없다.

keyValue Data Strorage는 간단하게 NSUserDefault와 비슷한 방식으로 사용이 가능하고, 1M와 1024개의 키로 제한이 있다.

좀더 자세한 정보를 원한다면 애플 공식 페이지 가이드
를 참고 하기 바란다.

이제 iCloud를 쓰기위한 준비단계부터 시작하겠다 일단 먼저 App ID 설정에서 iCloud를 활성화 해주어야 한다.
developer 페이지에서 Provisioning Portal 메뉴의 App IDs 메뉴로 가서 해당하는 app ID 에 위에 보는것처럼 iCloud가 Enabled되도록 configure를 수정해 주어야 한다.




해당하는 내용을 수정을 하였으면 적용이 되어 있는 Provisioning 파일도 새로 받아서 이를 이용해서 개발해야 한다.

이제 프로젝트에 추가를 해주어야 한다.

먼저 해당 Targets 의 Summary의 Entitlements 항목을 아래와 같이 수정해 주어야 한다.






 위와 같이 해당 사항을 체크해주고

iCloud에서 이용될 id를 만들어 주어야 한다.

여기서 id가 중요한데, 유니버셜 앱의 경우 상관이 없지만,
따로 배포되는 lite 버젼의 앱이나, 아이폰과 아이패드 가 다른 앱으로 배포 되는경우
각각의 bundle ID와 같은 id를 사용하면 이를 이용해 싱크를 할수가 없다.

그렇기 때문에 여기에 사용되는 ID는 iCloud로 싱크될 모든 앱들이 같은 ID를 이용해야 한다.

그리고 위에서 iCloud를 설정한 App ID와도 호환이 되어야 한다.

어떤 개발이든 설정이 가장 많은 말썽을 부리니 차근차근 확인해가면서 설정해나가기를 바란다.




이를 셋팅하면 자동으로 entitlemments 파일이 생성되고 내용이 적용된다.

이로써 기본적인 설정은 모두 마쳤다.

여기 까지 하고 앱이 디바이스로 올라가면 제대로 진행되것이다.

그외에 에러가 발생한다면, App ID 와 프로파일등의 문제일 수 있으니 처음 부터 차근차근 확인해 보기 바란다.


다음에는 간단하게 keyValue Data Strorage 를 이용한 iCloud 에대해서 포스팅 해보겠다.



댓글

댓글쓰기 폼

hagulu.com

.....

VISITED

Today : 0

Total : 180,227

Lately Comment