props를 자식 컴포넌트에서 사용하지 않아야 하는 이유 (찬울님)

순수 함수의 관점에서 이해를 하면 좋다. 문제가 생겼을 때 그 원인을 빨리 찾을 수 있도록 순수 함수를 사용하는 것이 좋다.

나의 바깥쪽 스코프에 접근하는 것이 그만큼 좋지 않기 때문에 사용을 지양하는 것이 좋다. 클로저 역시 좀 지양하는 것이 좋을 수 있다. 책임과 범위를 명확하게 하는 것이 좋다.

event-driven architecture 이벤트 기반 방식에 대해 찾아보자.

그럼 자식에서 부모로 데이터를 보낼 수 있는 방식? reduce, map, 등의 immutable은 새로운 객체를 반환하는 것이기 때문에 연관이 있다.

CQRS(Command and Query Responsibility Segregation) : 명령과 조회의 책임 분리. 뷰에서는 자식은 event를 query하고, command는 부모에 있어서, 부모의 데이터는 부모에서만 처리할 수 있도록 한다. vuex나 redux에서는 dispatch or commit이고, 그 로직은 store에 분리해 놓는데, 이것도 CQRS 패턴이라고 할 수 있다.

코딩 컨벤션 회의

ESLint

node_modules/.bin/프로그램이름 : 실행 바이너리 파일들이 들어가 있다.

ESlint는 프로그램이다. 해당 파일에 대해서 문법 오류를 찾아주는 기능을 하는 프로그램이다.

—fix를 사용하면 해당 파일을 저장할 때마다 고쳐준다. 이렇게 사용한다면 prettier와 어느 정도 충돌이 일어날 수 있는데, 찬울님은 webstorm에 reformat 속성이 있어서, prettier를 사용하지 않고 eslint를 사용해서 진행한다.

warning, info, error, fatal 이렇게 에러의 4단계 중, 문법적인 심각한 오류가 아니더라도 에러가 발생해서 잡을 수 있도록 했다(eslint 기본 설정이 error라서).

eslint rules

eslint는 lint 룰들을 다 가져와 참고하고, 원하는 룰셋을 설정해 사용할 수 있도록 하는 패키지이다.

JS standard → 스탠다드처럼 자바스크립트에 대해 eslint 룰셋을 정해준 스타일 가이드이다.

eslintrc.json 구조