requestJson으로 데이터를 보내는데 json을 통해서 받아지기는 하는데 decoding이 되지 않았다(해결)
→ 그래서 request를하고 나서 바로 data()를 통해서 Observable 데이터를 만들고
→ 그 데이터를 JSONDecoder를 통해서 decoding을 함
데이터를 수정할 때 수정하기 모달에서 textField에 데이터가 있다면 request를 보내주는 부분에서 rx를 사용할 수 있을 것 같은데,,,

todoDataList(table view에서 사용하는 data)를 observable로 만들어서 진행을 해야 한다
1. 또한 현재 tableview에서 사용하고 있는 section이 하나이므로 dataSource를 굳이 import하지 않고 진행해도 된다
- tableview에서 사용할 데이터를 observable로 바꾸려고 했는데 어떻게 바꿔야 하는지 모르겠음 + 어떻게 검색해야 방법이 나오는지 모르겠다ㅠ,,,
- 일단 Observable.just는 한번 Observable을 방출하면 그 상태로 끝나는 함수이다. 하지만 todoListData는 observable이 한번 방출되면 끝나는 것이 아니라 계속해서 Observable을 관찰하고 변경되면 item을 방출해야하기 때문에 관찰 도중에 에러가 발생하거나 방출이 완료가 되더라도 관찰을 계속한다 → relay를 사용해야 한다!
- 만약에 에러가 나거나 방출이 끝나면 관찰을 멈춰도 되는 Observable을 만들고 싶다면 그냥 subject를 사용하면된다
→ data.count, data.filter등으로 value를 이용해서 접근해야 하므로 behaviorRelay를 사용한다
→ behaviorRelay는 마지막 값을 보존하고 초기값이 반드시 필요하다
→ relay로 데이터를 변경했으므로 변경되어서 받은 데이터는 임시로 다른 곳에 보관해놨다가 변경이 끝나면 accept를 통해서 이벤트를 보낸 후 데이터를 변경해준다
→ 즉, 우리는 평소에 데이터를 append, insert, remove를 통해서 데이터 자체를 빼거나 더해주는 등 데이터를 변경해줬지만 relay는 변경된 데이터를 보내주면 알아서 데이터를 변경해준다

바닥을 감지했을 때 새로운 페이지를 불러오는 scrollViewDidLoad함수 부분도 rx로 변경할 수 있을 것 같은데 어떻게 변경할까?


만약에 이렇게 스크롤이 맨 마지막일때, 즉, 바닥을 봤을때의 여부를 체크해야 하는 것이 여러번 있다면 그에 해당하는 비지니스 로직을 그때마다 여러번 작성을 해줘야한다. 하지만 그렇게 하기 귀찮으니까 UIScrollView일때 접근할 수 있는 로직을 만들어놓으면 그 로직만 호출해서 사용할 수 있다(즉, rx에 커스텀 로직 만들기)

Contextual type for closure argument list expects 1 argument, which cannot be implicitly ignored
filter{ $0 == true }.map{ _ in }을 하면 Observable에서 Observer로 왜 바꿀 수 있지?
그 외에도 현재 api호출이 아닐때에만 api를 호출할 수 있도록 하는 부분도 rx로 변경할 수 있을 것 같은데 어떻게 할지 모르겠다

addTodoBtn.rx.tap.bind{ [weak self] in self?.addTodo()}에서 왜 [weak self] in을 해줘야하는 걸까?
→ 순환참조를 막기 위해서이다
Rxswift에서 tableview를 어떻게 사용하는지 궁금해서 봤는데 왜 return 값이 3개나,,?


