env 파일env 파일은 환경 변수를 정의하고 관리하기 위한 파일입니다. 개발 환경, 테스트 환경, 운영 환경 간의 설정값을 분리하여 사용합니다.환경변수 작성법API_URL=https://test.comNEXT_PUBLIC_APP_NAME=DEV_APP런타임 시에 값을 가져와야 할 경우는 NEXT_PUBILC_ 라고 시작해야 합니다.Next.js에서 env 파일 우선 순위.env.local.env.[NODE_ENV].local.env.[NODE_ENV].env[NODE_ENV]에 들어올 수 있는 값은 production, development, test 그 외에 staging 등등만약 동일한 환경변수가 각 파일마다 있다고 가정했을 때 최종 .env.local 파일에 있는 환경변수로 덮어쓰여집니다.실행 &..
setInterval과 requestAnimationFrame의 차이두 메서드보다 자바스크립트 내에서 반복 작업을 실행할 때 사용되는 주요 메서드입니다. 그러나 둘은 동작 방식, 성능, 사용 목적이 다릅니다.setInterval지정된 시간 간격마다 콜백 함수를 반복 실행하는 메서드고정된 간격: 일정한 시간 간격마다 콜백 함수 실행타이머 지연: 브라우저가 많은 작업을 처리하고 있을 때 타이머가 딜레이 될 수도 있다CPU 사용: 브라우저가 바쁘거나 해당 브라우저 탭을 비활성화 하더라도 계속 작동사용 용도: 주기적으로 특정 작업 실행 (서버 폴링, 시계 업데이트) 주로 데이터 처리 & 작업에 용이함setInterval(() => { console.log("1초마다 실행");}, 1000);requestAni..
타입 단언은 타입스크립트의 타입 추론에 기대지 않고 개발자가 직접 타입을 명시하여 타입을 강제로 주입하는 것을 의미합니다.타입 단언의 장점컴파일러에게 더 정확한 타입 정보 제공: 자동으로 추론되지 않는 타입을 명시적으로 알려줌유욘한 타입 변환: 값의 타입을 원하는 대로 변환하거나 좁힐 수 있음타입 안정성 향상: 개발자가 해당 값이 특정 타입임을 확신 할 수있는 경우 컴파일러에 타입 오류 방지 가능사용법const num = 3 as number;interface Member { name: string; id: string; age: number;}const member1: Member = {}; // 빈 객체로 선언하게 되면 에러가 남const merber2 = {} as Member; // 빈 객체..
자바스크립트의 언어 특성자바스크립트는 싱글 스레드 언어이면서 논블로킹 언어입니다. 싱글스레드란 한 번에 하나의 작업만 처리할 수 있다, 즉 일하는 사람이 1명이라는 이야기입니다. 하나의 콜 스택을 가지고 있으면서 이 스택에서 하나하나씩 처리를 합니다. 두 개의 이상의 작업을 동시에 처리할 수 없으며 하나의 작업이 완료되어야 다음 작업을 수행합니다. 하지만 자바스크립트는 비동기 작업을 통해 여러 가지 일을 수행할 수 있게 됩니다.싱글스레드인데 동시에 다른 작업을 할 수 있는 이유 (Non-blocking)비동기 방식을 통한 긴 작업을 하는 동안 짧은 작업들을 같이 처리합니다. (ex: 파일 다운로드, 네트워크 요청)자바스크립트 엔진은 메모리 힙(우리가 만든 데이터가 저장되는 공간), 콜 스택을 가지고 있습..
자바스크립트는 기본적으로 인터프리터 언어로 분류되지만 현대 자바스크립트 해석 엔진(V8 엔진 등)에서 컴파일이 되는 언어이다. 전통적으로 인터프리터 방식으로 동작하였지만 자바스크립트 실행 성능을 높이기 위해 Just-In-Time(JIT) 컴파일을 사용한다. 이 방식은 실행 중에 필요한 부분만 바이트코드나 기계어로 컴파일 된다. 예를 들면 console.log(); 와 같은 코드는 컴파일이 필요하지 않다.인터프리터 언어란? (Interpreter Language)코드를 작성하면 한 줄씩 읽고 즉시 실행하는 언어컴파일 과정이 없으며 코드가 작성되면 바로 실행 가능코드 실행 중에 발생하는 오류를 즉시 확인 가능코드가 실행될 때마다 매번 해석을 해야하기 때문에 컴파일된 언어에 비해 실행 속도가 느릴 수 있다컴..
비트 연산자는 이진수(bit) 단위로 연산을 수행하는 연산자입니다. 비트 연산자는 주로 저수준의 데이터 처리나 특정 성능 최적화 작업에 사용된다.마스크(mask) 작업: 특정 비트만 남기거나 지우는 데 사용됩니다.플래그 작업: 여러 옵션을 비트로 표현하고, 플래그를 설정하거나 확인하는 데 사용됩니다.성능 최적화: 비트 연산은 매우 빠르며, 곱셈/나눗셈 대신 시프트 연산을 사용해 성능을 최적화할 수 있습니다.& (비트 AND)두 개의 숫자의 각 비트를 비교하여 둘 다 1일 경우에만 1을 반환주로 짝, 홀수를 구분할 때 사용한다let num1 = 5; // 0101let num2 = 4; // 0100let num3 = 1; // 0001// 0 1 0 1// 0 1 0 0// 0 0 0 1console.l..