'언어 · 런타임/JavaScript' 카테고리의 글 목록
게으른 개발자
언어 · 런타임/JavaScript
JavaScript DFS에서 [...path, i]와 push/pop 비교 - 상태 복사 vs 복원
2025.05.08
1. 문법 개념 요약JavaScript에서 ... 전개 연산자는 배열의 요소를 펼쳐서 새로운 배열을 만드는 데 사용된다.const path = [1, 2];const newPath = [...path, 3]; // 결과: [1, 2, 3]기존 배열 path를 복사하면서 3이라는 새 요소를 뒤에 추가한 형태기존 배열을 변경하지 않고, 새로운 배열을 만들어냄 (불변성 유지)2. DFS/재귀 구조에서의 활용DFS(또는 백트래킹)에서 현재 상태(path)를 복사해서 다음 단계로 넘길 때 유용하다.function dfs(depth, path) { if (depth === M) { console.log(path); return; } for (let i = 1; i 각 DFS..
언어 · 런타임/JavaScript
백준 JavaScript 제출법 총정리: fs, readline 입출력 예제와 주의사항
2025.04.24
[백준 JavaScript 제출 가이드] 알고리즘 문제를 JavaScript로 제출할 때 꼭 알아야 할 작성 방식과 팁백준(BOJ, https://www.acmicpc.net/ )에서는 JavaScript로도 문제를 제출할 수 있습니다.Node.js 환경에서 동작하며, 특유의 입출력 방식으로 인해 다른 언어와 다르게 신경 써야 할 점이 있습니다.이 글에서는 백준에서 JavaScript(Node.js)로 문제를 제출할 때 유의해야 할 사항을 정리합니다.제출 언어 선택제출 시 언어는 반드시 JavaScript(Node.js)를 선택합니다.TypeScript는 지원하지 않습니다. 반드시 .js 파일 기준으로 작성해야 합니다.입출력 처리 방식백준에서 JavaScript는 기본적으로 Node.js 환경으로 실행되..

언어 · 런타임/JavaScript
JavaScript란?
2024.03.05
JavascriptJavascript 란?💡 자바스크립트(JavaScript)는 객체(object) 기반의 스크립트 언어입니다. HTML로는 웹의 내용을 작성하고, CSS로는 웹을 디자인하며, 자바스크립트로는 웹의 동작을 구현할 수 있습니다. 자바스크립트는 주로 웹 브라우저에서 사용됩니다. 싱글스레드로 동작하는 언어입니다. 메인 스레드, 하나의 스레드로 구성되어 있습니다.자바스크립트 엔진 - V8자바스크립트 엔진은 자바스크립트 코드를 이해하고 실행을 도와줍니다. 대표적인 엔진으로 V8 Engine (Chrome, Node.js 에서 사용)이 있으며, 각 브라우저 별로 여러가지 엔진들이 존재합니다.V8 엔진이란?Google이 주도하여 개발한 오픈소스임.C++로 작성된 고성능의 자바스크립트 & 웹 어셈블리..

언어 · 런타임/JavaScript
[Node.js] 이벤트 디멀티플렉싱
2024.03.05
이벤트 디멀티플렉싱은 무엇인가?이 매커니즘은 감시된 일련의 리소스들로부터 들어오는 I/O 이벤트를 수집하여 큐에 넣고 처리할 수 있는 새 이벤트가 있을 때까지 차단함.socketA,pipeBwahchedList.add(socketA, FOR_READ); // [1]while(events = demultiplexer.watch(watchedList)){ //[2] foreach(event in events){ //read는 블록되지 않으며 비어있을지언정, 항상 데이터를 반환함. data = event.resource.read(); if(data === RESOURCE_CLOSED) demultiplexer.unwatch(event.resource); else resolve(data); }}[2]에서..
언어 · 런타임/JavaScript
JavaScript 배열 복사: spread와 map의 차이 완벽 정리 (얕은 복사 vs 깊은 복사)
2024.02.05
JavaScript 배열 복사: spread와 map의 차이 완벽 정리 (얕은 복사 vs 깊은 복사)실무에서 데이터를 다룰 때, 원본 배열을 복사하여 수정하는 작업은 자주 발생합니다.하지만 단순히 복사했다고 생각한 배열이 의도치 않게 원본에 영향을 주는 경우도 있습니다.이 글에서는 JavaScript에서 많이 사용되는 스프레드 연산자 (...)와 map() 함수를 활용한 복사 방식의 차이를 정리해보겠습니다.예시 코드// 1. Spread 문법 사용const newList = [...rawMemberTypeList];// 2. map + Spread 사용const newList = rawMemberTypeList.map((item) => { ...item });1. 스프레드 문법([...])은 얕은 복사입..