문제 상황 - 코드로 뷰를 변경하기 위해서는 Storyboard의 ID를 설정해야한다. 나는 ChattingViewController로 이동시키기 위해서 해당 스토리보드에서 ID를 설정해줬다. - 일반적으로 이렇게 설정하면, 해당 문제는 해결되어야한다. 그런데 나는 이 문제가 해결되지 않았다. 프로젝트 상황 생각해보니 나는 Main Storyboard에서 View Controller들을 관리하지 않았다. 뷰컨트롤러마다 storyboard 파일을 만들어서 관리하고 있었다. 그러니 당연히 self.storyboard (Main.storyboard)에서 ChattingViewController를 가진 storyboard는 찾을 수 없는 것이다. 그럼 어떻게 해결하는가? Main.storyboard에서 해당 스..
MVVM ViewModel이란? 이제 기존 MVC 프로젝트를 MVVM으로 리팩토링하기 전에, ViewModel에 대해서 간단하게 알아보자. ViewModel은 View에서 일어난 변경을 감지해서 Model에게 그 변경을 전달한다. 예를 들어, 사용자가 음악을 검색하면, 입력할 때마다 또는 검색 버튼을 누를 때 ViewModel이 그 변경을 감지하는 것이다. 이후에 Model에 그 변경을 전달하기 위해 NetworkManager라는 계층에게 데이터 변경을 요청하는 역할을 담당한다. 기존 MVC의 ViewController와 MVVM의 ViewController의 차이를 살펴보자. ViewModel - 유저의 입력을 감지하여 처리한다. - Network 요청한다. View - View를 보여준다. MVVM을..
MVC 이제까지 해 왔던 방법으로 View Controller를 구성해보자. (우선 UI는 단순한 TableView에 음악 제목을 띄우기만 할 것이다.) ViewController class ViewController: UIViewController { private var musicData: [Music]? private let networkManager = NetworkManager.shared private let tableView: UITableView = { let table = UITableView() table.register(UITableViewCell.self, forCellReuseIdentifier: "cell") return table }() override func viewDidL..
MVC -> MVVM으로 구조 변경해보기 많은 글들을 보고, 코드를 봤지만 나는 아직도 왜 MVVM이 필요한지 모르겠다.. 그래서 MVC를 MVVM으로 리팩토링해보며 왜 필요한 지 공부해보고자 한다. 우선 내가 만들고자 하는 앱은 iTunes API를 이용해 음악 정보를 받아오는 아주 단순한 앱이다. MVVM, MVC에서 공통적으로 사용하는 코드는 다음과 같다. 모델 import Foundation struct MusicData: Decodable { let resultCount: Int let results: [Music] } struct Music: Decodable { let albumImage: String let musicTitle: String let artist: String let albu..
- Total
- Today
- Yesterday
- replit
- level1
- 백준
- 설명
- 부르트포스
- 16진수 입력
- 파이썬
- CodeUp
- 정답
- 시간초과
- 레플릿
- baekjoon
- for문
- 리플릿
- Swift
- 코드업
- 코드 업
- 깃
- 기초 100제
- CHR
- SwiftUI
- 반복문
- 프로그래머스
- python
- Code up
- COMMIT
- 깃허브
- ord
- do while
- 이것이 코딩테스트다
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |