꾸준한 개발자

계속적인 성장을 추구하는 개발자입니다. 꾸준함을 추구합니다.

계속 쓰는 개발 노트

JAVASCRIPT 73

var 키워드와 let, const 키워드의 차이점

var 키워드 var 키워드는 ES6 이전에 변수를 선언하기 위한 유일한 방법이었습니다. var 키워드의 특징 중 하나는 변수 중복 선언이 가능하다는 것입니다. 아래 예시와 같이 중복해서 선언을 해도 에러가 발생하지 않습니다. var x = 1; var x = 'geumyong'; console.log(x); // geumyong 이렇게 중복선언이 가능하다는 것은 개발자가 실수로 이미 선언해놓은 변수에 다른 값을 재할당할 수도 있다는 위험이 있습니다. 두 번째 특징으로, 스코프 범위입니다. var 키워드는 함수 레벨 스코프를 갖습니다. 함수가 아닌 다른 블록 내에서(for문과 같은) var 키워드로 선언을 할 경우 전역 변수가 됩니다. 전역 변수의 경우 생명주기가 길고 어디서든 참조가 가능하기 때문에 피..

스코프란

모든 식별자는 자신이 선언된 위치에 의해 다른 코드가 식별자 자신을 참조할 수 있는 유효 범위가 결정됩니다. 이를 스코프라 합니다. 전역 스코프, 지역 스코프 코드는 전역과 지역으로 구분됩니다. 이때 변수는 자신이 선언된 위치에 의해 자신이 유효한 범위인 스코프가 결정됩니다. 전역에 선언된 변수는 전역 스코프를 갖는 전역 변수이고, 지역에서 선언된 변수는 지역 스코프를 갖는 지역 변수입니다. 전역 스코프에 있는 전역 변수 같은 경우 어디서든 참조할 수 있습니다. 그리고 지역 스코프에 있는 지역 변수는 자신의 지역 스코프는 자신의 지역 스코프와 하위 지역 스코프에서 참조할 수 있습니다. 스코프 체인 함수는 전역에서 정의할 수도 있고 함수 몸체 내부에서 정의할 수도 있습니다. 함수 몸체 내부에서 정의한 함수..

변수란

변수란 1+2 위의 식이 있습니다. 사람의 경우 1과 2라는 숫자를 기억하고 +가 더하다는 의미인 것을 파악하고 더할 것입니다. 그리고 나온 결과 3을 뇌에서 기억합니다. 컴퓨터(자바스크립트 엔진)는 사람이 아닙니다. 컴퓨터가 위의 식을 만난다면 어떤 과정을 거치게 될까요? 자바스크립트 엔진은 1과 2, 즉 피연산자를 기억하기 위해 메모리 공간을 사용합니다. 메모리는 데이터를 저장할 수 있는 메모리 셀의 집합체로서, 메모리 셀 하나의 크기는 1바이트입니다. 컴퓨터는 1바이트 단위로 데이터를 저장하거나 읽어 들입니다. 만약 메모리 셀 하나에 데이터가 저장되었다고 합시다. 다시 그 데이터를 참조하기 위해서는 어떻게 해야될까요? 우리가 친구의 집에 찾아갈 때 주소를 알아야 찾아가듯이 자바스크립트 엔진도 마찬가..

알고리즘의 복잡도(Complexities)

✔ 알고리즘의 복잡도 크게 공간 복잡도와 시간 복잡도 두 가지로 나눌 수 있습니다. 서로 Trade-off 관계가 있습니다. 공간 복잡도는 메모리를 얼마나 사용하냐에 대한 것이고, 시간 복잡도는 얼마나 많은 일을 하냐에 대한 것입니다. 알고리즘의 Complexity가 높을수록 알고리즘을 구동하는 데에 더 많은 비용이 듭니다. ✔ 공간 복잡도 알고리즘이 동작하기 위해 필요한 공간, 즉 메모리의 크기와 관련있습니다. 많은 경우, 연산의 중간 결과를 저장하기 위해 메모리를 소비합니다. 중간 결과를 저장해서 중복 연산을 줄일 수 있습니다. ✔ 시간 복잡도 알고리즘이 동작하는 데에 걸리는 시간 또는 연산의 횟수와 관련있습니다. 환경에 따라서 소비되는 시간이 다를 수 있기 때문에 연산의 횟수로 비교하는 것이 좀 더..

자료와 자료구조 그리고 알고리즘

✔ 자료란 현실 세계로부터 수집한 사실이나 개념의 값 또는 이들의 집합입니다. 특정 용도로 사용하기 위해 처리하거나 가공한 것을 정보라 합니다. 예를 들어 A반에 각각 90점, 95점, 85점을 받은 세 명의 학생이 있고, B반에 각각 40점, 90점, 100점을 받은 세 명의 학생들이 있다고 생각해봅시다. 여기서 학생들이 받은 점수가 자료가 되며, 만약 반끼리 비교하기 위해 평균을 구했다면, 평균이 정보에 해당합니다. ✔ 자료구조란 자료구조는 자료 값의 모임, 자료 간의 관계, 그리고 자료에 적용할 수 있는 함수나 명령을 의미합니다. 자료는 리스트 구조, 트리 구조 등의 관계를 갖게 됩니다. ✔ 자료구조의 특징 내가 원하는 목적에 맞게 효율적으로 동작합니다. 그리고 추상화가 가능해야 합니다. 추상화란 ..