본문 바로가기

개발 공부

(19)
[JS]함수형 프로그램이란 1. 함수형 프로그램 원칙 1. 입출력이 순수해야한다.(순수 함수) - 입출력이 순수한 것은 반드시 하나 이상의 인자를 받고, 인자를 처리하여 결과물로 도출해야한다. - 인자를 제외한 다른 변수는 사용하면 안된다. 인자를 제외한 다른 변수는 사용하면 안된다. 2. 부작용(부산물)이 없어야한다. - 프로그래머가 바꾸고자 하는 변수 외 바뀌어서는 안된다. - 원본 데이터는 불변해야한다. - 데이터 변경이 필요한 경우, 원본 데이터 구조를 변경하지 않고, 데이터의 복사본을 만들어 작업을 진행한다. // 비상태, 불변성 만족 const person = { name: "jongmin", age: "26" }; function increaseAge(person) { return { ...person, age: pe..
[JS] 형식화 배열이란?(Typed array) 1. 형식화 배열(typed array) - 배열 같은 객체이며 원시 이진 데이터에 엑세스 하기 위한 메커니즘 제공 - 배열에 이용할 수 있는 모든 메서드가 형식화 배열에 지원하지 않는다(push, pop) 1-1. 형식화 배열 구조 - 버퍼: 데이터 부분을 나타내는 객체 - 뷰: 문맥(데이터 형)을 제공해 데이터를 실제 형식화 배열로 변환 1-2. 버퍼(Buffer)란? - 임시로 바이너리 데이터를 저장하기 위한 메모리 공간 혹은 바이너리 데이터 자체 - Binary Data: 컴퓨터가 이해할 수 있는 0100 1001 형태의 이진수로 이루어진 데이터 1-3. ArrayBuffer - 고정된 크기의 메모리 공간에 바이너리 데이터를 저장하는 객체. - 콘텐츠를 조작할 수 없다. - but, 형식화 배열 ..
[JS]연결리스트와 연속 배열의 차이 1. 연결리스트 vs 연속배열 1-1. 연결리스트란? - 각 노드가 데이터와 포인터를 가지고 한 줄로 연결되어 있는 방식으로 데이터 저장 자료 구조 1-2. 연속배열이란? - 연속적인 메모리 상 동일한 데이터 타입 요소들을 순차적으로 일렬로 저장하는 자료구조 ### 1-3. 장단점 - 연속배열은 추가/삭제가 느리지만, 인덱스 조회는 빠르다. - 연결리스트는 추가/삭제 빠르지만, 인덱스 조회는 느리다. - 즉, 연결리스트는 추가/삭제 O(1), 데이터 검색은 O(n)가 걸린다. ## 2. 참조 - A 메모리를 통해 B 메모리에 접근할 수 있다 -> B는 A에 참조된다 - 자바스크립트 오브젝트는 prototype을 암시적으로 참조 var x = { a: { b: 2 } }; // 2개의 오브젝트가 생성되었습..