조아마시

쓸모 있는 상세페이지 만들기

웹개발 108

[Vue] nextTick 사용하기

nextTick이란?Vue 3에서 nextTick 메서드는 Vue가 DOM 업데이트를 완료한 후에 특정 코드를 실행하도록 하는 유용한 함수입니다. 즉, Vue가 데이터 변경에 따라 DOM을 렌더링한 후, 그 결과를 바탕으로 추가적인 작업을 수행하고 싶을 때 사용합니다.왜 nextTick이 필요한가요?동기적 DOM 업데이트: Vue는 데이터 변경이 감지되면 DOM을 비동기적으로 업데이트합니다. 하지만 DOM 업데이트가 완료되기 전에 DOM 요소에 접근하려고 하면, 아직 업데이트되지 않은 값을 참조하게 되어 예상치 못한 결과가 발생할 수 있습니다.DOM 조작: DOM을 직접 조작하거나 라이브러리를 사용하여 DOM을 수정하는 경우, Vue가 DOM을 업데이트한 후에 작업을 수행해야 변경 사항이 반영됩니다.주의..

웹개발/vuejs 2024.08.01

[자바스크립트] 자주 사용하는 정규식 표현 모음

영문자 대소문자, 숫자로만 구성let regex = /^[a-zA-Z0-9]+$/;let str = "abc123";console.log(regex.test(str)); // true공백을 포함한 숫자와 대소문자로 구성let regex = /^[a-zA-Z0-9\s]+$/;let str = "Hello World";console.log(regex.test(str)); // true 한글, 대문자, 특수문자, 공백을 포함let regex = /^[가-힣a-zA-Z0-9\s~!@#$%^&*()_+|?:{}\[\];',./]+$/;let str = "안녕하세요! World 123";console.log(regex.test(str)); // true숫자 확인const regex = r"^-?\d+(\.\d+)?..

[Vue] Vue.js 프로젝트에 효율적인 개발을 위한 필수 도구

효율적인 개발을 위한 필수 도구Vue.js 프로젝트를 개발하다 보면, 핵심 기능 외에도 다양한 기능을 추가하기 위해 외부 라이브러리를 활용하게 됩니다. 이번 글에서는 Vue.js 프로젝트에서 자주 사용되는 유용한 라이브러리들을 소개하고, 각 라이브러리의 주요 기능과 활용 사례를 간략하게 설명해 드리겠습니다.Vuetify는 Vue.js를 위한 강력하고 아름다운 UI 라이브러리입니다. Google의 Material Design을 기반으로 만들어져 일관된 디자인 시스템을 제공하며, 다양한 컴포넌트와 기능을 통해 빠르고 효율적으로 Vue.js 애플리케이션의 UI를 구축할 수 있도록 돕습니다. Axios는 자바스크립트에서 서버와 통신하기 위해 사용되는 HTTP 클라이언트 라이브러리입니다. 특히 Vue.js와 같은..

웹개발/vuejs 2024.08.01

[Vue] vue3-lottie 사용하기

Vue3-Lottie는 Vue 3 프로젝트에서 Lottie 애니메이션을 쉽게 사용할 수 있도록 도와주는 컴포넌트 라이브러리입니다. Lottie는 Adobe After Effects에서 제작된 애니메이션을 JSON 형식으로 변환하여 웹에서 가볍고 빠르게 재생할 수 있도록 해주는 기술입니다. Vue3-Lottie는 이러한 Lottie 애니메이션을 Vue 3 컴포넌트로 감싸, 개발자가 Vue 컴포넌트처럼 간편하게 애니메이션을 관리하고 제어할 수 있도록 지원합니다.왜 Vue3-Lottie를 사용해야 할까요?간편한 통합: Vue 3 프로젝트에 Lottie 애니메이션을 손쉽게 추가하고 관리할 수 있습니다.다양한 기능 지원: Lottie 애니메이션의 모든 기능을 지원하며, 추가적인 옵션을 통해 애니메이션을 커스터마이..

