전체 글 53

cs대비 자바스크립트 질문 리스트 (18장)

1. 자바스크립트에서 일급 객체란 무엇인가요?- 자바스크립트에서 "일급 객체"란 값처럼 다룰 수 있는 객체를 의미합니다. 함수가 대표적으로 일급 객체로 취급되며, 몇가지 조건을 만족합니다:- 변수에 할당 가능: 함수는 일반 값처럼 변수에 저장할 수 있습니다.- 함수의 매개변수로 전달 가능: 함수는 다른 함수의 인자로 전달될 수 있습니다.- 함수의 반환값으로 사용 가능: 함수는 다른 함수의 반환값으로도 사용될 수 있습니다.- 데이터 구조에 저장 가능: 함수는 배열이나 객체와 같은 데이터 구조에 저장할 수 있습니다.- 이러한 특징 덕분에 자바스크립트에서는 고차 함수, 콜백 함수, 클로저 등 다양한 프로그래밍 패턴을 지원합니다. 2. 일급 객체와 일반 객체의 차이점은 무엇인가요?일급 객체와 일반 객체의 차이는..

cs대비 자바스크립트 질문 리스트 (16장 ~ 17장)

16장. 프로퍼티 어트리뷰트 1. 내부 슬롯과 내부 메서드란 무엇인가요?- 내부 슬롯(Internal Slot)과 내부 메서드(Internal Method)는 자바스크립트 엔진이 객체를 처리하는 내부 구조로, 이는 객체의 동작을 정의하고, 자바스크립트 엔진이 내부적으로 해당 객체를 어떻게 다룰지 결정하는 데 사용됩니다.- 내부 슬롯은 객체의 내부 상태를 저장하는 특수한 속성입니다. 대개 [[ ]]와 같은 이중 대괄호로 표기됩니다.- 내부 슬롯은 자바스크립트 엔진이 객체의 특정 동작을 관리하는 데 사용하지만, 개발자가 일반적으로 직접 접근할 수 없습니다. 대신, Object.getPrototypeOf와 같은 표준 메서드를 통해 간접적으로 내부 슬롯의 동작을 제어할 수 있습니다.- 내부 메서드는 객체의 특정..

cs대비 자바스크립트 질문 리스트 (14장 ~ 15장)

14장. 전역 변수의 문제점 1. 자바스크립트에서 전역변수 사용 시 어던 문제가 발생할 수 잇나요?- 크게 4가지 정도의 문제를 일으킬 수 있습니다.- 자바스크립트는 하나의 전역 네임스페이스를 공유합니다. 여러 스크립트나 함수에서 동일한 이름의 전역 변수를 사용하게 되면 충돌이 발생할 수 있습니다.- 또한, 전역 변수는 애플리케이션의 종료나 명시적인 삭제가 이루어지기 전까지 메모리에 남아있기 때문에,  메모리 누수가 성능 저하로 이어질 수 있습니다.- 전역 변수를 남용하면 코드의 의존성이 높아지고, 해당 변수가 어디서 어떻게 사용되는지 파악하기 어려워지므로, 가독성이 떨어집니다.- 전역 변수는 다양한 모듈이나 함수가 함께 접근할 수 있기 때문에, 값이 예기치 않게 변경될 수 있습니다. 2. 그렇다면 전역..

[JavaScript 알고리즘] 트리 순회

트리 탐색에는 두 가지 주요 방법이 있습니다:너비 우선 탐색 (Breadth-first Search, BFS)깊이 우선 탐색 (Depth-first Search, DFS)1. 너비 우선 탐색 (Breadth-first Search, BFS)너비 우선 탐색은 트리의 각 레벨을 순차적으로 탐색하는 방식입니다. 먼저 루트 노드를 방문한 뒤, 바로 다음 레벨의 모든 자식 노드를 차례대로 방문합니다. 이 방식은 큐(Queue) 자료구조를 사용하여 구현되며, 가까운 노드부터 먼 노드까지 방문합니다. 예를 들어, 루트 노드의 모든 자식 노드를 먼저 방문하고 그 다음 자식의 자식 노드들을 탐색하는 순서로 진행됩니다.너비 우선 탐색(BFS)을 반복적으로 수행하는 단계는 다음과 같습니다:큐(queue)와 방문한 노드 값을..

[JavaScript 알고리즘] 이진 검색 트리

