• 카테고리

    질문 & 답변
  • 세부 분야

    프론트엔드

  • 해결 여부

    미해결

안녕하세요. 질문이 있습니다.

21.08.09 15:24 작성 조회수 123

1

안녕하세요. 선생님^^궁금한 점이 있는데요.

지금 비즈니스 로직 관련 부분은 전부 App.vue가 담당하고 나머지 화면단은 하위컴포넌트들이 담당하고 있는데요. 질문이 두가지 있습니다.

1, 제가 토비스프링이라는 책을 읽었을때는 관심사의 분리는 관련된 것들 끼리는 모아두고 관련없는 것들끼리는 서로 떨어뜨려서 수정을 해도 서로에게 영향을 주지 않는게 유지보수나 확장성에 좋다. 이런식으로 알고 있습니다. 그런데 App.vue가 비즈니스 로직 전체를 담당해 버리면 기능별로 분리가 일어난 것이 아니지 않나요? 한 파일에 있지만 서로에게 영향을 주지 않아서 괜찮은 것인가요?

2. 저는 이 강의를 듣기 전까지는 컴포넌트는 자바의 클래스 같은것이라고 생각해서 자주 사용하는 메소드, 변수등을 재활용 하고 필요할때 호출해서 사용한다고 생각했는데요. 그래서 삭제가 여러군데서 일어나면 삭제 컴포넌트를 만들어 놓고 필요시에 재활용하고, 삽입이면 삽입 컴포넌트를 재활용하고..이렇게 생각을 했는데요. 지금 강의에서는 삽입, 삭제, 수정이 모두 할일이라는 공통 관심사를 처리하는 것이니 그 할일이라는 컴포넌트를 재활용? 공용으로 App.vue에서 한번에 처리하겠다 이런 뜻인거죠?   저는 기능위주로 컴포넌트를 생각했고 강의는 주체?대상?을 컴포넌트로 생각한것 같아서요. 이건 그냥 상황에 따라 적절하게 컴포넌트화 시키면 되는건가요?

답변 1

답변을 작성해보세요.

0

안녕하세요 edu님, 좋은 질문이네요 답변 드리겠습니다 :)

1. 관심사의 분리라고 하는 개념을 어떻게 바라보느냐에 따라 답변이 달라질 것 같은데요. 제가 생각하는 컴포넌트 기반 프레임워크에서의 관심사 분리는 특정 UI에 해당하는 데이터만 분리해서 해당 컴포넌트에 묶어 놓겠다입니다.

2. 컴포넌트와 자바 클래스는 역할이 다른 것 같아요. 제가 이해하는 컴포넌트는 오히려 함수에 가까운 것 같습니다. 강의에서 제작한 할 일 관리앱은 할 일이라는 공통의 데이터를 다루고 있고 각 영역에서 이 데이터를 분리해서 다뤘을 때 생기는 문제점을 강의 전반부에 안내하고 있습니다. App 컴포넌트에 공통 데이터를 관리하는 방식은 컴포넌트 기반 프레임워크로 개발했을 때 일반적인 방식인 것 같아요. 아래 글 참고하시면 더 이해하는데 도움 될 것 같습니다 :)

https://medium.com/@dan_abramov/smart-and-dumb-components-7ca2f9a7c7d0

선생님 답글 달아주셔서 감사합니다.!!