조아마시

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

분류 전체보기 130

[자바스크립트] Logical AND/OR 할당

자바스크립트에서 논리 연산자인 AND(&&)와 OR(||)은 단순히 참/거짓을 판단하는 것뿐만 아니라, 변수에 값을 할당하는 데에도 활용될 수 있습니다. 이를 논리 AND/OR 할당이라고 합니다.기본 개념AND(&&) 할당: 왼쪽 피연산자가 falsy 값(false, 0, "", null, undefined, NaN)이면 왼쪽 피연산자를 그대로 반환하고, truthy 값이면 오른쪽 피연산자를 반환합니다.OR(||) 할당: 왼쪽 피연산자가 truthy 값이면 왼쪽 피연산자를 그대로 반환하고, falsy 값이면 오른쪽 피연산자를 반환합니다.let a = 0;let b = 10;let c;// AND 할당c = a && b; // c는 0 (a가 falsy이므로 a를 반환)// OR 할당c = a || b;..

[자바스크립트] 지수 연산자

지수 연산자 (**)는 좌측 피연산자를 밑으로, 우측 피연산자를 지수로 하는 거듭제곱 연산을 수행하는 연산자입니다. 즉, 밑을 지수만큼 곱한 값을 계산합니다.문법: base ** exponent예시: 2 ** 3은 2를 3번 곱한 값인 8을 의미합니다.왜 지수 연산자가 필요할까요?간결한 표현: Math.pow() 함수를 사용하는 것보다 더 간결하게 거듭제곱을 표현할 수 있습니다.가독성 향상: 수학적인 표현과 유사하여 코드의 가독성을 높입니다.지수 연산자 사용 예시// 기본적인 사용법let result = 2 ** 3; // result는 8console.log(result);// 큰 수 계산let bigNumber = 10 ** 10; // 10의 10승console.log(bigNumber);// 소수..

[자바스크립트] 템플릿 리터럴

템플릿 리터럴은 ES6에서 도입된 새로운 문자열 표현 방식으로, 기존의 따옴표('' 또는 "") 대신 백틱(``)을 사용하여 문자열을 감싸는 방식입니다. 템플릿 리터럴은 단순한 문자열뿐만 아니라, 변수나 표현식을 직접 문자열 안에 삽입하여 더욱 유연하고 가독성 높은 문자열을 만들 수 있도록 해줍니다.템플릿 리터럴의 특징백틱 사용: 템플릿 리터럴은 백틱(``)으로 감싸집니다.여러 줄 문자열: 줄 바꿈을 포함한 여러 줄의 문자열을 간편하게 작성할 수 있습니다.표현식 삽입: ${expression} 형태로 변수나 표현식을 문자열 안에 직접 삽입할 수 있습니다.태그 함수: 템플릿 리터럴 앞에 함수를 붙여 문자열 처리를 커스터마이징할 수 있습니다.템플릿 리터럴 사용 예시let name = '홍길동';let age..

[자바스크립트] 비구조화 할당

비구조화 할당(Destructuring assignment)은 배열이나 객체에서 값을 추출하여 변수에 할당하는 간결하고 효율적인 방법입니다. 기존에는 반복문이나 인덱스를 사용하여 값에 접근했지만, 비구조화 할당을 사용하면 한 번에 여러 값을 변수에 할당할 수 있어 코드를 더욱 간결하게 만들 수 있습니다.비구조화 할당의 장점코드 가독성 향상: 복잡한 객체 구조에서 필요한 값만 추출하여 사용할 수 있어 코드를 더욱 명확하게 만들 수 있습니다.개발 생산성 향상: 반복적인 코드를 줄이고, 간결한 문법으로 값을 할당할 수 있어 개발 효율을 높입니다.함수 파라미터: 함수의 파라미터로 비구조화 할당을 사용하여 객체를 해체하고 값을 추출할 수 있습니다.배열, 객체에서 값 추출: 배열이나 객체에서 원하는 값만 선택적으로..

