본문 바로가기

전체 글109

메모이제이션 목차1. 메모이제이션이란?2. 메모이제이션을 사용한 피보나치1. 메모이제이션이란?동일한 계산을 할 경우 이전에 계산된 결과를 객체를 통해 메모리에 저장시켜 성능을 개선시키는 프로그래밍 기술 2. 메모이제이션을 사용한 피보나치피보나치는 이전의 값과 현재 값의 합이 다음 번째 결과가 되기를 인덱스가 증가하면서 반복하는 수열을 말한다.이전의 값 => 1현재의 값 => 1다음의 값 => 21 1 2 3  5 8 13 18 ...1+1 = 21+2 = 32+3 = 53+5 = 8이러한 피보나치 수열을 재귀함수를 통해 구현할 수 있는데 문제는 수가 커질수록 반복하는 연산이 많아져 메모리를 많이 사용하게 되어 인덱스가 커질수록 시간이 느려지고 프로그램이 멈출 수 있다.  1) 피보나치 구현f.. 2024. 5. 1.
객체에 관해 목차1. 객체란?2. 객체 사용법3. 객체를 사용하는 이유1. 객체란?속성이라는 연관된 여러 데이터들을 가지고 있는 참조 타입의 데이터 객체지향 프로그래밍에서 중요한 개념으로 여러 속성(key)과 속성에 대한 값(value)를 가지고 있는 참조형 데이터이다. 2. 객체 사용법1) 선언리터럴 사용const 객체명 = { 속성명1:속성값1, 속성명2:속성값2, 메서드1(인자값){ //메서드 호출시 실행할 코드 }}//ex)//객체생성const person = { name:'홍길동', myMethod(){ console.log(this.name); }}생성자 함수 사용fucntion 생성자함수명(매개변수1, 매개변수2){ this.속성1 = 매개변.. 2024. 4. 30.
얕은 복사 vs 깊은 복사 목차1. 얕은 복사2. 깊은 복사3. 뭐가 더 좋을까?1. 얕은 복사하나의 데이터에 대한 주소를 다른 변수가 공유하는 형태참조타입의 데이터를 다룰 때 변수에 할당된 데이터의 주소를 통해 값을 가져오거나 변경을 한다. 그런데 때에 따라 같은 값의 데이터를 다룰때 또 다른 변수를 하나 생성하여 같은 주소를 할당하는 것이 얕은 복사다. 주로 단순 데이터 전달데이터 전달하는 것과 같이 원본이 수정되더라도 상관없을 때 사용된다.예제를 통해 얕은 복사를 확인해보자.const arr1 = [1,2,3];const arr2 = arr1;console.log(arr1); //1,2,3console.log(arr2); //1,2,3arr2.push(4);console.log(arr1); //1,2,3,4console.lo.. 2024. 4. 29.
구조 분해 할당 목차1. 구조 분해 할당이란?2. 사용법1. 구조 분해 할당이란?객체의 속성을 분해하여 변수에 담는 표현식객테의 데이터 전부가 아닌 일부만 필요로할 때 사용된다. 2. 사용문법1) 배열분해배열 분해는 각각의 요소를 담을 변수가 필요한데 대괄호([])안에 각 요소를 담을 변수의 이름을 지정해준다. 변수의 위치에 따라 요소 첫번째부터 순서대로 데이터가 할당되며 배열의 갯수가 요소의 갯수보다 남은 요소는 할당되지 않고 변수가 더 많으면 남은 변수에는 undefined로 초기화된다.  변수예약어 배열명 = [요소1,요소2,요소3];변수예약어 [아이템1,아이템2,아이템] = 배열명;ex)const numberList = [1,2,3,4,5];const [num1,num2,num3] = numerList;/* .. 2024. 4. 28.