심화주차 강의가 시작되었다.
1-5
Netflix 클론 코딩
짧은 시간 안에 이것들을 완벽하게 알 순 없겠지만
의존성 주입
의존성을 외부에서 주입하는 방식으로 바꾸는 것
- Unit Test가 용이해진다.
- 코드의 재활용성을 높여준다.
- 객체 간의 의존성(종속성)을 줄이거나 없엘 수 있다.
- 객체 간의 결합도이 낮추면서 유연한 코드를 작성할 수 있다.
의존 관계 역전의 법칙
객체지향 프로그램 설계의 다섯가지 기본원칙(SOLID) 중 하나
추상화 된 것은 구체적인 것에 의존하면 안되고 구체적인 것이 추상화된 것에 의존해야 한다.
즉, 구체적인 객체는 추상화된 객체에 의존해야 한다는 것
아키텍처 패턴이 왜 필요할까?
- 코드분리, 유지보수가 편하도록
- 코드를 읽기 쉽게 하려고
- 테스트 가능
MVC 패턴의 단점
- 뷰컨트롤러가 비대해진다
- 뷰와 뷰컨트롤러가 합쳐지는 경우가 많다 ( 서로의 의존성이 큼)
MVVM 의 특징
1. UI 로직과 비즈니스 로직이 분리된다
- UI 로직: 뷰를 그리는 로직
- 비즈니스 로직: UI 로직이 아닌 앱의 기획사항에 따른 데이터 흐름을 처리하는 로직.
2. UI 로직과 비즈니스 로직의 분리가 일어났다는 것은 테스트 코드를 작성하기 용이하다는 것과도 같다
3. UIViewController 의 책임이 MVC 때보다 덜어진다
예를 들어, 네트워크 통신 코드는 사실 UI 와 관련없는 비즈니스 로직이기 때문에 View가 아닌 ViewModel 안에 코드 작성한다
그리고 ViewModel 에서 네트워크 통신의 결과로 무언가 값을 받으면,
내부 Publihser에 이벤트를 발행시키고 View는 그것을 구독하고 관찰하고 있다가 캐치해서 반영한다
https://80000coding.oopy.io/68ee8d89-5d05-449d-87e2-5fba84d604ca
(Swift) Dependency Injection, 의존성 주입이란? (feat. DIP)
Dependency Injection, 의존성 주입..
80000coding.oopy.io
https://yjuni22.tistory.com/51
UIKit) TIL #30 키오스크 팀프로젝트 마무리 - 아키텍처 , 오토레이아웃 충돌 intrinsicContentSize
팀프로젝트 제출과 발표가 잘 끝났지만 팀 프로젝트를 마무리 하고 팀에 많은 기여를 하지 못해 팀원들에 대한 미안함과 스스로에 대한 아쉬움이 많이 느껴졌다.아직 배워야 할 것이 많은데
yjuni22.tistory.com
'내일배움캠프 iOS' 카테고리의 다른 글
UIKit) TIL # 48 넷플릭스 클론 강의 (0) | 2024.12.26 |
---|---|
iOS,Swift) TIL # 47 - 동기, 비동기, 동시성(Concurrency), GCD (0) | 2024.12.24 |
UIKit) TIL # 45 팀 프로젝트 - 영화상영정보 발표 (0) | 2024.12.20 |
UIKit) TIL # 44 팀 프로젝트 - 영화상영정보 마무리 (0) | 2024.12.19 |
UIKit) TIL # 43 팀 프로젝트 - 영화상영정보 앱, 메인뷰 추가작업 (0) | 2024.12.18 |