728x90
반응형

분류 전체보기 112

프론트엔드 디자인패턴

프론트엔드 프로젝트에서 디렉토리 구조는 코드의 가독성, 유지보수성, 확장성에 중요한 역할을 함. 1. 레이어드 아키텍처 (Layered Architecture)레이어드 아키텍처는 기능별로 나누기보다는 계층에 따라 파일을 분리하는 구조임. 주로 프레젠테이션 계층, 비즈니스 로직 계층, 데이터 계층으로 나뉨.src/├── components/ # UI 컴포넌트 (프레젠테이션 계층)│ ├── Button.vue│ ├── Header.vue│ └── Footer.vue├── services/ # 비즈니스 로직 처리 (비즈니스 계층)│ ├── AuthService.js│ ├── ApiService.js│ └── UserService.js├── store/ ..

Web Development 09:09:34

FLUX 아키텍쳐

Flux 아키텍처는 단방향 데이터 흐름을 기반으로 애플리케이션 상태 관리를 체계적으로 하는 디자인 패턴임. 특히 리액트(React)와 함께 사용되는 상태 관리 패턴으로 유명하며, 복잡한 애플리케이션에서 데이터 흐름을 쉽게 추적하고, 상태 관리를 더욱 예측 가능하게 만드는 데 중점을 둠. Flux의 핵심 개념Flux 아키텍처는 크게 4개의 주요 컴포넌트로 구성됨:Action (액션)Dispatcher (디스패처)Store (스토어)View (뷰)Flux 데이터 흐름1. Action (액션)액션은 애플리케이션에서 일어나는 **사건(이벤트)**을 의미함.사용자 입력, API 호출 등으로 발생하며, 액션 객체는 일반적으로 다음과 같은 형식을 가짐:{ type : 'ADD_TODO'. payload : { ..

[콜럼Vue스] 명명 라우트

명명 라우트 (Named Routes)명명 라우트는 Vue Router에서 라우트를 정의할 때 이름을 부여하는 방식으로, 라우트를 보다 쉽게 참조하거나 네비게이션할 수 있게 해줌. 라우트 이름을 사용하면 URL을 직접 입력하거나 하드코딩하는 대신, 라우트의 이름을 통해 경로를 참조할 수 있음. 명명 라우트 정의라우트를 정의할 때 name 속성을 추가하여 라우트에 이름을 부여할 수 있음.const routes = [ { path: '/user/:id', component: UserComponent, name: 'user' // 라우트 이름 정의 }]명명 라우트로 네비게이션라우트 이름을 이용해 네비게이션하려면 router.push 또는 에서 이름을 참조할 수 있음.// router.p..

[콜럼Vue스] 중첩라우트

중첩 라우트는 Vue Router에서 다중 뷰 또는 중첩된 컴포넌트 구조를 지원하는 기능을 말함.즉, 부모 라우트의 컴포넌트 안에 자식 라우트를 정의하여, 하나의 페이지에서 여러 개의 컴포넌트를 계층적으로 관리할 수 있게 해줌.중첩 라우트 설정 방법중첩 라우트를 구현하기 위해서는 부모 라우트의 component에 라우트 아울렛(router-view)을 설정하고, 자식 라우트들을 children 속성에 정의해야 함. 기본 구조const routes = [ { path: '/parent', component: ParentComponent, children: [ { path: 'child', component: ChildComponent } ]..

[콜럼Vue스] 동적라우트

동적 라우트는 URL 경로에 변수를 포함하여 여러 가지 유사한 경로를 처리할 수 있는 기능을 말함. Vue Router에서 동적 라우트는 특정 URL 패턴에 매칭되는 경로를 정의하고, 해당 경로에서 동적으로 변하는 부분을 파라미터로 받을 수 있음.동적 라우트 설정 방법동적 라우트는 경로에 콜론(:)을 붙여 정의함.예를 들어, :id라는 동적 파라미터를 사용하면 /user/1, /user/2와 같은 경로가 모두 동일한 라우트에 매칭될 수 있음.const routes = [ { path: '/user/:id', component: UserComponent }]위 코드에서 path에 있는 :id 부분이 동적 파라미터로, /user/1, /user/2 등의 URL에 매칭됨. 여기서 :id는 동적으..

[콜럼Vue스] Vue-router

vue-router는 Vue.js 에서 공식적으로 제공하는 클라이언트 측 라우팅 라이브러리임.이를 사용하면 Vue.js 애플리케이션 내에서 여러 페이지 또는 컴포넌트 간에 라우팅을 쉽게 처리할 수 있음 기본사용법라우터설정 -> 라우터 사용 -> 라우트 링크와 라우트 표시라우터설정import { createRouter, createWebHistory } from 'vue-router'import Home from '../views/Home.vue'import About from '../views/About.vue'const routes = [ { path: '/', component: Home }, { path: '/about', component: About }]const router = create..

[콜럼Vue스] <script setup>

2. TodoList.vue 3. TodoListItem.vue {{ todoItem.todo }} 삭제 4. InputTodo.vue 추가 주요 변경 사항:defineProps와 defineEmits:props와 emit을 각각 선언하고 관리할 수 있다.기존의 props 및 emits 옵션과는 다르게, 각각 defineProps() 및 defineEmits()를 사용하여 컴팩트하게 선언할 수 있다.ref와 반응형 데이터:반응형 데이터는 모두 ref()로 선언되어 관리된다.todoList, newTodo 등은 상태를 관리하는 반응형 데이터로 사용된다.자동 컴포넌트 등록:에서는 컴포넌트를 import한 후 따로 등록하지 않아도 바로..

[콜럼Vue스] 생명주기 훅(Life Cycle Hook)

참고자료 : 원쌤의 퀵 Vue.js1. Option API의 생명주기 훅export default { data() { return { message: 'Hello Vue!' } }, // 컴포넌트가 생성되기 직전에 호출됨 beforeCreate() { console.log('beforeCreate') }, // 컴포넌트가 생성된 후 호출됨 created() { console.log('created') }, // DOM에 컴포넌트가 마운트되기 직전에 호출됨 beforeMount() { console.log('beforeMount') }, // DOM에 컴포넌트가 마운트된 후 호출됨 mounted() { console.log('mounted')..

[콜럼Vue스] Watch, WatchEffect

watchwatch는 특정 데이터의 변화를 감지할 때 사용된다. 이 데이터는 ref나 reactive 객체일 수 있으며,\사용자가 지정한 감시 대상에 대한 변화를 추적한다.watch의 특징특정 데이터를 감시함.데이터의 이전 값과 변경된 값을 모두 사용할 수 있음.즉시 실행되지 않고, 데이터 변경 시에만 실행됨.watchEffectwatchEffect는 반응형 데이터에 대한 의존성을 자동으로 추적하고, 그 의존성이 변경되면 코드를 실행한다.watchEffect는 감시할 대상을 명시적으로 지정하지 않아도, 내부에서 사용된 모든 반응형 데이터를 자동으로 추적한다.watchEffect의 특징의존성 추적을 자동으로 수행함.사용된 모든 반응형 데이터가 변경되면 코드를 재실행함.즉시 실행되며, 초기 실행 시에도 코드..

[콜럼Vue스] Computed

computed 속성은 Vue에서 제공하는 강력한 기능으로,데이터나 다른 속성에 의존하는 값을 효율적으로 계산해 반환하는 반응형 속성기본적으로는 캐싱(caching)을 지원하여,의존하는 데이터가 변경되지 않으면 다시 계산하지 않고 이전에 계산된 값을 반환한다.따라서 비용이 많이 드는 연산이나 복잡한 연산을 최적화하는 데 매우 유용하다.computed 속성 기본 사용법 이름: {{ fullName }} firstName과 lastName이라는 반응형 데이터를 선언.computed 속성인 fullName은 firstName과 lastName에 의존해 그 값을 계산한다.fullName은 firstName이나 lastName이 변경될 때만 다시 계산되며, 그렇지 않으면 캐싱된 값을 반환한다.computed 속..

[콜럼Vue스] 비동기 컴포넌트 (Async Component)

Vue에서 비동기 컴포넌트(Async Component)는 컴포넌트를 동적으로 로드하여, 필요한 시점에만 렌더링하는 기법임.이 방법은 대규모 애플리케이션에서 초기 로딩 시간을 줄이고, 라우팅 또는 사용자 상호작용에 따라 필요할 때만 컴포넌트를 불러올 수 있게 해줌.비동기 컴포넌트를 사용하는 이유초기 로딩 시간 최적화앱의 모든 컴포넌트를 한 번에 로드하는 대신, 사용자가 접근하는 순간에 로드함으로써 초기 로딩 시간을 줄일 수 있음.코드 스플리팅Webpack과 같은 번들러가 **비동기 컴포넌트를 분리된 청크(chunk)**로 만들어서, 필요한 파일만 네트워크로 로드하게 만듦.사용자 경험 개선대기 시간이 길어지는 부분에서는 로딩 스피너나 에러 핸들링을 통해 사용자 경험을 개선할 수 있음.defineAsyncC..

[콜럼Vue스] 텔레포트 (Teleport)

Vue에서 Teleport는 컴포넌트의 DOM 구조를 현재 컴포넌트 트리 외부의 특정 위치로 이동시키는 기능임.이를 통해 렌더링된 요소를 HTML의 다른 부분에 배치하면서도, Vue의 반응형 데이터 및 이벤트가 유지되도록 도움.보통 모달, 툴팁, 드롭다운 같은 UI 컴포넌트를 구현할 때 유용. Teleport의 사용법기본 사용 예시 메인 컴포넌트 이 모달은 body에 렌더링됨 위 코드에서는 teleport 태그를 통해 .modal 컴포넌트가 HTML의 태그로 이동하여 렌더링됨.to 속성: 텔레포트가 렌더링될 목적지를 지정하는 필수 속성. 예를 들어, 모달과 같은 요소를 페이지 어디서든 쉽게 제어하려면 body에 텔레포트하는 것이 일반적임.Tel..

reactive와 ref 차이

Vue3에서는 reactive와 ref 를 사용해 반응형 상태 (Reactive State)를 관리함이 두 기능은 비슷하지만 사용 목적과 방식에 차이가 있음 아래에서 각 기능의 차이와 언제 사용하는 것이 좋은지 알아보겠음 1. ref란?단일 값 또는 원시 데이터 타입 (string, number, boolean 등)을 반응형으로 관리할 때 사용객체, 배열도 ref로 감쌀 수 있지만, 이 경우 내부 속성에 직접 접근하려면 .value가 필요import { ref } from 'vue'const count = ref(0) // 숫자 값을 반응형으로 관리count.value++ // ref는 .value로 접근해야 함console.log(count.value) // 1.value로 접근해야만 값에 접근할..

전체선택/해제 함수 구조 분석

const selectAll = async () => { if (tableRef.value) { if (allSelected.value) { tableRef.value.clearSelection() // 선택 해제 } else { tableRef.value.toggleAllSelection() // 전체 선택 } }} tableRef.value 확인if (tableRef.value) {이 조건문은 tableRef가 유효한 엘리먼트 참조를 가지고 있는지 확인합니다.tableRef는 컴포넌트에 대한 참조로, Element Plus의 ref를 사용하여 테이블의 인스턴스에 접근합니다.allSelected.value 확인if (allSelected.value) { tabl..

[콜럼Vue스] 컴포넌트에서의 v-model 디렉터브

v-model 디렉티브 활용법 학습v-model은 부모와 자식 컴포넌트 간의 양방향 데이터 바인딩을 쉽게 구현해주는 디렉티브임.부모 컴포넌트에서 자식 컴포넌트의 데이터를 바인딩하고, 자식 컴포넌트에서 이벤트로 값을 업데이트할 수 있음.기본적인 부모-자식 데이터 바인딩 예제 구현부모 컴포넌트에서 속성을 내려주고, 자식 컴포넌트에서 이벤트로 값을 업데이트하는 방식을 먼저 구현함. 검색어: {{ searchName }} v-model 적용으로 코드 개선기존 코드에서 이벤트와 메서드를 모두 작성해야 했지만, v-model을 사용하면 코드가 더 간결해짐.v-model을 적용하면 부모 컴포넌트가 자식 컴포넌트로 값을 전달하고, 자식 컴포넌트가 자동으로 부모 데이터를 업데이트함. ..

[콜럼Vue스] provide, inject를 이용한 공용데이터 사용

참고자료 : 원쌤의 Vue.js 퀵스타트provide와 inject는 부모-자식 컴포넌트 간의 데이터 전달을 간소화하는 기능이다. 복잡한 컴포넌트 계층 구조에서, 각 계층을 거쳐 속성을 전달할 필요 없이 상위 컴포넌트에서 제공한 데이터를 하위 컴포넌트에서 바로 사용할 수 있게 한다.  컴포넌트의 계층 구조가 복잡해지면 계층 구조를 따라 연속적으로 속성을 전달해야 하는 문제가 있음해결방법 => provide, inject를 이용 provide/inject의 원리와 사용법provide: 상위 컴포넌트에서 하위 트리에 공유할 데이터를 제공함.inject: 하위 컴포넌트에서 상위에서 제공한 데이터를 주입받아 사용함.이 패턴은 컴포넌트 간 깊은 계층 구조에서도 데이터를 쉽게 전달할 수 있도록 돕는다.

부모/자식 컴포넌트 확인하는 방법

Vue에서는 부모와 자식 관계가 컴포넌트 간의 import와 사용 방식으로 결정된다. 이 관계를 이해하려면 파일 구조와 코드에서 서로 어떤 컴포넌트가 포함하고 있는지를 확인해야 한다.  부모-자식 관계를 파악하는 방법부모 컴포넌트에서 자식 컴포넌트를 사용한 경우 찾기보통 부모 컴포넌트에서 자식 컴포넌트를 import한 다음 template에서 사용한다.만약 props와 emit이 사용된 코드라면:부모가 자식 컴포넌트에 데이터를 전달할 때 props 사용.자식이 부모에게 이벤트를 알릴 때 emit 사용.구체적인 파일 탐색 방법1. props를 사용하는 자식 컴포넌트 예시예를 들어, 자식 컴포넌트가 아래와 같이 작성된 경우 조회하기props와 emit을 사용한 이 파일(ChildComponent.vue)은..

[콜럼Vue스] 동적 컴포넌트 (Dynamic Component)

동적 컴포넌트는 동일한 위치에 여러 컴포넌트를 표현해야 할 때 유용함동적 컴포넌트는 태그를 이용해, is 속성에 어떤 컴포넌트를 렌더링할지 동적으로 결정할 수 있음탭 인터페이스와 같이 화면 전환이 필요한 UI를 구현할 때 자주 사용동적 컴포넌트의 기본 사용법예제 - 동적 탭 화면 구현1. 탭에 해당하는 컴포넌트 생성 산호해 해전에 대해 동일한 방식으로 LeyteGulfTab.vue와 MidwayTab.vue 컴포넌트를 작성하되, 헤더 내용만 다르게 변경2. App.vue에서 동적 컴포넌트 사용 태평양 전쟁의 해전 {{ tab.label }} 동적 컴..

[콜럼Vue스] 슬롯 (Slots)

Vue.js에서 슬롯은 부모 컴포넌트가 자식 컴포넌트 내부의 특정 위치에 콘텐츠를 동적으로 전달할 수 있도록 도와주는 메커니즘임.이 기능을 활용하면 컴포넌트의 재사용성이 극대화되고 더 유연한 설계가 가능해짐슬롯 사용 전의 컴포넌트슬롯을 사용하지 않는 컴포넌트는 자식 컴포넌트의 구조와 콘텐츠가 고정되어, 재사용에 한계가 생김 {{ label }} 슬롯의 기본 사용법기본 슬롯을 사용하면 부모 컴포는트가 동적으로 컨텐츠를 전달할 수 있음자식 컴포넌트는 태그로 부모가 전달한 콘텐츠를 표시예제 - 기본 슬롯 사용 기본 아이템 부모 컴포넌트에서의 사용 예시 {{ item.label }} 명명된 슬롯 (Named Slots)명명된 슬..

[콜럼Vue스] 단일 컴포넌트에서의 스타일 관리

Vue.js 에서는 컴포넌트별로 CSS 스타일을 독립적으로 관리할 수 있음이로 인해 유지보수가 용이해지고, 스타일 간의 충돌을 방지할 수 있음특히, 범위 CSS (Scoped CSS)와 CSS 모듈을 사용하면 보다 구조적이고 명확적인 스타일링이 가능함범위 CSS (Scoped CSS)Scoped CSS는 특정 컴포넌트 내부에서만 스타일이 적용되도록 하는 기능임이를 통해 다른 컴포넌트와의 스타일 충돌을 방지하고, 컴포넌트별로 독립적인 스타일을 제공할 수 있음 scoped 키워드의 역할- 를 선언하면 컴포넌트의 HTML 요소에 자동으로 데이터 속성 (data attribute)가 추가- 스타일 정의 역시 해당 데이터 속성을 기반으로 범위 내에서만 적용 CSS 모듈 (CSS Modules)CSS 모듈은 CSS..

[운영체제] 운영체제의 역할과 기능

운영체제의 역할과 기능운영체제(OS, Operating System)는 컴퓨터 시스템의 자원을 관리하고, 사용자와 컴퓨터 하드웨어 간의 인터페이스를 제공하는 소프트웨어임. 운영체제는 다양한 기능을 수행하며, 이로 인해 사용자는 복잡한 하드웨어를 신경 쓰지 않고 소프트웨어를 편리하게 사용할 수 있음.1. 운영체제의 주요 역할하드웨어 자원 관리CPU, 메모리, 저장 장치, I/O 장치 등 시스템 자원을 효율적으로 분배함.여러 프로그램이 동시에 실행될 때 자원 사용을 조정하고 충돌을 방지함.사용자와 컴퓨터 간의 인터페이스 제공명령줄 인터페이스(CLI)와 그래픽 사용자 인터페이스(GUI)를 제공해 사용자와 시스템이 소통할 수 있게 함.사용자는 직접 하드웨어를 제어할 필요 없이 운영체제의 도움으로 프로그램을 실행..

RAID와 저장 장치 (HDD, SSD)

1. HDD (Hard Disk Drive)HDD는 자기 디스크(플래터)로 구성된 저장 장치로, 기계적 회전과 헤드 이동을 통해 데이터를 읽고 씀. 주로 대용량이 필요한 백업 및 아카이브 데이터 저장에 사용됨.구조: 여러 개의 회전 디스크와 이를 읽고 쓰는 헤드로 구성됨.속도: 기계적 회전과 헤드 이동이 필요해 데이터 접근 속도가 상대적으로 느림.용도:대용량 데이터 저장: 영화, 사진 등의 대규모 파일을 저장할 때 유리함.백업 및 아카이브: 데이터가 자주 사용되지 않는 저장소로 활용됨.장점: 가격 대비 용량이 크고 저렴함.단점:기계적 부품이 많아 충격에 약함.속도가 느리고 전력 소모가 큼.2. SSD (Solid State Drive)SSD는 플래시 메모리(반도체)로 구성된 저장 장치로, HDD에 비해 ..

캐시 메모리와 지역성(Locality)

캐시 메모리(Cache Memory)캐시 메모리는 CPU와 메인 메모리(RAM) 사이에 위치한 고속 메모리로, 자주 사용되는 데이터를 임시로 저장해 CPU의 메모리 접근 속도를 향상시킴. 메모리에 직접 접근하는 것보다 빠르게 데이터를 읽을 수 있어 프로세스 실행 속도를 높이는 핵심 역할을 담당함.캐시 메모리의 필요성CPU와 메인 메모리 간의 속도 차이를 줄임.자주 사용되는 명령어나 데이터를 캐시에 저장해 **대기 시간(Latency)**을 최소화함.캐시에 저장된 데이터가 CPU에서 바로 사용 가능하므로, 시스템 성능을 크게 향상시킴.캐시 메모리의 레벨 구성캐시는 속도와 용량의 균형을 위해 여러 계층으로 나뉨.레벨 1 (L1) 캐시CPU 내부에 위치하며, 가장 빠른 속도를 제공함.용량이 작으며, 주로 CP..

메모리 관리 및 주소 변환 (MMU)

1. 메모리 관리 장치(MMU)의 역할**메모리 관리 장치(MMU, Memory Management Unit)**는 CPU가 사용하는 가상 주소를 실제 물리적 메모리 주소로 변환하는 역할을 수행함. 사용자가 접근하는 모든 메모리 주소는 가상 주소로 처리되며, 이 주소는 MMU에 의해 물리 주소로 변환됨.MMU가 필요한 이유:메모리 보호: 각 프로그램이 서로의 메모리에 접근하지 못하게 보호함.가상 메모리 사용: 물리 메모리보다 더 큰 메모리 공간을 사용할 수 있게 함.효율적 메모리 사용: 여러 프로그램이 동시에 실행될 때 메모리를 최적으로 관리.2. 페이징(Paging)페이징은 메모리를 고정된 크기의 블록으로 나누어 관리하는 기법임. 이 고정된 크기의 블록을 **페이지(Page)**라고 부르며, 가상 메모..

폰 노이만 구조와 병목 현상

1. 폰 노이만 구조란?폰 노이만(John von Neumann)이 제안한 컴퓨터 아키텍처로, 현재 대부분의 컴퓨터가 이 구조를 따르고 있음. 프로그램과 데이터를 동일한 메모리 공간에 저장하고, 명령을 순차적으로 처리하는 방식을 특징으로 함.구조의 기본 원리:CPU가 메모리에 저장된 프로그램 명령을 읽어옴.읽어온 명령을 해석하고 연산 수행.처리된 결과를 다시 메모리에 저장하거나 출력 장치로 보냄.구성 요소:메모리: 프로그램 코드와 데이터를 저장함.CPU(중앙 처리 장치): 명령어를 해석하고 계산 수행.입출력 장치(I/O): 사용자와 컴퓨터 간의 데이터 교환을 담당.버스(Bus): 데이터가 CPU, 메모리, I/O 사이를 오가도록 연결하는 통로. 2. 폰 노이만 병목 현상이란?폰 노이만 구조의 문제점 중 ..

하드웨어 구성요소

1. CPU (중앙 처리 장치) – 컴퓨터의 두뇌역할:CPU는 컴퓨터에서 가장 중요한 역할을 함. 명령을 받아들이고 계산을 수행한 뒤 그 결과를 다른 장치로 전달함. 컴퓨터의 뇌와 같음.구성 요소:제어 장치(Control Unit):모든 작업을 언제, 어떻게 수행할지 지시함. 마치 요리사가 조리 과정 순서를 알려주는 것과 같음.산술논리장치(ALU):수학 연산과 논리 연산을 처리함. 덧셈, 뺄셈 같은 계산뿐 아니라 두 수가 같은지 비교하는 작업도 담당함.레지스터(Register):연산 도중에 필요한 데이터를 임시로 저장하는 메모리 공간. 매우 빠른 메모리라 CPU가 바로바로 사용함. 요리사가 손 닿는 곳에 소스를 두는 것과 비슷함.2. 메모리 (Memory) – 조리대와 저장고RAM (Random Acce..

절차지향 객체지향 차이와 이해

1. 절차지향 프로그래밍 (Procedural Programming)개념절차지향 프로그래밍은 순차적 흐름에 따라 작업을 처리하는 방식.프로그램은 여러 함수와 절차(procedure)로 구성되며, 데이터와 함수가 분리되어 있음.특징함수 단위로 프로그램을 나누어 코드를 재사용할 수 있음.코드는 순서대로 실행되며, 명령문들이 선형적인 흐름을 따름.복잡한 프로그램에서는 함수 간 데이터 전달이 많아지고 코드가 복잡해질 수 있음.장점비교적 간단한 프로그램에 적합하며 학습하기 쉬움.특정 작업을 수행하는 함수의 모듈화가 가능함.단점코드가 커질수록 유지보수와 확장에 어려움이 있음.데이터와 함수가 분리되어 있어 데이터 관리가 복잡해질 수 있음.같은 데이터를 처리하는 함수가 여러 곳에 존재하면 중복 코드가 발생할 수 있음...

Computer Science 2024.10.12

자주 사용하는 TypeScript 문법 정리

1. TypeScript 기본 타입 1.기본 타입 선언let age: number = 25;let name: string = "홍길동";let isActive: boolean = true; number, string, boolean 등의 기본 자료형을 명시적으로 선언  2. 배열 타입let numbers: number[] = [1, 2, 3];let names: Array = ["John", "Jane"]; T[] 또는 Array로 배열 선언 가능.  3. 튜플let person: [string, number] = ["홍길동", 30];정해진 차입과 길이로 배열을 선언 4. 열거형 (Enum)enum Direction { Up, Down, Left, Right,}let move: Direction..

Composition API

1. Composition API란?Composition API는 Vue 3에서 도입된 새로운 코드 작성 패턴으로, 기능별로 코드 재사용과 모듈화를 쉽게 할 수 있도록 설계되었음. 기존의 Option API와 달리 setup() 함수 내에서 모든 로직을 정의하며, 여러 상태와 메서드를 하나로 묶어 유연하게 관리할 수 있음. 2. Composition API의 주요 특징유연성: 여러 기능을 setup() 안에 함께 정의할 수 있어 복잡한 상태 관리에 유리함.모듈화: 외부 함수나 파일로 쉽게 분리해 코드 재사용성을 극대화할 수 있음.타입스크립트 친화적: 타입스크립트를 더 잘 지원하여 정적 타입 검사와의 호환성이 좋음.Vue 3 전용: Composition API는 Vue 3에서만 사용 가능함.3. Compo..

Composition API vs Option API

Vue.js에서는 Option API가 오랫동안 기본 사용 방식이었지만, Vue 3에서는 Composition API가 도입되며 새로운 방식의 코드 구조화가 가능해짐. 두 접근 방식은 각각의 장단점이 있으며, 상황에 따라 적합한 방식을 선택하는 것이 중요함. 이 글에서는 Option API와 Composition API의 차이점과 사용 시기, 장단점을 정리함.1. Option APIOption API는 Vue 2부터 사용된 전통적인 방식으로, data, methods, computed 등의 옵션을 사용해 컴포넌트를 구성함. 코드가 명확히 구분되어 있어 초보자에게 이해하기 쉬움. 카운트: {{ count }} 증가 특징:초보자 친화적: 코드가 data, methods, computed 등으..

728x90
반응형