본문 바로가기

전체 글

(60)
[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개의 오브젝트가 생성되었습..
졸업 프로젝트 회고 드디어 저번 달에 졸업프로젝트가 끝났다. 아직 졸업논문이 남아 있지만 개발은 다 끝났다. 처음 컴공을 복수 전공한 게 3학년인데 컴퓨터 전공 공부, 프로그래밍 언어 공부를 하고 나니 1년이 훌쩍 지났고 정신을 차려보니 나는 어느새 졸업프로젝트를 하고 있었다. 처음 졸업프로젝트를 시작할 때 팀원도 직접 구해야 했었다. 그래서 자기 어필 발표 중에서 제일 잘해 보이는 사람을 기억하고, 수업이 끝나자마자 바로 가서 같이 하고 싶다고 말씀드렸다. 그렇게 해서 나 포함 3명이 졸업프로젝트를 진행하게 되었다. 일단 한 분은 인공지능을 하고 싶다고 하셔서 인공지능을 맡으셨고, 다른 한 분은 백엔드를 하고 싶다고 하셔서 백엔드를 맡으셨다. 그래서 하나 남은 프론트엔드를 내가 맡게 되었다. 사실 이때까지만 해도 백엔드는..