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