[자바스크립트] 모듈 시스템

자바스크립트 모듈 시스템은 코드를 작은 단위로 분리하여 관리하고 재사용성을 높이는 시스템입니다. 마치 레고 블록처럼 각 모듈을 독립적인 기능 단위로 만들어 필요에 따라 조립하여 사용할 수 있습니다. 이를 통해 코드의 복잡성을 줄이고 유지보수를 용이하게 만들 수 있습니다.왜 모듈 시스템이 필요한가요?코드 재사용성: 한 번 작성한 코드를 여러 곳에서 재사용할 수 있어 개발 생산성을 높입니다.코드 관리 용이성: 코드를 작은 단위로 분리하여 관리하기 때문에 코드의 복잡성을 줄이고, 특정 부분만 수정해야 할 경우 다른 부분에 영향을 미칠 가능성을 줄입니다.협업 효율 증대: 여러 개발자가 각자 모듈을 개발하여 합칠 수 있으므로 협업이 용이합니다.의존성 관리: 모듈 간의 의존성을 명확히 관리하여 예상치 못한 문제 발..

[자바스크립트] 숫자 구분자

자바스크립트 숫자 구분자(Numeric separator)는 긴 숫자를 읽기 쉽게 만들기 위해 숫자 사이에 언더바(_)를 삽입하는 기능입니다. 특히 큰 숫자를 다룰 때 유용하며, 코드의 가독성을 향상시키는 데 도움을 줍니다.왜 숫자 구분자가 필요할까요?가독성 향상: 긴 숫자를 끊어서 표현하여 숫자를 더 쉽게 인식할 수 있도록 합니다.오류 감소: 숫자를 입력하거나 복사할 때 발생할 수 있는 오타를 줄여줍니다.국제적인 표기 방식: 많은 국가에서 숫자를 3자리마다 쉼표(,)로 구분하는 표기법을 사용합니다. 숫자 구분자는 이러한 국제적인 표기 방식과 유사합니다.숫자 구분자 사용 예시// 숫자 구분자 사용const billion = 1_000_000_000;console.log(billion); // 100000..

[자바스크립트] 축약 속성 이름

축약 속성 이름(Shorthand property names)은 객체 리터럴을 생성할 때 변수 이름과 프로퍼티 이름이 동일한 경우, 반복적인 코드를 줄여 간결하게 표현하는 방법입니다. 즉, 변수 이름을 한 번만 작성해도 해당 변수의 값이 프로퍼티의 값으로 자동 할당됩니다.왜 축약 속성 이름을 사용해야 할까요?코드 가독성 향상: 중복되는 코드를 줄여 코드를 더 깔끔하게 만들 수 있습니다.개발 생산성 향상: 반복적인 코드 작성을 줄여 개발 속도를 높일 수 있습니다.축약 속성 이름 사용 예시// 일반적인 방법const name = '홍길동';const age = 30;const person = { name: name, age: age};// 축약 속성 이름 사용const name2 = '홍길동';const..

[자바스크립트] 구조 분해 할당

구조 분해 할당(Destructuring assignment)은 배열이나 객체에서 값을 추출하여 변수에 할당하는 간편한 방법입니다. 기존에는 반복문이나 인덱스를 사용하여 값에 접근했지만, 구조 분해 할당을 사용하면 한 번에 여러 값을 변수에 할당할 수 있어 코드를 더욱 간결하게 만들 수 있습니다.왜 구조 분해 할당을 사용해야 할까요?코드 가독성 향상: 복잡한 객체 구조에서 필요한 값만 추출하여 사용할 수 있어 코드를 더욱 명확하게 만들 수 있습니다.개발 생산성 향상: 반복적인 코드를 줄이고, 간결한 문법으로 값을 할당할 수 있어 개발 효율을 높입니다.함수 파라미터: 함수의 파라미터로 구조 분해 할당을 사용하여 객체를 해체하고 값을 추출할 수 있습니다.배열, 객체에서 값 추출: 배열이나 객체에서 원하는 값..

