목록2024/11 (8)
기술 블로그
function solution(wallpaper) { var answer = []; let count = 0 let minX // 첫 줄 let minY = 50 let maxX = 0 let maxY // 마지막 줄 for(let str of wallpaper){ const min = str.indexOf("#"); const max = str.lastIndexOf("#"); console.log(max) if(min !== -1 && max !== -1){ // 둘다 빈칸이 아니다 if(minX === undefined){ minX = count ..
function converter(str){ const time = str.split(":").map(Number) const calTime = time[0]*60 + time[1] return calTime}function solution(video_len, pos, op_start, op_end, commands) { var answer = ''; const inputs = [video_len, pos,op_start,op_end] const [calLen, calPos, calOpStart, calOpEnd] = inputs.map((data)=>converter(data)) let result = calPos function next(..
프로젝트에서 정적 파일을 빌드 디렉토리로 복사하는 과정에서 발생하는 문제는 의외로 자주 겪는 이슈이다. 특히 esbuild처럼 최소한의 설정을 제공하는 도구를 사용할 경우, 정적 파일 복사 기능이 기본적으로 포함되어 있지 않기 때문에 직접 해결 방법을 구현해야 한다.나는 이 문제를 해결하기 위해 Node.js의 fs/promises 모듈을 활용한 간단한 스크립트를 작성했다. 이 글에서는 그 과정을 단계별로 설명한다.문제 상황esbuild를 사용하여 프로젝트를 빌드할 때, favicon.ico와 같은 정적 파일을 dist 폴더로 복사해야 했다. 그러나 esbuild 자체에는 public 폴더와 같은 정적 파일을 처리하는 기능이 없었다. 따라서 파일 복사를 수동으로 처리해야 했다.해결 방법1. Node.js..
const arr = [5, 1, 2, 9, 7, 4, 3];function insertionSort(arr) { const len = arr.length; for (let i = 1; i
// fs 모듈을 이용해 파일 전체를 읽어와 문자열로 저장하기let fs = require('fs');let input = fs.readFileSync('/dev/stdin').toString().trim().split('\n');// 첫째 줄의 데이터를 공백 기준으로 나누기data = input[0].split(' ');// data = ['1', '2']a = Number(data[0]);b = Number(data[1]);console.log(a * b);
React로 개발한 Single Page Application(SPA)의 빌드파일을 테스트할 때 문제 중 하나가 404 오류다. 특히 브라우저에서 URL을 직접 입력하거나 새로고침했을 때 이 문제가 발생할 가능성이 크다. 이 글에서는 그 원인과 이를 해결하는 방법을 다루며, serve를 활용한 간단한 해결책을 소개한다.404 오류의 원인SPA는 클라이언트 측 라우팅을 기반으로 동작한다. 예를 들어 http://localhost:3000/disks/list 경로로 이동하면 브라우저는 이를 서버에 요청한다. 하지만 서버는 해당 경로에 대응하는 파일을 찾으려고 하며, 결과적으로 404 Not Found 오류를 반환한다. 이는 정적 파일 서버가 동적 라우팅을 처리하지 못하기 때문이다.해결 방법: serve를 활..
리액트 프로젝트에서 SVG 파일을 사용할 때, svgr 플러그인을 사용해 SVG 파일을 리액트 컴포넌트로 변환하는 경우가 많다. 그러나 특정 SVG 파일은 크기가 커서 컴포넌트로 변환하면 번들 용량이 불필요하게 커지는 문제가 생길 수 있다. 이번 글에서는 esbuild와 svgr 설정에서 특정 SVG 파일만 외부 파일로 처리하는 방법을 다뤄보겠다.문제 상황esbuild와 esbuild-plugin-svgr를 사용하여 대부분의 SVG 파일을 리액트 컴포넌트로 변환해 사용했다. 하지만 일부 SVG 파일이 번들에 포함되어 용량이 크게 증가하는 문제가 발생했다. 예를 들어, assets/analysisfail.svg 파일이 번들 용량의 상당 부분을 차지하고 있었는데, 이 파일만 예외적으로 외부 파일로 처리하고 ..
현대 웹 개발에서 성능 최적화는 사용자 경험을 좌우하는 핵심 요소이다. 특히 폰트 파일은 웹 애플리케이션에서 상당한 용량을 차지하는 경우가 많아, 이들의 경량화는 빌드 파일 크기를 줄이는 데 큰 기여를 할 수 있다. 폰트를 경량화하는 방법으로는 사용하지 않는 글리프(glyph)를 제거하거나 필요한 문자 집합만을 포함하는 방법이 있으며, 이를 통해 프로젝트의 전체 파일 크기를 상당히 줄일 수 있다.폰트 경량화의 필요성폰트는 시각적 완성도를 높이는 데 중요한 역할을 하지만, 크기가 커지면 로딩 속도에 부정적 영향을 미친다. 특히 웹사이트나 애플리케이션이 여러 폰트를 사용하거나 다양한 스타일을 포함할 경우, 로딩에 소모되는 시간과 자원이 크게 늘어난다. 따라서 폰트를 경량화하면 불필요한 리소스를 줄이고, 최적..