서론자료구조를 공부하다 보면 단방향 연결 리스트 다음으로 마주치게 되는 것이 바로 양방향 연결 리스트다. 단방향 연결 리스트가 한 방향으로만 이동할 수 있다면, 양방향 연결 리스트는 앞뒤로 자유롭게 이동할 수 있다는 점에서 더 유연한 구조를 가지고 있다. 양방향 연결 리스트란?양방향 연결 리스트(Doubly Linked List)는 각 노드가 데이터와 함께 이전 노드(prev)와 다음 노드(next)를 가리키는 두 개의 포인터를 가진 자료구조다. 이러한 구조 덕분에 리스트를 양방향으로 순회할 수 있으며, 특정 위치에서의 삽입과 삭제 연산이 단방향 연결 리스트보다 효율적이다.시간 복잡도삽입(Insertion): O(1)삭제(Removal): O(1)탐색(Searching): O(N) (정확히는 O(N/2..
서론자료 구조를 공부하다 보면 배열(Array)만으로는 충분하지 않은 순간이 온다. 특히 데이터의 삽입과 삭제가 빈번하게 일어나는 상황에서 배열의 성능은 급격히 떨어진다. 이럴 때 등장하는 것이 바로 연결 리스트(Linked List)다.이 글에서는 단방향 연결 리스트의 개념부터 구현, 시간 복잡도 분석, 그리고 배열 및 양방향 연결 리스트와의 비교까지 모든 것을 다뤄본다.단방향 연결 리스트란?단방향 연결 리스트는 노드(Node)들이 하나의 체인처럼 연결된 자료 구조다. 각 노드는 두 가지 정보를 담고 있다:val: 노드에 저장된 실제 데이터next: 다음 노드를 가리키는 참조(포인터)배열과의 가장 큰 차이점은 인덱스가 없다는 것이다. 연결 리스트에서는 첫 번째 노드(head)에서 시작해서 next 포인..
서론AI 코딩 에이전트가 범람하는 시대, 개발자들이 자주 사용하는 Claude Code를 사용해 본 과정과 후기를 작성해 보려고 한다.최초 세팅 과정Windows + pnpmPC에서 pnpm 전역 설치로 @anthropic-ai/claude-code 를 설치했다. 1) pnpm 상태 확인pnpm setuppnpm -vpnpm -v 결과: 10.15.0pnpm setup는 “변경 없음”이라고 나왔다. 하지만 전역 실행 파일(bin) 경로가 아직 설정이 되지 않았다. 2) 전역 bin 경로 미설정 오류 출력오류 메시지 보려고 전역 설치를 먼저 실행해봤다.pnpm add -g @anthropic-ai/claude-code실패 메시지:ERR_PNPM_NO_GLOBAL_BIN_DIR Unable to find t..
심화 자료구조(양방향, 단방향 연결 리스트, 이진 트리등)를 학습할 예정인데, 학습하려는 모든 자료구조에 대한 새로운 클래스를 정의하기 위해 ES2022 JavaScript의 클래스 문법에 대해 한 번 정리해 보려고 한다. ES2022 클래스 구문 개요 단방향 연결리스트, 양방향 연결리스트, 스택, 큐 등 다양한 자료 구조를 구현할 것이다. JavaScript는 이 중 어떤 자료 구조도 사전에 포함시켜서 제공하지 않는다.따라서 익숙해져야 할 것들은 다음과 같다:클래스 핵심 용어생성자(constructor) 작성new 연산자를 통한 인스턴스화클래스란 무엇인가?일반적으로, 사전에 정의된 속성 및 메서드를 이용해 객체를 생성하기 위한 청사진이다. 패턴을 만들면 객체들을 인스턴스화할 수 있다. 인스턴스화(I..
스프레드시트 각 시트에 셀 메모(Notes) 가 흩어져 있으면 한눈에 보기 번거로웠다. 스프레드시트는 댓글 기능을 계속 확장하고 있고, 댓글은 이미 모아볼 수 있는 기능이 있다. 그러나 나는 계정 표시나 권한과 상관없이 가볍게 남긴 메모만 한 장에 모아 보고 싶었다. 그래서 Google Apps Script(GAS) 로 시트 전체의 메모를 수집해서 검색 가능한 HTML 보고서로 뽑아내는 “미니 확장프로그램”을 만들었다. 1) GAS/gsGAS란? 구글이 제공하는 클라우드 런타임에서 돌아가는 서버사이드 JavaScript. 스프레드시트·드라이브·지메일 등 워크스페이스 자동화/확장을 할 수 있었다..gs 파일이란? Apps Script의 스크립트 파일 확장자. 자바스크립트(ES6+) 문법을 그대로 쓰면서 S..
Array.from: 메서드 분석하기Array.from()이라는 메서드를 알고 있었다. 나는 이 메서드가 '문자열을 배열로 변환'하는 메서드라고 인지하고 정리해두었는데, 강의에서 나오는 코드를 보다 보니, 잘못된 정의였다는 걸 알게 되었다.Array.from()은 “유사 배열(array-like) 객체나 iterable을 진짜 배열로 바꿔주는" 메서드로 정리할 수 있고, 좀 더 내부 동작을 살펴보면 더 흥미로운 점이 나타난다.이번 글에서는 직접 공부하면서 헷갈렸던 부분(특히 this가 생성자가 된다는 설명)을 정리하고, ECMAScript 사양을 바탕으로 Array.from의 내부 동작을 해설해보겠다.1. 기본 사용법Array.from(arrayLike)Array.from(arrayLike, mapFn)..