[자바스크립트] 전개 연산자

자바스크립트 전개 연산자(...)는 배열이나 객체의 요소를 개별 요소로 펼쳐서 사용할 수 있도록 해주는 문법입니다. 마치 배열이나 객체를 "펼쳐서" 다른 곳에 넣는 것처럼 생각하면 쉽습니다.왜 전개 연산자를 사용해야 할까요?코드 간결화: 반복적인 코드를 줄이고 더 간결하게 표현할 수 있습니다.유연성 향상: 다양한 상황에서 배열이나 객체를 조작하는 방식을 확장할 수 있습니다.가독성 향상: 코드의 의도를 명확하게 전달하여 가독성을 높일 수 있습니다.전개 연산자 사용법배열 전개배열 복사:const numbers = [1, 2, 3];const copiedNumbers = [...numbers];배열 병합:const array1 = [1, 2];const array2 = [3, 4];const combinedA..

[자바스크립트] 논리 널 병합 할당. ??

논리 널 병합 할당(Logical nullish assignment)은 null 또는 undefined인 값에 대해서만 할당을 수행하는 새로운 할당 연산자입니다. 기존의 할당 연산자(=)와 비슷하지만, 왼쪽 피연산자가 null 또는 undefined일 때만 오른쪽 피연산자의 값을 할당합니다.왜 논리 널 병합 할당을 사용해야 할까요?간결한 코드: 기존의 if 문이나 삼항 연산자를 사용하여 null 또는 undefined 값을 처리하는 코드를 더욱 간결하게 작성할 수 있습니다.명확한 로직: 코드의 의도를 명확하게 드러내어 가독성을 높입니다.기본값 설정: 변수에 기본값을 설정할 때 유용하게 활용할 수 있습니다.논리 널 병합 할당 사용법let x;x ||= 10; // x가 null 또는 undefined일 때..

[Nextjs] Image 사용하기

Next.js Image 컴포넌트는 Next.js 애플리케이션에서 이미지를 관리하고 최적화하는 가장 간단하고 효율적인 방법입니다. 이미지 형식, 크기, 해상도를 자동으로 조정하여 페이지 로딩 속도를 향상시키고, SEO에 도움을 줄 수 있습니다.왜 Next.js Image를 사용해야 할까요?자동 최적화: 이미지 형식, 크기, 해상도를 사용자의 기기와 네트워크 환경에 맞춰 자동으로 조정합니다.차세대 이미지 포맷 지원: AVIF, WebP 등 차세대 이미지 포맷을 지원하여 이미지 품질을 유지하면서 파일 크기를 줄일 수 있습니다.Lazy Loading: 필요한 이미지만 로드하여 초기 페이지 로딩 속도를 향상시킵니다.Next.js와의 완벽한 통합: Next.js의 이미지 경로를 자동으로 처리하고, Server-S..

웹개발/nextjs 2024.07.28

[Vue] Vue3에서 watch와 watchEffect 비교 알아보기

Vue3에서 reactive 데이터 변화를 감지하고 반응하는 데 사용되는 두 가지 주요 방법인 watch와 watchEffect에 대한 차이점을 살펴보겠습니다.1. 기본 동작:watch: 특정 reactive 값을 명시적으로 감시하고 해당 값이 변경될 때 콜백 함수를 실행합니다. 이전 값과 현재 값을 모두 콜백 함수에 제공합니다.watchEffect: 콜백 함수 내부에서 사용되는 모든 reactive 의존성을 자동으로 추적합니다. 명시적인 값 지정 없이 변화에 반응합니다. 콜백 함수에는 현재 값만 제공됩니다.2. 사용 시나리오:watch:이전 값과 현재 값을 모두 사용하여 계산해야 하는 경우특정 reactive 값에만 반응해야 하는 경우코드 간 명확성을 위해 의도적으로 값을 지정하고 싶은 경우watchE..