웹개발/vuejs 2024.08.01

[자바스크립트] Debounce와 Throttle의 차이점

자바스크립트에서 자주 사용되는 Debounce와 Throttle은 이벤트 처리 방식을 조절하여 성능을 향상시키고 사용자 경험을 개선하는 데 사용되는 기법입니다. 둘 다 연속적으로 발생하는 이벤트를 제한하지만, 작동 방식에 차이가 있습니다.Debounce (디바운스)정의: 일정 시간 동안 이벤트가 발생하지 않으면 한 번만 함수를 실행합니다. 즉, 연속적인 이벤트를 무시하고 마지막 이벤트만 처리합니다.예시:검색창에 입력할 때마다 검색 요청을 보내는 대신, 사용자가 입력을 멈춘 후 일정 시간이 지나서 한 번만 검색 요청을 보냅니다.창 크기를 조정할 때마다 레이아웃을 다시 계산하는 대신, 사용자가 창 크기를 조정을 멈춘 후에 한 번만 레이아웃을 다시 계산합니다.장점:불필요한 이벤트 처리를 줄여 성능을 향상시킵니..

[자바스크립트] 네이밍 규칙

get/set 활용 변수명 예시getter와 setter는 자바스크립트 객체의 프로퍼티에 대한 접근을 제어하고, 데이터 처리 과정에서 다양한 로직을 추가할 수 있는 강력한 기능입니다. 이러한 getter와 setter를 효과적으로 활용하기 위해서는 명확하고 일관된 네이밍 규칙을 따르는 것이 중요합니다.get/set 네이밍 규칙 예시gettergetName(), getAge(), getIsAdmin()해당 프로퍼티의 값을 가져올 때 사용하는 메서드입니다. 일반적으로 'get' 뒤에 명사를 붙여 사용합니다.settersetName(newName), setAge(newAge), setIsAdmin(newState)해당 프로퍼티의 값을 설정할 때 사용하는 메서드입니다. 일반적으로 'set' 뒤에 명사를 붙여 사..

[자바스크립트] 클로저(Closure) 이해하기

클로저는 마치 함수를 특별한 상자에 담아 놓은 것 같다고 생각하면 됩니다. 상자 안에는 함수뿐만 아니라, 함수가 생성되었을 때의 변수값까지 함께 담겨 있습니다. 덕분에 상자 안에 담긴 함수는 언제 어디서 호출되더라도 생성 당시의 변수값을 사용할 수 있는 특별한 능력을 가지게 됩니다.좀 더 자세히 설명하자면, 클로저는 다음과 같은 특징을 가지고 있습니다.함수와 렉시컬 환경의 조합: 클로저는 단순한 함수가 아닌, 함수가 선언되었을 때의 변수값까지 포함하고 있습니다. 이 변수값들을 렉시컬 환경이라고 합니다.외부 변수에 대한 접근: 클로저 안의 함수는 외부 함수의 렉시컬 환경에 있는 변수에 접근할 수 있습니다. 쉽게 말해, 상자 안에 담긴 함수는 상자 밖에 있는 변수들을 사용할 수 있다는 뜻입니다.지속적인 유지..

[Vue] Vue3에서 onBeforeMount() 훅 사용 가이드

onBeforeMount()는 Vue 3에서 컴포넌트가 DOM에 마운트되기 직전에 호출되는 생명주기 훅입니다. 컴포넌트 렌더링을 위한 최종 준비 단계 역할을 수행하며, 다음과 같은 다양한 작업에 활용될 수 있습니다.1. 데이터 초기화:컴포넌트 마운트 이전에 필요한 데이터를 초기화하는 데 사용됩니다.API 호출, 변수 설정, 상태 관리 등을 수행할 수 있습니다.주의 사항: mounted 훅 이후에 데이터를 변경하면 렌더링되지 않으므로 주의해야 합니다.2. DOM 요소 조작:마운트되기 직전에 DOM 요소를 조작해야 하는 경우 사용됩니다.스타일 설정, 요소 추가/삭제, 이벤트 리스너 등록 등을 수행할 수 있습니다.주의 사항: 직접적인 DOM 조작은 성능 저하를 초래할 수 있으므로 신중하게 사용해야 합니다.3...

