프론트엔드 개발 · 기초
Vue.js에서 컴포넌트 기반 개발의 이점은 무엇이며, 하나의 컴포넌트는 일반적으로 어떤 구조(template, script, style)로 이루어져 있는지 설명해 주세요.
힌트 · UI를 재사용 가능한 독립적인 단위로 분리하여 개발 효율성과 유지보수성을 높이며, 단일 파일 컴포넌트(SFC)는 `template`, `script`, `style` 블록으로 구성됩니다.
재사용성유지보수성모듈화단방향 데이터 흐름template
모범답안
Vue.js에서 컴포넌트 기반 개발은 UI를 독립적이고 재사용 가능한 단위, 즉 컴포넌트로 나누어 개발하는 방식입니다. 이렇게 하면 다음과 같은 이점이 있습니다.
- 재사용성: 한번 만든 컴포넌트를 여러 곳에서 재사용하여 코드 중복을 줄이고 개발 효율성을 높일 수 있습니다.
- 유지보수성: 각 컴포넌트가 독립적이므로 특정 기능 수정 시 해당 컴포넌트만 수정하면 되어 유지보수가 용이합니다.
- 모듈화: 코드를 모듈화하여 전체 애플리케이션의 구조를 파악하기 쉽고, 협업에도 유리합니다.
Vue.js 컴포넌트는 일반적으로 단일 파일 컴포넌트(SFC) 형태로 구성되며, template, script, style 세 부분으로 나뉩니다. template은 컴포넌트의 HTML 구조를 정의하고, script는 컴포넌트의 로직(데이터, 메서드 등)을 담당하며, style은 컴포넌트의 스타일을 정의합니다.
읽었다면, 이제 직접 답해볼 차례예요
패스잇 앱에서 이 질문에 말로 답하면 AI가 꼬리질문까지 이어가며 1:1 코칭합니다.
함께 보는 Vue.js / Nuxt 면접 질문
- Vue.js에서 조건부 렌더링을 위해 사용되는 `v-if`와 `v-show` 디렉티브의 차이점을 설명하고, 각각 어떤 상황에 더 적합한지 예시를 들어 설명해 주세요.
- Vue.js에서 배열 데이터를 기반으로 여러 개의 요소를 반복적으로 렌더링할 때 `v-for` 디렉티브를 어떻게 사용하는지 설명해 주세요. 이때 `key` 속성의 중요성도 함께 언급해 주세요.
- Vue.js에서 사용자 인터랙션(클릭, 입력 등)을 처리하기 위해 `v-on` 디렉티브를 어떻게 사용하는지 설명해 주세요. 이벤트 수식어(event modifiers)의 역할도 함께 설명해 주세요.
- Vue 3 Composition API에서 'ref'와 'reactive'는 반응형 데이터를 생성하는 데 사용됩니다. 이 두 함수의 주요 차이점은 무엇이며, 각각 어떤 상황에서 사용하는 것이 더 적절한지 구체적인 예시와 함께 설명해주세요.
- Vue 컴포넌트에서 'computed' 속성과 'watch' 옵션(또는 watch effect)은 모두 반응형 데이터의 변화에 따라 특정 로직을 수행할 수 있습니다. 이 둘의 주요 차이점을 설명하고, 각각 어떤 상황에 더 적합한지 실무 예시를 들어 설명해주세요.
- Vue 컴포넌트 간 통신에서 'props'와 'emit'은 기본적인 부모-자식 통신 방식입니다. 이 외에 복잡한 컴포넌트 트리에서 부모-자식 관계가 아닌 컴포넌트 간 효율적인 통신 방법들(예: provide/inject, Pinia/Vuex)을 설명하고, 각 방법의 장단점을 비교해주세요.