웹개발/vuejs 2024.07.22

[자바스크립트] 실행 컨텍스트 (Execution Context) 이해하기

자바스크립트 실행 컨텍스트는 코드 실행 환경을 의미하며, 다음과 같은 요소들로 구성됩니다.변수: 실행 컨텍스트 내에서 선언된 변수에 대한 정보를 저장합니다. 변수 이름, 값, 속성 등이 포함됩니다.함수: 실행 컨텍스트 내에서 선언된 함수에 대한 정보를 저장합니다. 함수 이름, 코드, 매개변수, 반환 값 등이 포함됩니다.this 객체: 실행 컨텍스트에서 활성화된 객체를 가리킵니다. 메서드 호출 시 this는 호출된 객체를 의미하며, 일반 함수 호출 시 this는 전역 객체를 의미합니다. 스코프 : 변수와 함수가 유효한 범위를 정의합니다. 자바스크립트에는 블록 스코프와 함수 스코프 두 가지가 존재합니다.실행 컨텍스트 생성 과정스크립트 실행 시, 전역 실행 컨텍스트가 하나 생성됩니다.함수가 호출될 때마다, 해..

[자바스크립트] 렉시컬 스코프 (Lexical Scope) 완벽 가이드

1. 렉시컬 스코프란 무엇인가?렉시컬 스코프는 코드 작성 위치에 따라 변수와 함수의 유효 범위를 결정하는 방식입니다. 즉, 변수나 함수를 사용하려면 해당 코드가 선언된 위치를 고려해야 합니다.렉시컬 스코프는 다음과 같은 특징을 가집니다.정적 스코프라고도 불립니다. 컴파일 시 코드 분석을 통해 스코프 체인을 결정하기 때문에, 실행 과정에서 동적으로 변하지 않습니다.블록 스코프와 함수 스코프를 포함합니다.let, const, function 키워드를 사용하여 변수와 함수를 선언할 때 적용됩니다.2. 렉시컬 스코프 vs. 다이내믹 스코프다이내믹 스코프는 변수나 함수를 사용하는 위치에 따라 유효 범위를 결정하는 방식입니다. 즉, 변수나 함수를 사용하는 코드가 실행되는 순간에 해당 변수나 함수의 유효 범위를 판단..

[자바스크립트] 스코프 (Scope) 완벽 정리

