웹뷰를 사용하여 각종 처리를 할 때, 특히 로그인과 관련된 처리를 할 때 특정 사이트에 대한 쿠키를 삭제하고 싶은 경우가 있다. 예를 들어 한 사이트에 여러 개의 계정을 사용할 경우 쿠키를 삭제하지 않고 다른 계정으로 바로 로그인한다면 이전 계정 정보와 겹쳐 꼬일 수 있다.


뭐 기타 등등의 이유로 쿠키를 삭제해야 할 경우가 있을텐데, 특정 사이트에 대한 쿠키를 삭제하는 방법은 매우 간단하다. 아래 코드와 같다.


    //쿠키 삭제
    NSHTTPCookieStorage *cookies = [NSHTTPCookieStorage sharedHTTPCookieStorage];
    NSArray *someCookies = 
    [cookies cookiesForURL:[NSURL URLWithString:@"http://website.com"]];
    
    for (NSHTTPCookie *cookie in someCookies){
        [cookies deleteCookie:cookie];
    }


우선 쿠키 객체를 생성하고, 특정 URL에 대한 쿠키를 Array에 집어넣은 후 deleteCookie 메서드를 사용하여 삭제하면 된다.


끝!


맨인블랙 시리즈를 나름대로 재미있게 보아서, 이번에 출시한 맨인블랙3도 나오자마자 보러 다녀왔다. 사실 맨인블랙2의 경우는 좀 실망한 감도 없잖아 있었지만, 윌스미스와 토미리존스의 연기와 각종 외계인들이 나오며 주는 웃음포인트만으로도 맨인블랙의 재미는 충분하다는 생각이다. 


아무튼 맨인블랙3를 보고나서 딱 떠오른 한 단어는, '명불허전'. 역시나 재미있엇다. 물론 나는 이런 영화를 볼 때 탄탄하고 멋진 스토리를 기대하지는 않기 때문에, 즉 그렇게 큰 기대를 하지 않기 때문에 재미있게 느낀 감도 없잖아 있긴 하지만, 그래도 SF영화들 중에서는 역시 좋은 영화에 속하는 것 같다. 



1. 윌스미스의 연기


맨인블랙이라는 영화의 절반 이상은 윌스미스가 먹고 들어가는 것 같다. 같은 스토리와 화면구성에, 주인공이 윌스미스가 아니라면 과연 지금의 맨인블랙이 있을까? 영화 속 제이요원의 특징은 항상 유머감각이 넘치고 말을 재미있게 한다는 점, 그 유머가 가볍게 던지기만 하는 유머가 아니라 자기 나름대로는 진지한 것 같으면서도 재미있다는 점, 실제 상황이라면 엄청 긴박한 상황인데도 영화를 보는 사람 입장에서는 웃으며 볼 수 있을만큼의 리액션들인 것 같다. 


윌스미스의 다른 영화도 마찬가지지만, 특히 맨인블랙을 볼 때마다 느끼는 것은, 이 사람은 정말 영화 속 주인공에 잘 녹아드는구나 하는 것이다. 연기하는 배우를 보는게 아니라, 실제 영화 속에서 사는 사람을 보는 듯한 느낌? 캐리비안의 해적에 나오는 조니 뎁을 볼 때도 비슷한 느낌을 받았는데 이건 참.. 뭐라고 말로 해야할 지 모르겠지만.. 아무튼 엄청난 소화력!



2. 젊은 케이요원


맨인블랙3에서는 케이요원의 젊은 시절을 연기하는 배우가 나온다. 오 근데 보면서 놀랐던 점은, 물론 영어는 잘 안 들리지만 대충 말투도 비슷하고 행동도 비슷하고 레알 케이요원이 젊었을 때 저랬겠다 싶을 정도로 딱 맞는 연기를 보였다. '오 케이요원 대역이네?' 라는 생각보다는 정말 케이요원이 젊었을 때를 보여주는 듯한 느낌. 윌스미스의 연기에 푹 빠져있다가 젊은 케이요원이 나오면서부터는 점점 이것이 영화인가 현실인가, 영화 속 사람들은 배우인가 진짜 다른 세계의 사람들인가 하는 착각을 할 정도로 강한 몰입을 일으켰다.



3. 웃음포인트


