오늘의 주제

1. Singleton 패턴 사용해 보기


마흔 여덟 번째 시간입니다.^^

지난 번에 이어서 싱글턴 패턴 사용 방법에 대해 알아보도록해요 ㅎ

일단... 뭐... ㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋ
지금 여러분들이 이 포스팅을 보고계신 시간이면 저는 논산 훈련소에 있겠네요~ㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋ
아이 좋아.............는 개뿔......
면회 환영합니다..............는 개뿔.........ㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋ

여튼 오늘부터는 한달동안 제가 덧글을 달아드릴 수 없게되었군요...ㅠ_ㅠ

몸 건강히 돌아오겠습니다.ㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋ

한 달 캠프 으쌰~

자 잡소리 때려치고~

스따뚜~~~~~~~~~~~~


# 싱글톤 객체 활용

이제 싱글톤 객체를 사용하기 위해, 헤더를 import해 옵니다.

그리고 원래 있던 메소드는 깔쌈히 지워주시고 싱글톤 객체 안에 구현해놓은 녀석들을 사용하기 위해 예쁘게 작성합니다 호호호


불러오기도 마찬가지로 예쁘게 바꿔줍니다~


자, 그리고 파일로 읽고 쓰는 것 대신 싱글톤 객체에만 세팅하고 가져오는 기능도 따로 만들어주기 위하여 이렇게 또 버튼을 만들고 메소드를 만들어 줍니다~


자 이렇게 간단히 메소드 구현을 마쳐주시구요~~~~~~~



SecondViewController로 넘어와 봅니다~ 여기도 위와 똑같이 작성해 주시면 됩니당 ㅎㅎ



그리고 생각해보니 화면전환 기능을 안 넣어줬군요.....

훈련소의 압박으로 정신머리가 좀 나갔습니다ㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋ

ViewController로 와서 화면전환을 위한 버튼을 만들어주고 연결 해 줍니다~ 



자, 그리고 이렇게 깔쌈하게 두줄로 완성~


그리고 다시 돌아올 방법도 만들어줘야겠죠?ㅋㅋㅋ
이렇게 연결해 줍니다. 


그리고 이렇게 한줄로 구현 끝~!


자, 실행 해 봅니다~
뭔가 되나용?ㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋ


어!? 그런데..... 아오....... 이놈의 키보드때문에 뭐가 안되는구만요...ㅠㅠㅠ


키보드놈을 없애봅시다~!

각각버튼을 누르고 나면 키보드를 사라지게 하는 마술을 심어줍니다 ㅎㅎㅎ 


그러고나서 이리저리 왔다갔다 하면서 어떻게 동작을 하는지 확인해 보세요~ 예상했던 것과 같은 동작들을 하는가 잘 살펴보세요 ㅎㅎㅎ



자... 이처럼 싱글턴 객체는 한 번 생성되면 메모리에 계속 상주하면서 데이터를 지니고 있게 됩니다.

어떤 곳에서도 그 한 객체를 불러내서 쓸 수 있는거죠~

재미있는녀석이죠?ㅎ 

 
잘 활용하면 득이되고, 잘못 활용하면 독이되는 녀석이기도 합니다.

뭐..... 제가 매번 이런말을 하는 것 같긴 하네요 ㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋ

자, 그럼 이만 뿅~!


by yagom

facebook : http://fb.yagom.net

twitter : http://twitter.yagom.net ( @yagomsoft )

p.s 제 포스팅을 RSS 피드로 받아보실 수 있습니다.

RSS Feed 받기   


↓↓↓저 열심히 썼는데 손가락 한방 꾹 눌러주고 가시는 건 어떨까요? 로그인이 필요 없습니다. ^~^ 고맙습니다~ ↓↓↓ 




Posted by yagom

