Java Script/기본 개념 정리
-
자바스크립트와 이벤트 루프Java Script/기본 개념 정리 2021. 1. 14. 01:49
자바스크립트와 이벤트 루프 위키에 따르면, 이벤트 루프에 대해 아래와 같이 설명하고 있다. 컴퓨터 과학에서 이벤트 루프는 프로그램의 이벤트나 메시지를 대기하다가 디스패치(효율적으로 처리)하는 프로그래밍 구조체 일반적으로 이벤트가 도착할 때까지 요청을 차단하는 일부 내부 또는 외부의 이벤트 제공자에게 요청한 다음 관련 이벤트 핸들러를 호출(이 때 이벤트를 디스패치) 이벤트 제공자가 선택 또는 polling되는(유닉스 시스템 호출에서 실제로 폴링되지는 않음) 파일 인터페이스를 따르는 경우 이벤트 루프는 반응자와 결합해서 사용할 수 있다. 이벤트 루프는 거의 무조건 메시지 제공자와 비동기식으로 동작 반응자 동시에 들어오는 서비스 처리 요청을 관리하는 이벤트 처리 패턴 이벤트 루프에 대해 어느정도 감이 잡혔으니..
-
Async & Await , PromiseJava Script/기본 개념 정리 2020. 8. 17. 11:46
비동기란 ? 요청한 내용을 응답해 줄 것을 약속한다는 의미 즉, 요청과 응답이 바로 일어날 수도, 다른 시간대에 일어날 수도 있음 콜백함수란 ? 콜백이란 이름이 있는 것이 아니라, 함수의 사용 용도가 call / back인 함수를 의미한다. 클릭 이벤트가 발생할 때 출력되는 콜백 함수와 같은 말을 들어본 적이 있을 것이다. Promise란 ? promise로 구현된 비동기 처리 함수는 콜백을 예측 가능한 패턴으로 사용하도록 도와준다. 콜백 함수 안에서 생성된 프로미스 객체를 활용해 콜백함수가 성공,실패,오류 경우에 따라 후속 처리를 할 수 있다. 순차적이지 않은 비동기 함수의 실행 순서를 제어할 수 있게 도와준다. 콜백 패턴에 비해 코드 가독성이 좋고 반환된 결과물을 사용하기 편하다. Promise 작동..
-
함수형 프로그래밍Java Script/기본 개념 정리 2020. 8. 8. 17:20
함수형 프로그래밍 순수 함수를 작성하는 것 숨겨진 입력이나 출력을 최대한 제거하여 코드의 대부분이 입력과 출력의 관계를 기술 f(g(x))식의 수학적 표현을 컴퓨터 언어화 했다고 생각하면 편함 함수 중심 프로그래밍이라고 이해하면 편함 파이프 함수를 여러개 이용할 때, 가독성이 좋게끔 도와주는 기법 f(g(h(x)))와 같은 표현식을 pipe(f,g,h)와 같이 바꿔줌 순수 함수 파라미터를 주었을 때 데이터의 변화없이 항상 같은 값을 내보내는 함수 동일한 입력에 대해 항상 동일한 출력 범위 밖의 변수에 의존 X 함수가 참조 투명성을 지키고, (숨은 입력과 출력)부작용을 줄인다.(없다.) 불변성 (Immutable) 값이 변경되지 않는 것을 의미함. JS의 원시 타입이 이 불변성을 가지고 있음. Boolea..
-
클로저(Closer)Java Script/기본 개념 정리 2020. 8. 8. 17:10
클로저 내부함수가 외부함수의 맥락(context)(변수 등)에 접근할 수 있는 것 호이스팅을 방지할 때 주로 이용한다. 독립적인 (자유) 변수 , 환경이 기억한다. 세 가지 스코프 체인 클로저 자신에 대한 접근(블럭 내 정의된 함수) 외부 함수의 변수에 대한 접근 전역 변수에 대한 접근 외부 함수의 변수에 대한 접근 클로저를 활용한 커링 함수 function adder (x) { return function (y) { return x + y; } }; 클로저 모듈 패턴 var counter = (function() { var privateCounter = 0; function changeBy(val) { privateCounter += val; } return { increment: function() ..
-
Object와 InstanceJava Script/기본 개념 정리 2020. 8. 8. 17:03
객체 object 자바스크립트의 기본 타입 프로퍼티와 메소드등 프로퍼티를 가질 수 있음. 아래 예시에서 OriginObject가 바로 객체. 껍데기라고 이해하면 됨 껍데기를 완성하는 구성요소는 프로퍼티와 메소드 인스턴스 instance 객체와 유사하지만, 객체는 일반적인 의미인 반면에 인스턴스는 현재 생성된 바로 그 객체를 의미한다. Object를 사용해서 Object를 생성하면 Object가 반환됨. 이때 반환된 Object를 인스턴스라고 함 // 생성자 함수를 사용 function OriginObject() { this.name = 'javascript' var obj = new OriginObject(); obj.name = 'jQuery'; console.log(obj..
-
Javascript Class(클래스), Prototype(프로토타입), Property(프로퍼티)Java Script/기본 개념 정리 2020. 8. 8. 16:14
Class(클래스) 자바스크립트에서 클래스란 생성자 함수를 의미함 함수가 특정 기능을 하는 구문(알고리즘, 로직)을 묶을 때 사용하는 문법이라면, 클래스는 이렇게 만들어진 수많은 변수와 함수 중 연관 있는 변수와 함수만을 선별해 포장하는 기술 즉, 연관있는 변수와 함수를 하나로 묶을 때 사용 객체 단위로 코드 그룹화 및 코드 재사용성을 사용하기 위함 일반 함수는 기능 단위의 코드 그룹화 ~> 기능 단위의 중복 코드 제거 및 재사용 Class는 자바의 Class와 같이 동작하는 것이 아니라, prototype을 이용한 기존의 방법을 유지하면서 문법만 지원하는 것(ES6 부터) 따라서, 기본적으로 Prototype에 대한 이해가 선행돼야함. 상속 프로토타입(prototype)을 통한 상속과 super()를 ..
-
JS 표준 입력 방법 (node.js readline), 비동기(Async & Await)패턴Java Script/기본 개념 정리 2020. 7. 27. 22:49
표준 입력 readline 모듈 이용 const readline = require('readline'); const rl = readline.createInterface({ input: process.stdin, output: process.stdout }); // 한 번 입력 rl.question(">>문자를 입력해주세요 : ", (line) => { rl.close(); console.log(line); // 입력 값 찍어보기 }); // 여러번 입력 rl.on("line", (line) => { if(line === "quit") rl.close(); console.log(line); }); rl.on('close', () =>{ process.exit(); }); question 한 번 입력, 파..