티스토리 뷰

오랜 시간 기다렸던 포스팅입니다.

MVC에서 MVVM으로 만들어보는 프로젝트 입니다.

중간에 이 글이 중단된다면 저는 무기한..귀차니즘에 빠진걸로..

https://milyo-codingstories.tistory.com/40

 

MVC(Model-View-Controller)?

안녕하세요. 밀쿄 입니다. 오늘은 미루고..미뤄왔던 포스팅을 해볼까합니다. 이 블로그 시작하며서 써야지 했던게 벌써 몇달이 흐르고 흘렀네요. 이 주제에 대해 자신이 없기도 했고 ( 지금도 없어요 지적 해주세..

milyo-codingstories.tistory.com

MVC에 대한 설명은 여기 있습니다.

모자란 설명이지만 적혀있습니다.

 

자 그러면 시작하겠습니다.

(뷰 코드가 들어가면 길어지니 생략하겠습니다.)

먼저 모델을 만들어줄껍니다.

이 모델을 잘 만들어두면 MVVM이나 MVC이나

아무데나 가져다 써도 되니 잘 만들어주시면 됩니다.

먼저 API가 담길 구조체를 만들어줄껀데요.

이건 쉽죠?

그대로 만드시면 됩니다.

 

이제 API를 호출해서 데이터를 가져오는 놈을 만들껍니다.

이런식으로 함수를 선언해주시고

저렇게 만들어주고 내부에서 JSONDecoder로 데이터 가져오시면 되는데

애플 공식문서에서 발췌했습니다.

원래라면 이런식으로 try를 써서 디코딩하시면 됩니다.

그치만 이렇게하면 do catch로 인해서 지저분해보이므로 다른방법으로 접근할 것입니다.

JSONDecode를 확장해서 에러가 나면 nil을 리턴해주는 Extension을 만들어 줍니다.

이렇게 해주고나면 아래처럼 작성이 가능해집니다.

이렇게 API에서 데이터를 가져오는 것을 다 만들었다면

이제 이 함수를 실제적으로 요청하는 녀석을 만들러 가봅시다.

아래처럼 작성해주시면 됩니다.

이렇게하면 모델쪽 설계는 끝이 납니다.

자 이제 이 모델을 컨트롤러에서 호출해서 View에 뿌려주면 MVC는 완성입니다.

 

사실 이정도로 간단한 앱에선 MVC가 젤 좋습니다.

무조건 MVC보다  MVVM가 우수해, 좋아 그런거 아니라는 거죠.

디자인 패턴에서는 좋고 나쁨이 없다고 생각합니다.

상황마다 적절하게 잘 쓰면 되는거죠.

더불어서 디자인 패턴을 쓰는 이유도

제 개인적인 견해로는 의사소통의 목적이라고 생각해서..

뭐 각설하고 View에 뿌려주러 가봅시다.

뷰에는 대충 이렇게 뿌려주면 됩니다.

네트워크 서비스를 호출해서

result가 성공이면 전역변수에 담아주고 tableView Reload

실패면 에러가 났다고 Alert 띄워주고..

 

자 간단하게 MVC를 만들어봤습니다.

다음시간엔 MVVM을 알아보고

이 간단한 앱을 MVVM으로 바꿔봅시다.

 

 

 

'Swift&IOS' 카테고리의 다른 글

VoiceOver: App Testing Beyond The Visuals  (0) 2021.01.05
[Tip] 코드로 화면 짤 때 조금 더 편하게 짜는 법  (0) 2020.04.20
UIWindow  (1) 2020.01.13
flatMap, compactMap  (0) 2020.01.10
rethrows  (0) 2020.01.09
공지사항
최근에 올라온 글
최근에 달린 댓글
Total
Today
Yesterday
링크
«   2025/03   »
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
30 31
글 보관함