댓글을 달아 주세요

  1. 궁금궁금 2012.08.31 17:18  댓글주소  수정/삭제  댓글쓰기

    함께해보기에 있는 48개의 글 목록을 한 번에 볼 수 있는 방법이 있나용...???

  2. 승준 2012.09.04 09:58  댓글주소  수정/삭제  댓글쓰기

    몸건강히 훈련 잘 받고 오세요!~

    그동안 포스트 반복 학습하며 다음 글을 기다리고 있을께요

  3. 컴맹 2012.09.16 06:18  댓글주소  수정/삭제  댓글쓰기

    아~ 지금쯤 고생이 많겠네요.ㅠㅠ
    오늘도 좋은강좌 잘보고 갑니다.~

  4. 시우아빠 2012.11.20 11:48  댓글주소  수정/삭제  댓글쓰기

    이제 이곳에 덧글을 남겨야 겠네요^^
    오늘도 좋은 강좌 잘 보고 갑니다.

  5. 낭만떡대 2012.11.22 09:38  댓글주소  수정/삭제  댓글쓰기

    병특이셨군요 ㅋㅋㅋ

    반갑습니다 동지 ㅋㅋ

    전 얼마전에 끝났는데 모두~ ㅎㅎ

    질문. 1.

    공통으로 접근하는 싱글톤 객체를 만들고 prefix 에 import 하고 사용하는 것에 대해
    보안상 이슈는 없는지 궁굼하네요 보통 그렇게들 쓰시나요? (로그인 정보나 기타 중요정보.)

    • Favicon of https://blog.yagom.net BlogIcon yagom 2012.11.22 10:24 신고  댓글주소  수정/삭제

      아... 부럽습니다 ㅠ_ㅠ 어디서 근무하셨나요 ㅋㅋ
      질문에 대한 답변으로는 각각의 테크닉이 많이 존재하기 때문에, 앱이 어떤 정책을 가지고 운영(?) 되느냐에 따른 문제인 것 같네요.
      로그인 정보 등 중요정보에 대한 저장방법은 검색을 좀 더 해보시면 좋을 것 같아요 :)
      정말 좋은 질문 고맙습니다 ㅎ

  6. ss 2012.11.26 00:13  댓글주소  수정/삭제  댓글쓰기

    안녕하세요, ios 프로그래밍 공부하고 있는 학생인데요 ^^
    싱글톤이 필요해서 열심히 따라했는데ㅠㅠ
    저는 스토리보드에서 이걸 구현하고 싶어서요 ㅠㅠ
    똑같이 따라하고 xib파일 대신 스토리보드에서 뷰를 연결해주는 방식만 다른데 안되네요 ㅠㅠ 어떻게 하면 좋을까요

    • Favicon of https://blog.yagom.net BlogIcon yagom 2012.11.26 10:57 신고  댓글주소  수정/삭제

      스토리보드에서도 같은 방식으로 연결해 주면 되지 않나요?^^;

    • yimcold@gmail.com 2013.10.10 11:40  댓글주소  수정/삭제

      지금 댓글을 달기에 많이 늦은감이 있지만.. 저는 이런 식으로 해결했어요~
      1. 스토리보드에서 두번째 뷰컨트롤러의 Storyboard ID를 secondViewCon으로 지정해주고,

      2. 코드를
      secondViewController: (id)sender{
      SecondviewController *secondViewCon = [self.storyboard instantiateViewControllerWithIdentifier:@"secondViewCon"];
      [self presentModalViewController:secondViewCon animated:YES];
      }
      이렇게 작성하니까 되네요~ 늦었지만 비슷한 문제가 있으신 분들 참고하시라고 올려요. 제가 초보라 수정할부분 있으면 지적해주시면 감사하겠습니다.

  7. 2012.11.29 12:19  댓글주소  수정/삭제  댓글쓰기

    비밀댓글입니다

    • Favicon of https://blog.yagom.net BlogIcon yagom 2012.11.21 20:41 신고  댓글주소  수정/삭제

      안녕하세요 앱만들자님!
      이렇게 글 남겨 주셔서 정말 영광입니다.
      정말 도와드리고 싶은 마음은 굴뚝같지만 제가 그 부분에 있어서는 큰 도움을 드리지 못할 것 같아요...ㅠㅠ 현재 저의 개인적인 사정으로도 좀 벅찬 상태라서요ㅜ 죄송합니다..
      정말 진심으로 죄송합니다...ㅜ
      꼭 더 좋은 분 찾으시면 좋겠네요...
      정말 죄송합니다ㅜ

  8. 리얼왕초보 2013.06.27 13:59  댓글주소  수정/삭제  댓글쓰기

    이번 강좌는 맥부기에 없어서 여기서 봤는데
    진작에 야곰님 블로그에서 공부할껄 그랬네요 ㅠㅠ
    스크린샷한것도 크게보이고 ㅠㅠㅠㅠ
    정말 너무 많은 것을 배운 시간이었습니다~
    아무리 감사를 드려도 부족하네용~~~

  9. 리얼왕초보 2013.06.27 14:15  댓글주소  수정/삭제  댓글쓰기

    야곰님~아래 팁으로 주신 키보드 없애는 방법을
    키보드 외 화면을 터치하면 키보드가 사라지게끔~
    메서드 하나 알려주시면 안될까용?
    부탁드립니다~~

    • Favicon of https://blog.yagom.net BlogIcon yagom 2013.06.28 10:35 신고  댓글주소  수정/삭제

      http://blog.yagom.net/507
      제스쳐 인식으로 뷰에 탭 제스쳐 인식을 넣어서 특정 동작을 하게 만드시면 될 것 같습니다 :)

  10. ㄴㄴ 2013.11.09 02:37  댓글주소  수정/삭제  댓글쓰기

    안녕하세요 강좌 잘 보고 있습니다.

    이번 강좌에서

    [singletonObj setCurrentString:inputTextField.text]

    이 부분에 대해서 자세한 설명좀 해주시면 안될까요?

    제가 서로 다른 뷰에서 간단한 숫자를 공유해서 입력하고 받아서 쓰는 코드를 구현중인데

    입력까진 되는것 같은데 다른 뷰에서 받으면 계속 0으로 나오네요;


