프로젝트를 진행하면서 에러창을 여러 번 마주했다. 어떤 에러는 구글과 스택오버플로우를 찾아보며 금새 해결하고 원인을 찾아 같은 에러가 발생하지 않도록 개선했지만, 어떤 에러는 몇 시간을 투자해 겨우 해결하고 에러 발생 원인을 찾지 못해 계속 답답한 감정을 가지게 했다.
실행 컨텍스트는 자바스크립트의 동적 언어로서의 성격을 가장 잘 파악할 수 있는 개념이다.
챕터 목표: this가 달라지는 이유를 알고, this가 대상을 바라보는 이유를 효과적으로 추적할 줄 안다. this: 함수와 메서드의 구분이 느슨한 자바스크립트에서 실질적으로 이 둘을 구분하는 기능. 실행 컨텍스트가 생성될 때 함께 결정된다. 즉, 함수를 호출할 때
챕터 목표: 콜백함수가 무엇인지 알고, 이를 활용한 로직을 이해한다.콜백 함수: 어떤 함수나 메서드에게 인자로 넘겨주며 그 제어권도 함께 위임한 함수콜백 함수를 인자로 받은 어떤 함수는 특정 조건이 갖춰졌는지 여부를 스스로 판단하여 콜백함수를 직접 호출한다. 우선
챕터 목표: 클로저의 뜻을 확실히 알고, 이를 다른 사람에게 간단히 소개할 수 있을 만큼 요약한다.또한 클로저를 활용한 로직을 익혀, 추후 직접 사용해볼 수 있도록 익숙해진다.클로저는 함수형 프로그래밍에서 등장하는 보편적인 특성이나, 이를 설명한 글은 각기 다른 정의
06 프로토타입 챕터 목표: 프로토타입에 대해 알고, 큼직하게 개념을 이해한다.
챕터 목표: 클래스 문법을 이해하고, 구현 방식을 익힌다. 자바스크립트는 프로토타입 기반 언어라서 '상속' 개념이 없다. 여러가지 다른 언어들은 클래스를 기반으로 하기에, 자바스크립트도 클래스와 비슷하게 동작하게끔 흉내 내는 기법들이 만들어졌고, 니즈가 상승함에
네트워킹을 이해하는 것의 중요성은 항상 느끼고 있었지만, 그 방대하고 깊은 컴퓨터 지식이 두려워 공부를 시작하지 못하고 있었다. 그러다 다행히도 같이 공부한 사람들 중 한 분께서 스터디를 열어주셔서 네트워크에 대해 조금씩 공부를 시작했다.스터디는 강의와 전공도서를 병행
출처: <자바스크립트로 하는 자료구조와 알고리즘>빅오 표기법: 시공간 복잡도를 나타내는 표기법. 알고리즘의 최악의 경우 복잡도를 측정한다. 빅오 표기법을 통해 실행 시간과 사용된 메모리 관점에서 알고리즘 구현을 분석할 수 있다. 빅오 표기법에서 n은 입력의 개수를
자바스크립트 언어 특징 객체지향 프로그래밍은 클래스 기반과 프로토타입 기반으로 나눌 수 있다. 클래스 기반 언어(Java, C++, C#, Python, PHP, Ruby, Object-C)는 클래스로 객체의 자료구조와 기능을 정의하고 생성자를 통해 인스턴스를 생성
\+ - / \* %(위의 연산들은 다른 프로그래밍에서도 일반적으로 사용된다.)자바스크립트는 숫자에 대해 64비트 부동소수점 표현을 사용한다. 부호 비트가 0이면 0또는 양수를 나타내고, 부호 비트가 1이면 음수를 나타낸다. 지수부는 지수 값 e를 나타낸다. 가수부는
자바스크립트의 기본 자료형인 String에는 다양한 문자열 메서드가 존재한다. The String object's charAt() method returns a new string consisting of the single UTF-16 code unit located
검색: 특정 데이터를 얻기 위해 자료 구조의 항목을 반복적으로 접근하는 것정렬: 자료 구조의 항목을 순서대로 위치시키는 것정렬된 자료와 정렬되지 않은 자료 모두에 사용 가능하다. (유연한 사용)이진 검색에 비해 시간 복잡도가 높다.배열의 각 항목을 한 인덱스씩 순차적으
해시 테이블: 키를 값에 매핑할 수 있는 고정된 크기의 자료구조특징:자료를 쉽고 빠르게 저장할 수 있다. key-value pair를 기반으로 자료를 얻을 수 있다. 자바스크립트 객체와 localStorage가 해시 테이블과 같은 방식으로 동작한다.해시 함수를 통해 특
스택과 큐는 각 후입선출, 선입선출을 따르며 삽입 및 삭제 속도가 빠르다는 장점이 있다. 이전에 스택과 큐에 대해 작성한 블로그 글이 있기에 이 글에서는 새로 알게 된 개념과 연습문제만을 기록하려 한다.peeking: 들여다 보는 것. 자료 구조에서 특정 항목을 제거하
연결 리스트(linked list): 실행 시간에 메모리를 할당하거나 해제할 수 있는 동적 자료 구조. 각 노드가 다음 노드에 대한 참조를 갖는 점이 특징이다.단일 연결 리스트(Singly Linked list)와 이중 연결 리스트(Doubly Linked list)로
캐싱: 자료를 임시 메모리에 저장하는 과정장점: 해당 자료가 다시 필요할 때 쉽게 얻을 수 있다. 사용 예시: DB 시스템이 데이터를 캐싱해 하드 드라이브를 다시 읽는 작업을 피한다.웹 브라우저가 웹 페이지를 캐싱해 콘텐츠를 다시 다운로드하는 작업을 피한다. 캐싱 사용
트리: 자식 노드를 지닌 트리 형태의 알고리즘 구조루트 노드: 첫 번째이자 가장 상위 노드트리 구조는 자식 노드를 얼마든지 가질 수 있다. 이진 트리: 자식 노드가 왼쪽, 오른쪽 총 두 개 뿐인 트리이진 트리에는 항상 루트 노드가 있다. 왼쪽 포인터와 오른쪽 포인터를
힙: O(1) 시간에 가장 높은 항목이나 가장 낮은 항목을 반환하는 자료구조힙은 트리와 비슷한 자료구조의 일종이다. 최대 힙은 부모 노드가 자식보다 크고, 최소 힙은 부모 노드가 자식보다 작은 것을 이른다. 힙은 자료를 정렬할 때 유용하게 사용한다. 대표적으로 메모리에
그래프: 객체 간의 연결을 시각적으로 나타내는 자료구조그래프는 객체 간의 연결과 관계를 다양하게 나타낼 수 있는 자료 구조이다.그래프 알고리즘(순회, 검색, 정렬 등)을 통해 두 그래프노드 간의 최단 경로를 찾는 등의 문제를 해결할 수 있다. 그래프를 적용한 사례는 다
트라이 (trie, 접두사 트리)보이어-무어 문자열 검색커누스-모리스-플랫 문자열 검색 (KMP 알고리즘)라빈-카프 검색트라이는 트리구조이다. 저장된 문자열 중 현재 검색한 문자열과 일치하는 문자열이 있는지 확인할 때 사용된다.각 단계에서 노드는 단어를 완성하기 위해
서문 개발을 공부하고 인턴으로 첫 회사에 갔을 때, 사수께 추천받은 책이 있다. 로버트 마틴이 저서한 [ 클린 코더 ] 이다. 이 책은 개발 기술에 관한 내용도 물론 있지만, 개발을 할 때 어떤 마음가짐을 가져야 나와 동료들 및 이해관계에 있는 사람들에게 좋을 지를