서론자료 구조를 공부하다 보면 배열(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..
서론평소처럼 Tailwind CSS와 추가 플러그인을 설치해서 사용하다가, h-[]등 일부 클래스가 적용되지 않는 문제가 발생했다..문제 원인은 Tailwind CSS v4.1의 구성과 Tailwind CSS 3의 구성을 혼용했기 때문이었고, v4.1에 맞는 구성을 사용하여 해결했다. 생각해보니 올해 초에 비슷한 문제를 겪었었던 것 같은데, 또 실수를 반복한 것 같다. 따라서 이것을 계기로 postCSS란 무엇인가, 어떻게 작동하는가. Tailwind CSS v4.1에서는 PostCSS 를 어떻게 구성하는가에 대해 정리해보려고 한다..PostCSS란 무엇인가PostCSS는 JavaScript를 사용해 CSS를 변환하는 도구이다. "Post-(이후에)"라는 접두사가 말해주듯, CSS가 작성된 후에 그 코드..
Array.from: 메서드 분석하기Array.from()이라는 메서드를 알고 있었다. 나는 이 메서드가 '문자열을 배열로 변환'하는 메서드라고 인지하고 정리해두었는데, 강의에서 나오는 코드를 보다 보니, 잘못된 정의였다는 걸 알게 되었다.Array.from()은 “유사 배열(array-like) 객체나 iterable을 진짜 배열로 바꿔주는" 메서드로 정리할 수 있고, 좀 더 내부 동작을 살펴보면 더 흥미로운 점이 나타난다.이번 글에서는 직접 공부하면서 헷갈렸던 부분(특히 this가 생성자가 된다는 설명)을 정리하고, ECMAScript 사양을 바탕으로 Array.from의 내부 동작을 해설해보겠다.1. 기본 사용법Array.from(arrayLike)Array.from(arrayLike, mapFn)..