오늘의 주제

1. Singleton Pattern 


마흔 일곱 번째 시간입니다.^^

지난 번에는 파일을 저장하고 로드하는 것을 해 보았습니다.
이번에는 파일에서 로드해 온 자료를 다른 객체들과 공유하여 사용하고 싶을때 사용해 볼만한 방법을 가지고 왔습니다~

물론 Objective-C에서만 쓰이는 방법이 아니지만, iOS 개발 할 때에도 유용하게 쓰일 수 있는 방법이라 이렇게 또 소개를 해 드립니다.
싱글톤 패턴이라고 흔히 이야기들을 하는데요, 무엇인지 한 번 알아보도록 합니다~


# 싱글톤 패턴이란?

한 프로그램에서 특정한 용도의 객체 하나를 생성해서 공용으로 사용하고 싶을 때 주로 사용하는 방법입니다.

주로 환경설정, 로그인 정보, 유저 정보 등을 한 번 객체에 생성해 두고 여러 객체에서 공유해서 데이터를 쓸 수 있는 방법이죠.

즉, 프로그램이 실행되고 끝날 때 까지 특정용도를 가지는 단 하나의 객체를 만들어 놓고 쓰게 되는 것입니다. 물론 임의로 해제해 주지 않는다면요 :)

말로만 이렇게 떠들어 대니 잘 감이 안오시죠?ㅎㅎㅎ

그런데 일단 static 이라는 녀석에 대해서 조금 알아보실 필요가 있습니다.

static이 어떤 녀석인지 정확히 알고 계신분은 바로 따라오셔도 좋습니다~

