20210414(수)

2021-04-14

1. 학습 날짜

  • 2021-04-14

2. 학습 시간

  • 10:00 ~ 14:00

3. 학습 범위 및 주제

  • todo 앱 리팩토링

4. 학습 목표

  • todo 앱 리팩토링

5. 학습 정리

  • x

6. 상세 학습 내용

  • todo 앱을 리팩토링했다. 일단 기존의 문제점이 하나의 view 파일에 모든 로직이 몰려있다는 점이었다. 따라서 이 view 를 분리할 필요성이 있었기 때문에 분리했다.

  • 그런데 여기서 문제가 생긴게, 정상적인. 정석적인 MVC 패턴을 따라가는 코드라면 응당 view 와 model 이 pair 가 되고 모델이 변경되면 자동으로 해당 모델과 연결되어 있는 view 가 re-render 가 되어야하는데, 원래 하나의 모델과 하나으 ㅣ뷰로만 만들었어가지고 이 모든 부분을 수정하기가 너무 힘들었다...

  • 따라서 커다란 하나의 view 가 있고, 그 내부의 sub-view의 개념으로 3개의 view 를 만들었다. 각각의 view 는 input-view, list-view, count-view 다.

  • 기존과 동일하게 controller 가 이벤트를 잡으면 model 과 view에게 어떤 동작을 하라고 알려준다.

  • model은 기존과 동일하게 동작하고, root-view 의 동작에서 기존에는 root-view 가 북치고 장구치고를 다 했는데 이제는 root-view 가 view들을 컨트롤(???) 하는 느낌으로 되었다.

  • 즉 상황에 맞게 view을 호출하고, 렌더링 하게 된다.

  • 널병합 연산자 ??

    • 이건 오늘 yujo 가 코드 리뷰 때 말해준 정보다. 기존으 || 와 비슷하다.

    • 하지만 결정적으로 차이가 있는건 || 는 처음으로 만나는 truthy 을 리턴해주지만,

    • ??처음으로 만나는 null, undefined 가 아닌 값을 리턴해준다.

    • 이게 말로 보면 무슨 차이인줄 모르겠지만 예를 들어서 a = height || 100 이라는 문장이 있을 때 만약 height 가 0 이라면 0은 falsey 라서 a 는 100이 된다.

    • 하지만 a = height ?? 100 을 하게 되면 height 는 falsey 값이지만 0으로 defined가 되어있기 때문에 a 는 0 이 된다.

7. 오늘 학습 내용에 대한 개인적인 총평

  • 변명이지만.. 하루종일 머리가 너무 아팠다. 두뇌가 부은 느낌이었다. 이런 상황에서 윗집에서으 ㅣ층간소음이 날 죽이려고한다... 하....

  • 이런 변명을 늘어놓는게 아닌 공부를 해야하는데...

8. 다음 학습 계획

  • vue 를 이용한 todo 앱 만들어보기

  • 블랙커피스터디 2차 과제하기

Last updated