인프런 커뮤니티 질문&답변

노트북은맥북이지님의 프로필 이미지
노트북은맥북이지

작성한 질문수

견고한 JS 소프트웨어 만들기

모듈간끼리 연관성있는 것들에 대해 어떻게 설계를 해야 할까요?

작성

·

210

1

우선 이번 강의를 통해 기존의 DOM을 단순조작하는 코딩에서 벗어날 수 있는 생각을 갖게 되어 너무 감사드립니다. 무엇보다도 짜임새 있는 설계와 유지 보수가 가능할 수 있는 코드를 만들수 있을 것 같아 이번 강의를 통해 많은 생각을 할 수 있게 되어 감사합니다.

강의 들으면서 한 가지 질문이 생겼는데요 만약에 모듈 간 영향력이 있는 경우는 어떻게 설계를 가져야 할까요? 예를 들어 ClickCount의 예제에서 확장해서 + - 버튼을 클릭하면 옆에 특정 모듈에서 총 클릭 수를 보여주는 totalClickCount와 totalClcikCountView 를 만들어 사용한다고 한다면 어떻게 설계해야 할까요?

대부분의 실생활 로직들이 모듈간의 서로 영향력을 주고 받는 일이 비일비재한 이런부분 에서 어떻게 설계해야 하는지 질문 드립니다.

 

 

답변 1

1

김정환님의 프로필 이미지
김정환
지식공유자

모듈간의 역할을 잘 분리하는게 중요합니다. 수업에서는 데이터, 카운터, 뷰로 각자의 역할을 가졌어요.

  • 데이터: 카운트 값

  • 카운터: 데이터를 변경 (올리거나 내리거나)

  • 뷰: 데이터를 표시. 카운터에게 데이터를 변경을 요청

이러한 설계는 코드가 크고 복잡한 경우에 힘을 발휘합니다. 역할을 명확히 분리하면 읽기 쉽고 일관된 구조를 유지할 수 있기 때문입니다.

하지만 항상 이렇게 분리해야하는 건 아닙니다. 단순하고 작은 기능이라면 하나의 모듈이 좋을 수도 있습니다. 오히려 코드 읽기가 힘들고 복잡해 오버엔지니어링이 될 수 있기 때문입니다.

수업 예제는 실무보다는 교육 목적의 코드입니다. 어쩌면 하나의 모듈이 나을수도 있는데요. 이것은 상황에 따라 선택해야하는 균형의 문제입니다. 실무 환경을 고려해 판단해야합니다.

총 클릭수를 보여준다면 현재 구조에서는

  • 데이터에 총 클릭수를 추가하고

  • 이걸 카운터에서 증가 시킬것 같습니다.

  • 그리고 데이터가 변경될때마다 뷰에 렌더하는

     

기존의 방식을 사용해 코드의 일관성을 유지시키는게 좋을것 같아요.

노트북은맥북이지님의 프로필 이미지
노트북은맥북이지

작성한 질문수

질문하기