목록TIL (21)
N

연결 리스트 각 요소를 포인터로 연결하여 관리하는 선형 자료구조. 각 요소는 노드라고 부르며, 데이터 영역과 포인터 영역으로 구성된다. 메모리가 허용하는 한 요소를 제한없이 추가할 수 있다. 탐색은 O(n)이 소요. 요소를 추가하거나 제거할 때는 O(1)이 소요. Singly Linked List, Doubly Linked List, Circular Linked List가 존재. 배열과의 차이점 배열은 데이터가 메모리에 연속적으로 붙어있지만, 연결 리스트는 붙어있지 않다. 원소를 찾기 위해서 배열은 인덱스로 접근이 가능하지만, 연결 리스트는 해당 데이터 영역을 찾아야 한다.(그렇기 때문에 에 시간 복잡도가 서로 상반된다.) Singly Linked List 단방향 연결 리스트 Head에서 Tail까지 단..

배열 순차 리스트 연관된 데이터를 연속적인 형태로 구성된 구조를 가진다. 배열에 포함된 원소는 순서대로 번호(index)가 붙으며, 0부터 시작한다. 고정된 크기를 가지며, 일반적으로는 동적으로 크기를 늘릴 수 없다.(C, C++..) 그러나 JS와 같은 스크립트 언어는 동적으로 크기가 증감된다. 원하는 원소의 번호(index)를 알고 있다면 O(1)로 원소를 찾을 수 있다. 원소를 삭제하면 해당 번호(index)에 빈 자리가 된다. 삭제 후 빈 자리를 채우기 위해 O(n)이 소요된다. 중간에 요소를 추가하기 위해서도 O(n)이 소요된다. 추가와 삭제가 반복되는 로직은 배열이 추천되지 않는다! 배열 생성 방법 4가지 const arr1 = []; const arr2 = [1, 2, 3, 4, 5]; co..
HTTP 통신 HTTP Request는 기본적으로 상태가 존재하지 않는다. 따라서 서버는 어떤 브라우저에서 요청이 들어 왔는지 알 수 없다. 이때, 헤더에 쿠키를 담으면 서버가 쿠키를 읽어 데이터의 출처를 할 수 있다. 쿠키(Cookie) 하이퍼 텍스트의 기록서(HTTP)의 일종으로서 인터넷 사용자가 어떠한 웹사이트를 방문할 경우 그 사이트가 사용하고 있는 서버를 통해 인터넷 사용자의 컴퓨터에 설치되는 작은 기록 정보 파일을 일컫는다. https://ko.wikipedia.org/wiki/HTTP_%EC%BF%A0%ED%82%A4 HTTP 쿠키 - 위키백과, 우리 모두의 백과사전 쿠키(영어: cookie)란 하이퍼 텍스트의 기록서(HTTP)의 일종으로서 인터넷 사용자가 어떠한 웹사이트를 방문할 경우 그 ..
함수형 패러다임 객체지향 프로그램의 최소 단위가 객체인 것처럼, 함수형 프로그램의 최소 단위는 함수다. 함수 단위로 나눠지기 때문에 재사용성이 매우 높다. 불변성을 지향하기 때문에 동작을 예측하기 쉬우며, 사이드 이펙트를 방지할 수 있다.(동시성 문제도 해결 가능) 객체지향 프로그램은 제어 흐름의 간접적인 전환에 부과되는 규일이며, 함수형 프로그램은 변수 할당에 부과되는 규율이다. 함수형 프로그래밍의 장단점 1) 장점 상태(state)가 없기 때문에 사이드 이펙트가 없다. 재사용성이 높아 코드가 짧아지고 간결해진다. 2) 단점 상태(state)가 없기 때문에 변수 조작에 어려움이 있다. 재사용을 위해 함수를 잘게 쪼개야 한다.(코딩의 기술력 요구!) 선언형 프로그래밍 무엇을 해결해야 할지에만 집중하며, ..
프론트엔드 개발자로서 가져야 할 역량 6가지 커뮤니케이션 UI 디자인 네트워크 보안 브라우저 브라우저의 동작 원리 서버와 브라우저 간의 통신 -> DOM을 생성하여 화면에 표시(렌더링) -> 스크립트 실행 -> DOM은 트리 구조로 형성된다. -> 스크립트로 인해 이벤트나 다양한 동적인 활동이 가능하다! JavaScript 변수 선언 키워드 var let var 변수 호이스팅이 발생하기 때문에 ES6 이후로는 let 키워드 사용 ✔ 변수 호이스팅이란? 변수 선언문이 코드의 선두로 끌어올린 것처럼 동작하는 JS 고유의 특징. 변수 선언문은 런타임 이전에 실행되고, 값의 할당은 런타임에 실행되기 때문에 발생한다. let var를 대체하기 위한 방법. let 키워드를 생략하면 var 처럼 동작한다. 중복 선언..