웹개발/vuejs 2024.07.30

[Vue] Vue3에서 onMounted() 훅 사용 가이드

onMounted()는 Vue 3에서 컴포넌트가 DOM에 완전히 마운트되고 렌더링된 후 호출되는 생명주기 훅입니다. 컴포넌트가 사용자와 상호 작용하기 준비된 시점이며, 다음과 같은 다양한 작업에 활용될 수 있습니다.1. DOM 요소 조작:마운트된 DOM 요소에 대한 조작이 필요한 경우 사용됩니다.스타일 동적 적용, 요소 크기 조정, 애니메이션 실행 등을 수행할 수 있습니다.주의 사항: 과도한 DOM 조작은 성능 저하를 초래할 수 있으므로 필요한 작업만 수행해야 합니다.2. 이벤트 리스너 등록:컴포넌트 내 DOM 요소에 이벤트 리스너를 등록하는 데 사용됩니다.클릭, 마우스 오버, 스크롤 등 사용자 상호 작용을 감지하고 처리할 수 있습니다.주의 사항: 이벤트 리스너는 메모리 누수를 유발할 수 있으므로 사용하..

웹개발/vuejs 2024.07.30

[Vue] Vue3에서 onBeforeUpdate() 훅 사용 가이드

onBeforeUpdate()는 Vue 3에서 컴포넌트의 반응형 데이터가 업데이트되고 DOM을 다시 렌더링하기 직전에 호출되는 생명주기 훅입니다. 컴포넌트 상태 변화에 따른 DOM 업데이트를 준비하는 데 사용되며, 다음과 같은 다양한 작업에 활용될 수 있습니다.1. 데이터 변화 감지 및 처리:컴포넌트의 반응형 데이터가 변경된 부분을 감지하고 처리하는 데 사용됩니다.변경된 데이터에 따라 계산된 속성을 업데이트하거나, 로직을 실행할 수 있습니다.주의 사항: 직접적인 DOM 조작은 피하고, onUpdated 훅에서 수행하는 것이 좋습니다.2. 조건부 렌더링 로직 구현:반응형 데이터 값에 따라 렌더링될 DOM 요소를 조건적으로 제어하는 데 사용됩니다.v-if, v-else, v-for와 같은 지시문과 함께 사용..

웹개발/vuejs 2024.07.30

[자바스크립트] 자바스크립트 객체 합치는 다양한 방법

자바스크립트에서 객체를 합치는 방법은 다양합니다. 각 방법마다 장단점이 있으므로, 상황에 맞게 적절한 방법을 선택하는 것이 중요합니다.1. Object.assign()기본적인 객체 병합: 기존 객체를 변경하면서 새로운 객체의 프로퍼티를 추가합니다.얕은 복사: 중첩된 객체는 참조만 복사되므로 주의해야 합니다.사용법:const obj1 = { a: 1, b: 2 };const obj2 = { c: 3, d: 4 };const mergedObj = Object.assign({}, obj1, obj2);console.log(mergedObj); // { a: 1, b: 2, c: 3, d: 4 } 2. Spread 연산자 (...)객체 리터럴에서 사용: 새로운 객체를 생성하면서 기존 객체의 프로퍼티를 펼쳐 넣습..

[Vue] Vue3에서 slot 사용하기

Slot은 부모 컴포넌트에서 자식 컴포넌트로 콘텐츠를 전달하는 방법입니다. 부모 컴포넌트는 Slot을 정의하고, 자식 컴포넌트는 이 Slot에 콘텐츠를 채워 넣을 수 있습니다. 이를 통해 컴포넌트를 더욱 유연하게 만들고, 재사용성을 높일 수 있습니다.Composition API에서 Slot 사용하기Composition API에서 Slot을 사용하는 방법은 다음과 같습니다.template에서 Slot 정의:template 옵션에서 태그를 사용하여 Slot을 정의합니다.Slot에 이름을 지정하여 다양한 Slot을 관리할 수 있습니다.setup 함수에서 Slot 전달:setup 함수에서 Slot을 props처럼 자식 컴포넌트로 전달합니다.withDefaults 함수를 사용하여 기본값을 설정할 수 있습니다.실..

