본문 바로가기

TIL

TIL-220920- 그래도 어제보단 낫다

어제 보다는 나아 진 것 같다. 어제 보다는 조금 더 강의를 마감하는 시간이 빨라 졌고 인출할 수 있는 양도 늘어 났다.(퀘스트 없었으면 하루에 2번씩은 해보고 싶다). 

 

지금 반복과제 인출이 하루에 1번은 살짝 부족한 것 같다. 퀘스트에 이번 주 배운 내용을 접목 시킬려면 강의 반복과제는 술술 코드가 나와야 하는데 화요일 인데도 여전히 일과 마감시간이 다 되갈 쯤에 반복과제를 마무리 했다. 목요일까지 벌써 이틀밖에 남지 않았다. 남은 이틀을 어떻게 보내야 할까 현재 custom hook부분 까지는 인출이 되는 것 같지만 flux form 부분이 인출이 거의 안되는 것 같다. 

 

custom hook 까지는 빠르게 완성을 시키고 flux와 form부분은 강의를 2배속으로 20분 시청씩 2번씩 끊어서 20분 시청 -> 인출 이렇게 해야 할 것 같다. 코드를 따라치는 건 멀티 태스킹을 하는 것이라 학습이 전혀 안된다.

 

하지만 퀘스트도 있고 코딩도장도 있고 타협을 해야 한다. 일단 일과시간에 최대한 빠르게 1번 완성을 하고 남는 자투리 시간 동안 내일과 목요일 동안 할 부분을 해서 총 3번의 강의 인출을 목표로 잡겠다. 

 

내 마음대로 정리 해보는 pub-sub 패턴을 적용해야 하는 이유

 

코드를 좋게 짜는 건 결국 확장성이 좋게 만든다는 것이다. 바로 이 pub-sub구조도 이 확장성에 초점을 두는 패턴이다. 

하나의 함수가 모든 책임을 가지고 있다면 앞으로 새로운 기능을 추가하기 굉장히 어려울 것이다. 그리고 SOLID원칙의 단일 책임 원칙도 위반 하게 된다.

 

그렇기 때문에 어딘가 다른 곳에 관심사를 분리하고 로직을 두어야 하는 이유이다. 예시

 

 

이런 구조로 되어 있다면 DataService파일은 로직과 동기화등의 관심사를 가지게 되고 다른 모듈들은 인터페이스에 대한 부분을 관심사로 가지게 된다.

 

pub-sub패턴은 비동기 처리에서 사용이 되는 패턴이다. 위와 같이 모듈들을 분리 했다면 sidebar나 map에서 사용자가 인터페이스를 통해 무언가 이벤트를 일으키면 dataService에 자료를 요청하고 컴포넌트(sidebar, map) 들이 자료를 받아 오도록 만들어야 한다. 

 

카센터에 자동차 수리를 맡겼다고 생각해보자 카센터에 30분마다 방문하거나 전화를 하거나 하지는 않을 것이다. 보통 전화번호를 남기고 차 수리가 끝나면 전화를 달라고 요청을한다. 바로 이 전화번호를 남긴다는 것이 비동기 방식을 처리하는 방법이다.  

 

 

컴포넌트가 이벤트를 수신하고 서비스는 발행자가 된다. 

 

출처

https://www.rinae.dev/posts/why-every-beginner-front-end-developer-should-know-publish-subscribe-pattern-kr

 

[번역] 초보 프론트엔드 개발자들을 위한 Pub-Sub(Publish-Subscribe) 패턴을 알아보기

비동기 자바스크립트 코드를 덜 괴롭게 이해하는 방법

www.rinae.dev

 

 

'TIL' 카테고리의 다른 글

TIL-220922- 압박수사형 트러블슈팅  (0) 2022.09.22
TIL-220921- PR은 꼭 남기자  (0) 2022.09.21
TIL-220919-"어렵다" 멈춰!  (1) 2022.09.19
TIL-220918 공식문서로 개념 공부하기  (0) 2022.09.18
메가테라 12주차 주간 회고  (1) 2022.09.18