맨인블랙의 진미는 역시 깨알같은 웃음 포인트들! 윌스미스의 연기에서 묻어나오는 웃음 포인트들도 있지만, 외계인들이 나오는 영화이다보니 그 외계인들과 관련된 웃음포인트들도 참 많은 것 같다. 장면장면마다 굉장히 당연한 것 처럼 빠른 전개로 지나가는데도 곰곰히 생각해보면 엄청 웃겨서 뒤늦게 빵터지는 것들도 많다. 그리고 뭣보다 계속해서 가벼운 웃음만을 주는 것이 아니라, 코믹한 장면을 가지고 밀당을 하는 듯한 느낌. 분명 계속해서 웃으며 볼 수 있는데, 계속 깔깔대다가 지쳐버리는 것이 아니라 중간중간 빵빵 터지면서 볼 수 있다. 음 비유가 맞을진 모르겠지만 케이팝스타에서 박진영이 심사할 때 완급조절 능력을 강조하는 것이 보이는데, 영화에서 완급조절이 있다면 맨인블랙이 갑이라는 생각.




덧붙이자면, 이런 영화는 영화관에서 보는 것이 제맛인 듯. 큰 스크린과 빵빵한 사운드의 중요성 때문도 있지만, 극장에 있는 사람들과 함께 빵빵 터지며 보는 것이 영화의 재미를 느끼는데 있어서 상당히 큰 영향을 주는 것 같다.



웹뷰를 이용한 어플리케이션을 개발 중인데, HTTP 통신을 사용하다보니 3G가 느린 환경에서는 데이터를 받아오거나 해당 페이지로 접속을 하는 과정에서 로딩이 길어질 때가 있다. 처음에는 페이지 접속하고 로그인 하는 정도인데 뭐가 느릴까 싶었지만, 느린 환경이 의외로 많고(회사에서 Wi-Fi 끄면 장난 아님), 이때 Activity Indicator가 없으면 기다리는 동안 이게 에러인지 로딩중인지 헷갈릴 때가 많았다. 그래서 결국 구글링을 통해 Activity Indicator를 적용하였고, 적용법은 굉장히 쉬웠다.


1. ㅇㅇㅇ.h 에 정의


@interface ViewController : UIViewController
{
 UIActivityIndicatorView *activityIndicator;
}

 @property (nonatomicretainUIActivityIndicatorView *activityIndicator;


인터페이스 안에 UIActivityIndicatorView를 하나 정의해주고, 프로퍼티도 ㄱㄱ



2. ㅇㅇㅇ.m 에 구현


@synthesize activityIndicator;

   
-(void)webViewDidStartLoad:(UIWebView*)webView     

    

// ProgressBar Setting   

   activityIndicator = [[UIActivityIndicatorView allocinitWithFrame:CGRectMake(003232)];    
   [activityIndicator setCenter:self.view.center];
   [activityIndicator setActivityIndicatorViewStyle:UIActivityIndicatorViewStyleGray];
   [self.view addSubview : activityIndicator];    
   
   // ProgressBar Start
   activityIndicator.hiddenFALSE;
   [activityIndicator startAnimating];    

}    


- (void)webViewDidFinishLoad:(UIWebView *)webView
{
    [activityIndicator stopAnimating];     
    activityIndicator.hiddenTRUE;
}


위 경우, 웹뷰에 Activity indicator를 적용하는 것이기 때문에 webViewDidStartLoad라는 메서드 안에서 Activity Indicator를 활성화시키고, webViewDidFinishLoad 메서드 안에서 비활성화 시켰다. 활성화, 비활성화를 원하는 메서드 안에 각각 넣어두면 될 것이다.



처음부터 원리를 다 이해하고 코딩을 한 것이 아니라, 일단 기능 구현이 우선이었기 때문에 사실 위 코드가 정확히 어떤 원리에 의해서 어떻게 적용되고 있는건지는 어렴풋이 짐작만 하고 있는...;;


암튼 기능은 무리없이 구현되는데, 주의할 점은 Activity Indicator 활성화 코드를 포함하고 있는 메서드가 2번 호출이 된다면 Activity Indicator도 2번 만들어지기 때문에 나중에 비활성화 코드가 포함된 메서드가 1번 호출되어도,  Activity Indicator가 남아있을 수 있다. 이 점은 어차피 꼭 Activity Indicator가 아니라도 비효율적인 코드가 될 수 있는 거기 때문에 알아서 주의하면 될 듯.