- 목표트리란 무엇인가?트리와 리스트 비교트리, 이진 트리, 이진 탐색 트리의 차이점이진 검색 트리 구현 예시1. 트리란- 트리는 부모/자식 관계로 연결된 노드들로 구성된 자료 구조입니다.- 트리 용어 Root (루트): 트리의 최상위 노드.Child (자식): 루트에서 멀어질 때 다른 노드와 직접 연결된 노드.Parent (부모): 자식의 반대 개념으로, 자식을 가진 노드.Siblings (형제 노드): 같은 부모를 가진 노드들의 집합.Leaf (잎): 자식이 없는 노드.Edge (간선): 한 노드와 다른 노드를 연결하는 선. 2. 트리, 이진 트리, 이진 탐색 트리의 차이점 - 트리의 다양한 활용 분야 HTML DOM: HTML 문서의 요소들을 계층 구조로 표현하는 모델.네트워크 라우팅: 데이터를 전..

[JavaScript 알고리즘] 큐

- 목표큐 정의하기큐의 사용 사례 살펴보기큐의 기본 연산 구현하기1. 큐란?- 큐는 FIFO(First In, First Out) 구조의 자료 구조로, 먼저 들어온 데이터가 먼저 나가는 특성을 가집니다.- 줄을 서는 것과 비슷하게, 데이터가 추가되는 위치와 제거되는 위치가 고정되어 있습니다.2. 큐의 사용 사례백그라운드 작업리소스 업로드인쇄/작업 처리- 큐 구조class Node { constructor(value) { this.value = value; this.next = null; }}class Queue { constructor() { this.first = null; // 큐의 앞쪽 요소를 가리킴 this.last = null; // 큐의 뒤쪽 요소를 가리킴 ..

[JavaScript 알고리즘] 스택

- 목표스택의 정의에 대해 알아보기스택의 사용 사례를 이해하기스택의 연산 구현 살펴보기1. 스택- LIFO(후입선출 구조)- 스택에 마지막으로 추가된 요소가 스택에서 가장 먼저 제거되는 구조 2. 스택 사용사례 - 스택의 사용처함수 호출 관리실행 취소(Undo) / 다시 실행(Redo)라우팅 (history 객체가 스택처럼 사용됨)- 스택 만드는 방식배열 사용하기연결 리스트 사용하기class Node { constructor(value) { this.value = value; this.next = null; }}class Stack { constructor() { this.first = null; // 스택의 맨 위 노드 this.last = null; // 스택의 맨 아..

[JavaScript 알고리즘] 다중 연결 리스트

- 목표이중 연결 리스트(Doubly Linked List)를 구성하시오.이중 연결 리스트와 단일 연결 리스트(Singly Linked List)를 비교하고 대조하시오.이중 연결 리스트에서 기본 연산들을 구현하시오 1. 이중 연결 리스트란?단일 연결 리스트(Singly Linked Lists)와 거의 동일하지만, 이중 연결 리스트(Doubly Linked Lists)의 각 노드는 이전 노드를 가리키는 또 다른 포인터를 가지고 있습니다 class Node { constructor(val) { this.val = val; this.next = null; this.prev = null; }}class DLL { constructor() { this.head = null; thi..

[JavaScript 알고리즘] 단일 연결 리스트

- 목표Singly Linked List(단일 연결 리스트)란?Linked Lists와 Arrays 비교/대조Singly Linked List에서 삽입, 삭제, 순회 메서드 구현1. 연결리스트란?이 데이터 구조는 head(첫 번째 노드), tail(마지막 노드), 그리고 length(길이) 속성을 포함합니다.Linked Lists(연결 리스트)는 노드들로 구성되며, 각 노드는 **값(value)**과 다른 노드를 가리키는 포인터(pointer) 또는 null 값을 가지고 있습니다.// Node 클래스 정의class Node { constructor(value) { this.value = value; this.next = null; }}// Singly Linked Li..

cs대비 자바스크립트 질문 리스트 (12장 ~ 13장)

12장. 함수 1. 자바스크립트에서 함수란 무엇이고, 사용하는 이유가 뭔가요?- 함수란 특정 작업을 수행하거나 값을 계산하는 코드 블록입니다.- 자바스크립트에서 함수는 여러 번 재사용할 수 있는 코드로, 동일한 작업을 반복적으로 수행할 때 효율적입니다.- 또한, 코드가 길고 복잡할때, 함수로 코드를 분리하면 가독성을 향상 시킬 수 있습니다.- 그리고, 함수 내부 코드를 변경하더라도, 그 함수를 호출하는 모든 곳에 적용되어 유지보수에 용이합니다.- 마지막으로, 동일한 코드를 여러 곳에서 반복해서 작성하는 대신, 함수를 사용해 중복을 줄일 수 있습니다. 2. 일반 객체와 함수의 차이는 무엇인가요?- 함수는 객체의 일종 즉, '일급 객체'로 이는 함수를 변수에 할당하거나, 다른 함수의 인수로 전달하거나, 반환..