OOP 개념 정리 OOP 개념 정리를 하기 전에 객체 지향 프로그램이 무엇인지 알고 넘어가 보자. 절차 지향 프로그램 객체 지향 프로그램이 등장 하기전, 초기에는 절차 지향 프로그램을 사용해 왔다. 초기의 프로그래밍 언어는 절차적 언어로 불리어 왔다. 절차적 언어는 순차적인 명령의 조합이다. 객체 지향 프로그램 객체 지향 프로그램이 등장하고, class 를 이용하여 단순히 별개의 변수와 함수로 순차적으로 작동하는 것을 넘어, 데이터의 접근과, 데이터의 처리 과정에 대한 모형을 만들어 내는 방식을 사용할 수 있게 되었다. 데이터와 기능을 한번에 묶어서 처리할 수 있게 되었다. javascript는 객체 지향 언어는 아니지만, 객체 지향 패턴으로 작성이 가능하다. OOP 특징 OOP는 프로그램 설계 철학 중..
객체 지향 프로그램 객체 지향 프로그래밍은 하나의 모델을 만들고, 모델을 바탕으로 한 객체를 만드는 프로그래밍 패턴이다. 위 그림에 있는 모델을 class , 객체를 instance 라고 부른다. ES5 클래스 작성 문법 & ES6 클래스 작성 문법 객체 지향 프로그램은 class 와 함수로 정의가 가능하다. 함수는 ES6가 도입되기 전, 자주 사용하던 방법이다. class는 ES6가 도입된 후, 최근 자주 사용되고 있는 방법이다. (class 키워드로 사용할 수 있다.) class의 생성자(constructor) 함수는 인스턴스가 만들어질 때 실행되는 코드이다. class 속성 정의 this는 인스턴스 객체를 의미한다. parameter로 넘어온 이름, 색상 등은 인스턴스 생성 시 지정하는 값이며, t..
원시 자료형과 참조 자료형 원시 자료형 (primitive data type) : number, string, boolean 등 // 원시 자료형(primitive type): number, string, boolean, undefined, null 42, 'string', true, undefined, null 참조 자료형 (reference data type) : 배열, 객체, 함수 등 // 참조 자료형(reference type) [0, 1, 2] // 배열 {name: 'kimcoding', age: 45} // 객체 function sum (x, y) { return x + y } // 함수 얕은 복사, 깊은 복사 원시 자료형 : 할당한 변수를 다른 변수에 할당하면 값 자체의 복사가 일어난다. ..
클로저란 함수와 함수가 선언된 어휘적(lexical) 환경의 조합 외부 함수의 변수에 접근할 수 있는 내부 함수 스코프 체인이라고도 불림 클로저의 3가지 스코프 체인 클로저 자신에 대한 접근(자신의 블럭내에 정의된 변수) 외부 함수의 변수에 대한 접근 전역 변수에 대한 접근 클로버 예시 function outerFn() { const outerFnVar = 'outer 함수 내의 변수'; const innerFn = function () { return ( 'innerFn은 ' + outerFnVar + '와 ' + globalVar + '에 접근할 수 있습니다.'); }; return innerFn; } // innerFn 함수에서는 문자열을 리턴 / 어디로 ? outerFn 함수로 // outerFn..
스코프란 변수의 유효범위로 사용된다. 범위가 중괄호(블록) 또는 함수에 의해 나누어지고, 그 범위를 스코프라고 부른다. 안쪽 스코프, 바깥 스코프 구분 전역 스코프, 지역 스코프 가장 바깥 스코프는 전역 스코프로 불림 안쪽 스코프, 즉 전역 스코프가 아닌 것은 전부 지역 스코프로 불림 스코프 규칙 스코프는 중첩이 가능하다. 지역 변수는 전역 변수보다 더 높은 우선순위를 가진다. 안쪽 스코프에서 바깥 스코프에 있는 변수에 접근이 가능 반대로 바깥 스코프에서는 안쪽 스코프에 있는 변수에 접근이 불가능 스코프 종류 블록 스코프 : 중괄호 기준 범위 (중괄호 안의 범위)함수에 fucntion 키워드 없이 사용하면 블록 스코프 (화살표 함수 포함) 함수 스코프 : 함수로 둘러싼 범위함수에 function 키워드를..
1. 객체란 무엇인가 자바스크립트의 객체는 키(key)과 값(value)으로 구성된 프로퍼티(Property)들의 집합이다. 원시형 값을 제외한 나머지 값(함수, 배열, 정규 표현식 등)은 모두 객체이다. 2. 딕셔너리 생성 및 생김새 let obj = {} // 처음 객체 지정 방법 obj에 {} 중괄호를 할당 시켜준 것이 객체가 생성이 된 것이다. let obj = new Object(); new 연산자와 Object 생성자 함수를 호출하여 빈 객체를 생성할 수 있다. let obj = {키 : 값} 객체는 {} 중괄호 안에 : 를 기준으로 키와 값이 구분된다. 처음 변수에 객체를 할당시에 let obj = {'one' : 1} 처럼 객체 안에 값이 먼저 할당되어 들어가게 할 수도 있다. 3. 딕셔너..
1. 배열이란 무엇인가 순서가 있는 값이다. 다양한 값들을 넣기 위해 사용한다. 다양한 값들을 순서대로 저장할 때 사용한다. 2. 배열의 생김새 배열은 대괄호 [] 로 이루어져있고, 배열 안에 값을 넣을 수 있다. [1,2,3] 배열안의 값을 (1,2,3) 각각의 원소(element)로 부르며, 각각의 값들을 쉼표로 구분한다. 3. 배열의 index 배열안의 요소들은 index를 통해 가져오거나 없애거나 다양하게 사용 가능하다. arr = [1,2,3,4,5] 라고 해보자. arr의 index 즉, 요소들의 위치를 알아보자. 배열의 맨 첫번째 index는 무조건 0부터 시작한다. [1,2,3,4,5] 의 index 는 순서대로 0,1,2,3,4 라고 볼 수 있다. 쉽게 생각하면 arr의 길이가 5인데 i..
1. Command-Line Interface (CLI) 일반적으로 컴퓨터에 있는 터미널이라고 생각하면 쉽다. 리눅스의 터미널은 키보드의 입력과 모니터의 출력으로 모든 작업을 할 수 있다. mkdir # 현재 경로에서 폴더를 만든다. cd # 현재 경로의 폴더로 이동 pwd # 현재 경로의 위치를 확인합니다. touch # 현재 경로에서 파일을 만든다. (txt) ls # 현재 경로에 있는 폴더와 파일을 출력합니다. cat # cat: 파일의 내용을 터미널에 출력 rm # 파일 삭제 rm -rf # 폴더 삭제 mv # 폴더나 파일의 이름을 변경, 또는 폴더나 파일의 위치 옮기기 cp # 폴더나 파일을 복사 . # 현재 위치 .. # 상위 위치 2. Node.js JavaScrip..