🐠 FrontEnd 38
Next.js 14 PWA 적용하는 방법!
1. next-pwa 설치 next-pwaNext.js with PWA, powered by workbox.. Latest version: 5.6.0, last published: 3 years ago. Start using next-pwa in your project by running `npm i next-pwa`. There are 85 other projects in the npm registry using next-pwa.www.npmjs.com 2. mainfest 추가public 폴더에 넣으면 됩니다. PWA Manifest Generator | ProgressierThis free tool allows you create an app manifestprogressier.com{ "sho..
2025. 4. 3.

자바스크립트는 싱글 스레드 언어인데, 어떻게 동시에 여러 작업들을 수행하나요?
A자바스크립트는 싱글 스레드 언어로, 한번에 하나의 작업만 진행할 수 있는 단일 콜스택을 가집니다.하지만 Web API, 이벤트루프를 통해 비동기 작업을 진행할 수 있습니다. 1. fetch, promise, setTimeout과 같은 비동기 작업이 발생하면, 자바스크립트 엔진은 해당 작업을 브라우저 web api에 위임하고 다음 코드를 실행합니다.2. web api에서 비동기 과정이 완료되면, 해당 콜백함수가 태스크 큐에 추가됩니다.3. 이벤트 루프는 콜스택이 모두 비어있는지를 확인 후, 비어있다면 태스크 큐의 작업들이 콜스택으로 전달합니다. 이러한 구조로 싱글 스레드인 자바스크립트에서 동시에 여러 작업을 수행할 수 있습니다. Q 앞서 말씀하신 태스크 큐의 종류에는 어떤 게 있나요? 태스크 큐의 종류는..
2025. 2. 4.

리액트에서 index를 key값으로 사용하면 안되는 이유
A리액트는 key를 통해 리스트에서 어떤 요소가 변경, 추가, 삭제 되었는 지를 추적합니다.따라서 key값이 달라지면 새로운 요소로 인식하여 불필요한 리렌더링이 발생할 수 있습니다. 만약 index로 key값을 설정하면, 리스트 중간 요소를 제거하거나, 리스트 요소의 순서가 변경될 때 등과같은 상황에서 잘못된 렌더링이 발생할 수 있습니다. 따라서 key는 db id와 같은 고유한 값이나 item.title과 같은 속성들을 결합해 유니크한 값을 사용합니다.또한 uuid나 Math.random과 같이 동적으로 id를 생성하는 것도 렌더링 간 key가 일치하지 않아 부적합합니다. 참고자료 [React] 배열의 index를 key로 쓰면 안되는 이유React 공식 Document를 보다가 아래 노란색으로 캡쳐..
2025. 2. 2.

Promise의 resolve()와 fulfilled에 대해서
Aresolve()는 pending 상태인 promise를 완료 상태로 변경하는 함수이고,fulfilled는 resolve()에 의해 promise가 완료된 상태를 의미합니다. promise는 대기 상태인 pending, 성공 상태인 fulfilled, 실패 상태인 rejected 3가지의 상태가 존재합니다. promise가 생성될 때, resolve와 reject를 인자로 받는 콜백함수를 실행하며 비동기 작업이 진행됩니다.비동기 처리 성공 후 resolve를 호출되면 fulfilled 상태가 되고, 비동기 처리가 실패 시 reject를 호출해 rejected 상태가 됩니다. fulfilled가 된 promise는 then()에서 값을 받게 되고, rejected가 된 promise는 catch()에서 ..
2025. 2. 1.

프론트엔드 모의면접 질문 정리
하 질문을 받자마자 머리가 새하얘져서 아무말이나 했다..아 지능 모자라.. 오늘 받은 질문 정리 상태 관리를 왜 하고, 평소에 상태 관리를 어떻게 하나요?요약 ) 리액트에서 상태의 역할, 리렌더링, useState 리액트에서 상태 관리는 애플리케이션 UI와 데이터의 동기화를 유지하는데 중요한 역할을 합니다리액트에서는 기존 상태와 변경된 상태를 버추얼 돔을 통해 비교하고 실제 dom에 반영되어 리렌더링이 발생하게 됩니다 저는 가장 기본적으로 useState를 통해 상태관리를 합니다리렌더링의 조건에는 state가 변경이 되거나, props가 변경이되었을 때 리렌더링이 발생하게 됩니다 하지만 useState는 전역적으로 필요한 데이터 전달을 위해서는 props drilling이 발생하여, 실제 props의 ..
2024. 8. 1.

[CS] 개발하며 한번쯤은 만나는 CORS 오류 원인과 해결 방법 정리
CORS (Cross Origin Resource Sharing) : 교차 출처 리소스 공유CORS는 서로 다른 출처(origin) 간에 자원을 공유할 수 있도록 해주는 보안 매커니즘이다. 기본적으로 브라우저에서는 보안을 위해 같은 출처에서만 자원 공유를 허용한다 (= SOP)따라서 CORS 오류는 다른 Origin으로 리소스를 요청했을 때 발생한다. 다른 도메인으로 요청을 보내면 cross-origin HTTP 요청에 의해 요청 되며, 요청 헤더에 Origin 필드를 추가한다하지만 대부분의 브라우저들은 보안상의 이유로 cross-origin 요청을 제한한다 이때 SOP로 인한 보안상의 이유가 원인이다. SOP (Same Origin Policy) : 동일 출처 정책해당 정책은 브라우저의 기본 보안 정책..
2024. 7. 25.