모르는 분들은 프로그래밍 언어 기본서에 보면 나와있을거구요, 포털 검색을 통해서도 많이 나올거예요^^~

자, 그럼 실습을 시작해 봅니다~
 

# 실습

지난 번에 만들었던 프로젝트를 그대로 사용합니다~

여러 객체간에 데이터를 공유하는 것을 실습해 볼 것이므로, 화면을 옮겨다녀 보는게 효과적일 것 같네요~

뷰 컨트롤러를 하나 더 만들어 줍니다 ㅎ


자, 그리고 이렇게 지난 번에 했던 것 처럼 새로운 뷰 컨트롤러에도 화면을 구성해 줍니다~



자, 이번엔 싱글톤 클래스를 생성하도록 할게요~




NSObject를 상속받는 SingletoneObject라고 이름을 지었어요. 사실 Singleton이 맞는 표현인데, 제가 자꾸 Singletone이라고 쓰네용 +_+


자, 이렇게 새로 생성된 클래스의 헤더에 와서요~

이런저런 것들을 작성합니다.

지난번에 파일에서 읽고 쓰기 했던 것들도 여기로 옮겨올 거구요, 공통적으로 쓰고 불러올 NSString 객체 포인터도 하나 만들어 줬구요~ 


자, 헤더에서 property로 던져줬으면 구현파일에서 synthesize로 받아주는거 잊지 않으셨죠?ㅎ

그리고 지난 번에 파일저장 메소드 구현했던 부분에서 복사해와서 붙여넣고 살짝 손봐줍니다 ㅎㅎㅎ


파일에서 불러오기도 마찬가지구요 :~)


자, 그리고 가장 핵심부분!!!

싱글턴 객체를 만들어주는 부분입니다.

static이라는 처음보는 녀석이 등장했죠? 주석으로 간략하게 설명을 써놓긴 했지만, 이해가 힘드시다면 검색을 해 보시는 것을 강력추천합니다 ^^; 



자, 이렇게 싱글톤 클래스까지 완성을 했습니다~

이제 이 녀석을 어떻게 사용하게될지 궁금하지 않으세용?ㅎㅎㅎ

제가 앞으로 어떻게 진행할지 감이 오는 분들도 분명 계실거 같아요 ㅎㅎ

음... 일단 오늘은 여기까지 쓸건데요 ㅎㅎ 한 번 써보고 싶은 분들은 마음껏 써보세요~

컴퓨터 폭발 안합니다~ 


으히히, 여튼 다음에 또 만나용~ :-)





by yagom

facebook : http://fb.yagom.net

twitter : http://twitter.yagom.net ( @yagomsoft )

p.s 제 포스팅을 RSS 피드로 받아보실 수 있습니다.

RSS Feed 받기   


↓↓↓저 열심히 썼는데 손가락 한방 꾹 눌러주고 가시는 건 어떨까요? 로그인이 필요 없습니다. ^~^ 고맙습니다~ ↓↓↓ 




Posted by yagom

댓글을 달아 주세요

  1. 컴맹 2012.09.16 05:37  댓글주소  수정/삭제  댓글쓰기

    오~ 멀티쓰레드까지 신경써주시는군요.^^
    오늘도 많이 배우고 갑니다.
    좋은 강좌감사합니다.~~

  2. 시우아빠 2012.11.20 11:49  댓글주소  수정/삭제  댓글쓰기

    멀티쓰레드` 갑자기 튀어나와서 ㅋㅋ 검색해봤습니다.^^
    역시 공유 객체의 경우 저렇게 보호를 해줘야 하겠네요
    좋은 내용 많이 배워 갑니다.

  3. 디지시스 2013.04.25 16:04  댓글주소  수정/삭제  댓글쓰기

    에잇 왜 추천은 한번밖에 안되는걸까요

  4. Hide 2013.11.28 15:25  댓글주소  수정/삭제  댓글쓰기

    야곱님 사랑해요