웹개발/vuejs 2024.07.30

[Vue] Vue3에서 사용자 훅 만들기

Vue 3의 Composition API를 이용하면 재사용 가능한 로직을 훅(hook) 형태로 만들어 컴포넌트 간에 공유할 수 있습니다. 이는 코드 재사용성을 높이고, 컴포넌트를 더욱 모듈화하여 관리하기 쉽게 만듭니다.왜 사용자 훅을 만들어야 할까요?코드 재사용성 증가: 여러 컴포넌트에서 공통적으로 사용되는 로직을 한 번만 작성하여 재사용할 수 있습니다.컴포넌트 복잡도 감소: 컴포넌트 내 로직을 작은 단위의 훅으로 분리하여 관리하기 쉬워집니다.테스트 용이성 향상: 각 훅을 독립적으로 테스트할 수 있어 컴포넌트 전체를 테스트하는 것보다 효율적입니다.더 나은 코드 가독성: 복잡한 로직을 작은 단위의 함수로 분리하여 코드를 더 명확하게 작성할 수 있습니다.사용자 훅 만드는 방법새로운 파일 생성: hooks 폴..

웹개발/vuejs 2024.07.30

[Vue] VeeValidate 사용 가이드

VeeValidate는 Vue.js 애플리케이션에서 폼 유효성 검사를 쉽고 간편하게 수행할 수 있도록 도와주는 강력한 라이브러리입니다. Composition API와 결합하여 더욱 유연하고 재사용 가능한 폼 유효성 검사 로직을 구축할 수 있습니다.설치하기npm install vee-validate 기본 사용법1. Vue 프로젝트에 추가하기import { createApp } from 'vue';import { Form, Field, ErrorMessage } from 'vee-validate';import { required, email } from '@vee-validate/rules';createApp({ // ...}).mount('#app');2. 폼 구성하기 Form 컴포넌..

웹개발/vuejs 2024.07.30

[자바스크립트] Yup 사용하기

Yup은 자바스크립트에서 데이터 유효성 검사를 간편하고 효율적으로 수행할 수 있도록 도와주는 라이브러리입니다. 특히, 폼 데이터의 유효성을 검증하는 데 많이 사용됩니다.왜 Yup을 사용해야 할까요?간결한 코드: 복잡한 유효성 검사 로직을 직접 작성하는 대신, Yup의 제공하는 다양한 검사 규칙을 조합하여 간결하게 표현할 수 있습니다.재사용 가능한 스키마: 한 번 정의한 스키마를 여러 곳에서 재사용할 수 있어 코드 중복을 줄이고 유지보수를 용이하게 합니다.타입스크립트와의 호환성: 타입스크립트와의 통합이 잘 되어 있어 강력한 타입 안전성을 제공합니다.다양한 검사 규칙: 문자열 길이 제한, 숫자 범위, 필수 입력 여부 등 다양한 유형의 검사 규칙을 제공합니다.커스텀 검사 규칙: 기본 제공되는 규칙 외에도 사용..

[자바스크립트] 커링(currying)

커링은 다수의 인자를 받는 함수를 단일 인자를 받는 함수들로 변환하는 기법입니다. 쉽게 말해, 하나의 함수를 여러 개의 함수로 쪼개서 사용하는 것이라고 생각하면 됩니다. 이렇게 쪼개진 각각의 함수는 이전 함수의 결과를 기억하고 다음 인자를 기다리는 형태로 작동합니다.왜 커링을 사용할까요?함수의 재사용성 증가: 부분적으로 적용된 함수를 만들어 다양한 상황에 활용할 수 있습니다.코드 가독성 향상: 복잡한 함수를 작은 단위의 함수로 나누어 코드를 더 명확하게 만들 수 있습니다.함수형 프로그래밍 패러다임: 함수를 데이터처럼 다루는 함수형 프로그래밍에서 중요한 개념입니다.파이프라인 구축: 함수를 연결하여 데이터 처리 과정을 표현하기 좋습니다.예시를 통해 알아보기// 일반적인 함수function sum(a, b, ..

[자바스크립트] Rest 연산자 (Rest Operator)

Rest 연산자는 스프레드 연산자와 마찬가지로 ... 세 개의 점을 사용하지만, 그 역할은 정반대입니다. 스프레드 연산자가 배열이나 객체를 펼쳐서 개별 요소로 만드는 반면, Rest 연산자는 여러 개의 인수를 하나의 배열로 모읍니다. 즉, 나머지 인수들을 모아서 배열로 만들어주는 역할을 합니다.function 함수명(...변수명) { // 변수명은 배열 형태로 전달된 나머지 인수들을 담게 됩니다.}Rest 연산자 사용 예시1. 가변 인자 함수function sum(...numbers) { return numbers.reduce((total, num) => total + num, 0);}const result = sum(1, 2, 3, 4, 5); // 15함수에 전달되는 인자의 개수가 정해지지 않을 ..

[자바스크립트] Spread 연산자 (Spread Operator)

스프레드 연산자는 배열이나 객체를 개별 요소로 펼쳐서 새로운 배열이나 객체를 생성하거나, 함수의 인수로 전달하는 데 사용되는 연산자입니다. 쉽게 말해, 하나의 집합을 개별 구성 요소로 흩뿌리는 역할을 합니다....iterableiterable: 배열, 문자열, arguments 객체 등 반복 가능한 객체스프레드 연산자 사용 예시1. 배열 결합const array1 = [1, 2, 3];const array2 = [4, 5, 6];const combinedArray = [...array1, ...array2]; // [1, 2, 3, 4, 5, 6]두 개의 배열을 하나의 새로운 배열로 합칠 때 사용합니다.2. 배열 복사const originalArray = [1, 2, 3];const copiedArray..

[자바스크립트] 연산자 (Operators)

산술 연산자 (Arithmetic Operators)let a = 5;let b = 2;a + b; // 덧셈: 5 + 2 = 7a - b; // 뺄셈: 5 - 2 = 3a * b; // 곱셈: 5 * 2 = 10a / b; // 나눗셈: 5 / 2 = 2.5a % b; // 나머지: 5를 2로 나눈 나머지 1a ** b; // 제곱: 5의 2승, 즉 5 * 5 = 25'1' + 1; // '11''11' - 2; // 9'11' * 2; // 22'11' / 2; // 5.5'11' % 2; // 1'11' > 10; // true 할당 연산자 (Assignment Operators)let x = 10;// x에 5를 더하고, 결과를 다시 x에 할당x += 5; // x는 이제 15가 됩니다.// x에..

[자바스크립트] 자바스크립트 6가지 false 값 자세히 알아보기

자바스크립트에서 조건문이나 논리 연산에서 거짓(false)으로 평가되는 값들을 falsy 값이라고 합니다. 이러한 falsy 값들을 정확히 이해하는 것은 자바스크립트를 효과적으로 사용하기 위해 매우 중요합니다.6가지 falsy 값false:논리형 값 false 자체는 당연히 falsy 값입니다.null:객체를 참조하지 않는 값으로, 아무것도 없는 상태를 나타냅니다.undefined:아직 값이 할당되지 않은 변수나 존재하지 않는 객체의 프로퍼티를 참조할 때 나타나는 값입니다.0:숫자 0은 falsy 값입니다.NaN:Not a Number의 약자로, 숫자가 아닌 값을 나타냅니다. 예를 들어, 숫자가 아닌 문자열을 숫자로 변환하려고 할 때 발생합니다."" (빈 문자열):아무런 문자가 없는 빈 문자열도 fals..

728x90