작성
·
210
1
우선 이번 강의를 통해 기존의 DOM을 단순조작하는 코딩에서 벗어날 수 있는 생각을 갖게 되어 너무 감사드립니다. 무엇보다도 짜임새 있는 설계와 유지 보수가 가능할 수 있는 코드를 만들수 있을 것 같아 이번 강의를 통해 많은 생각을 할 수 있게 되어 감사합니다.
강의 들으면서 한 가지 질문이 생겼는데요 만약에 모듈 간 영향력이 있는 경우는 어떻게 설계를 가져야 할까요? 예를 들어 ClickCount의 예제에서 확장해서 + - 버튼을 클릭하면 옆에 특정 모듈에서 총 클릭 수를 보여주는 totalClickCount와 totalClcikCountView 를 만들어 사용한다고 한다면 어떻게 설계해야 할까요?
대부분의 실생활 로직들이 모듈간의 서로 영향력을 주고 받는 일이 비일비재한 이런부분 에서 어떻게 설계해야 하는지 질문 드립니다.
답변 1
1
모듈간의 역할을 잘 분리하는게 중요합니다. 수업에서는 데이터, 카운터, 뷰로 각자의 역할을 가졌어요.
데이터: 카운트 값
카운터: 데이터를 변경 (올리거나 내리거나)
뷰: 데이터를 표시. 카운터에게 데이터를 변경을 요청
이러한 설계는 코드가 크고 복잡한 경우에 힘을 발휘합니다. 역할을 명확히 분리하면 읽기 쉽고 일관된 구조를 유지할 수 있기 때문입니다.
하지만 항상 이렇게 분리해야하는 건 아닙니다. 단순하고 작은 기능이라면 하나의 모듈이 좋을 수도 있습니다. 오히려 코드 읽기가 힘들고 복잡해 오버엔지니어링이 될 수 있기 때문입니다.
수업 예제는 실무보다는 교육 목적의 코드입니다. 어쩌면 하나의 모듈이 나을수도 있는데요. 이것은 상황에 따라 선택해야하는 균형의 문제입니다. 실무 환경을 고려해 판단해야합니다.
총 클릭수를 보여준다면 현재 구조에서는
데이터에 총 클릭수를 추가하고
이걸 카운터에서 증가 시킬것 같습니다.
그리고 데이터가 변경될때마다 뷰에 렌더하는
기존의 방식을 사용해 코드의 일관성을 유지시키는게 좋을것 같아요.