오늘부로 todo 미션이 끝이 났다. 이번 미션으로도 항상 그렇듯 배운 게 많은 것 같다.
로그인 시 token을 받아와 사용하는 방법을 익혔고
구조에 대해 고민하는 시간을 많이 가졌다.
서버에서 데이터를 받아오는데 과연 클라이언트에서도 데이터를 보관하고 있어야 할까?
또 다른 고민은 어떻게 하면 재사용이 가능하도록 할까
또는 기능을 빼거나 확장에 대해 자유롭게 가능할까 하는 여러 가지 고민을 한 것 같다.
결국 데이터를 보관하는 model을 만들어 데이터를 관리하고 model이 바뀌면 view가 바뀌도록 설계하였다. 이렇게 데이터를 보관하니 dom에 접근하지 않고도 데이터를 쉽게 찾을 수 있어 좋았고 여기서는 구현하지 않았지만 history 같은 경우는 서버에서 데이터를 받아와 보여줄 수도 있지만 먼저 보관했던 데이터를 사용자에게 빠르게 보여주고 후에 서버에 데이터를 한 번에 전달하는 방법도 생각해 볼 수 있을 것 같다 이렇게 함으로써 좀 더 사용자에게 빠르게 정보를 전달할 수 있을 것 같다.
model은 id로의 검색과 element의 검색이 가능하도록 두 가지 방법으로 모두 데이터를 관리했고 column이나 card의 element를 넣으면 정보를 얻을 수 있도록 하였다.
그리고 이번 미션에서 한 설계는 column이라는 큰 축이 있고 여기서 model이 모든 데이터를 관리하며 view는 model이 바뀌면 바뀐 화면을 렌더링 한다. controller는 초기 화면 렌더링과 이벤트 등록을 담당하도록 하며 각 component들에게 event를 전달해 주는 역할을 하도록 했다.
거기서 기능을 확장하거나 뺄 수 있도록 하고 싶어서 기능들을 각각 따로 구현했다. 추가 기능 삭제 기능 수정 기능 등을 언제든 뺄 수 있고 추가할 수 있도록 하자 해서 각각 구현하였다.
처음에 구조가 계속 바뀌면서 혼란이 왔었지만 여러 가지 구조를 적용해보며 각각의 장단점을 발견한 것 같다.