1. 스코프란 무엇인가?스코프는 변수와 함수가 유효한 범위를 정의하는 개념입니다. 즉, 어떤 코드 블록에서 어떤 변수와 함수를 사용할 수 있는지 결정합니다.자바스크립트에는 두 가지 주요 스코프 유형이 있습니다.블록 스코프: let과 const 키워드를 사용하여 선언된 변수의 유효 범위는 해당 변수가 선언된 블록 안에 국한됩니다.함수 스코프: 함수의 매개변수와 함수 내에서 선언된 변수는 해당 함수 안에서만 유효합니다.2. 블록 스코프let과 const 키워드를 사용하여 선언된 변수는 블록 스코프를 따릅니다.let 키워드: 블록 안에서 재선언 및 재할당이 가능합니다.const 키워드: 블록 안에서 재선언 불가능하며, 선언 시 반드시 값을 초기화해야 합니다.if (true) { let message = 'H..

[자바스크립트] 리터럴 (Literal) - 숫자, 문자열, 불리언, 객체, 배열

리터럴 (Literal) 이해하기리터럴은 프로그래밍 코드에서 직접적인 값을 나타내는 표현입니다. 변수에 저장하거나 연산에 사용하거나 함수의 인자로 전달할 수 있습니다. 리터럴은 다음과 같은 종류로 나눌 수 있습니다.1. 숫자 리터럴:10진수: 123, 4.5, -20.38진수: 0765, 0.12316진수: 0xFF, 0xCAFEBABE부동소수점 리터럴: 3.14159, 2.71828const num1 = 10;const num2 = 3.14;const num3 = 0xFF;2. 문자열 리터럴:작은 따옴표('') 또는 큰 따옴표("")로 묶인 문자열따옴표 안에 포함될 수 있는 특수 문자는 백슬래시()로 이스케이프 처리합니다.const str1 = 'Hello, world!';const str2 = "Th..

[자바스크립트] this 키워드 / call(), apply(), bind() 메서드

this 키워드객체 내부에서 사용될 때: this는 해당 객체 자신을 가리킵니다.함수 내에서 사용될 때: this의 값은 함수가 어떻게 호출되었는지에 따라 달라집니다.메서드로 호출될 때: this는 호출한 객체를 가리킵니다.일반 함수로 호출될 때: this는 window 객체를 가리킵니다.생성자 함수로 호출될 때: this는 생성된 객체를 가리킵니다.이벤트 핸들러 내에서 사용될 때: this는 이벤트가 발생한 요소를 가리킵니다.call() 메서드함수의 call() 메서드는 함수를 호출하고, 첫 번째 인자로 this를 지정할 수 있습니다.두 번째 인자부터는 함수에 전달할 인자를 나열합니다.function greet(greeting, name) { console.log(`${greeting}, ${this..

[자바스크립트] 변수 const / let / var

자바스크립트에서 변수를 선언하는 방법은 크게 세 가지가 있습니다: const, let, var. 각 방식마다 변수의 특성과 용도가 다르기 때문에 상황에 맞게 적절하게 선택하는 것이 중요합니다.1. const상수 선언: const 키워드는 변수값을 변경할 수 없는 상수로 선언합니다. 한 번 선언된 값은 절대로 바꿀 수 없으며, 선언하지 않고 사용하려 하면 에러가 발생합니다.호이스팅: const 변수도 호이스팅이 발생하지만, 선언되지 않은 변수처럼 undefined 값으로 초기화되지 않고 선언 블록까지 참조할 수 없습니다.블록 범위: const 변수는 선언된 블록 범위 내에서만 유효합니다. 예를 들어, if 문이나 for 루프 안에서 const 변수를 선언하면 해당 블록 밖에서는 사용할 수 없습니다.사용 예..

[Vue] Vue3 defineExpose 사용 가이드

defineExpose는 Vue 3에서 자식 컴포넌트의 API를 부모 컴포넌트에 직접적으로 공개하는 강력한 기능입니다. 기존의 props, emit 방식보다 더 효율적이고 유연한 데이터 전달 방식을 제공하며, 컴포넌트 간의 코드 재사용성을 높여줍니다. 1. defineExpose 기본 원리defineExpose는 자식 컴포넌트의 setup() 함수 내에서 사용됩니다. 객체를 인수로 받아, 공개하고 싶은 컴포넌트 내부 API를 키-값 쌍 형태로 정의합니다.자식 컴포넌트 (ChildComponent.vue)import { defineExpose } from 'vue';export default { setup() { const data = ref('초기 데이터'); const addData = (..

웹개발/vuejs 2024.07.20

Vue 3 및 Router 4 기초부터 상세 가이드

Vue 3 소개Vue 3는 프론트엔드 웹 개발을 위한 JavaScript 라이브러리입니다. 2020년 9월에 출시된 최신 버전은 TypeScript 지원, Composition API, Reactivity API 등 여러가지 개선 사항을 제공합니다. Vue 3는 가볍고 사용하기 쉽고, 배우기 쉬우면서도 강력하고 유연한 프레임워크로 평가받고 있습니다.Vue Router 4 소개Vue Router 4는 Vue 3와 함께 사용되는 공식 라우팅 라이브러리입니다. SPA(Single Page Application) 구축에 필수적인 기능을 제공하며, URL 변경에 따라 동적으로 뷰를 렌더링하고, 라우트 간 이동을 관리하는 역할을 합니다.Vue 3 & Router 4 사용 장점SPA 구축: 페이지 이동 없이 URL ..

웹개발/vuejs 2024.07.20
728x90