Language 32

Promise와 jQuery Deferred Object

Promise, jQuery Deferred Object JS에서 비동기 처리를 할경우, 콜백함수를 사용하곤 합니다. 하지만, 이러한 콜백함수를 사용하는 것은 복잡도를 높입니다. 이를 해결하기 위한 Promise와 jQuery Deferred Object를 알아보도록 합시다. 예시 - 콜백함수 const callback = function() { console.log('Callback!'); } const hellStart = function(one) { setTimeout(function() { one(); }, 3000); } hellStart(callback); 콜백함수를 사용하여 비동기를 처리할경우, 여러 개의 콜백함수가 nesting되어 복잡도가 높아질 수 있습니다. 이를 콜백지옥이라하는데, 콜..

Language/JavaScript 2020.07.24

자바스크립트 이벤트 루프(Event Loop)

이벤트 루프 먼저 이벤트 루프 가 중요한 개념인 이유를 알아야한다고 생각합니다. 자바스크립트는 '단일 쓰레드' 기반의 언어입니다. 따라서 자바스크립트로 작성한 코드는 동시에 하나의 작업만 처리가 가능합니다. 하지만 자바스크립트를 통해 개발을 해보았다면, 동시에 여러작업이 처리되는 것을 보실 수 있었을겁니다. Node.js, Chrome 에서 사용하는 V8(자바스크립트 엔진)은 단일 호출 스택(Call Stack)을 사용하며, 실행 컨텍스트(실행할 코드에 제공할 환경정보들을 모아놓은 객체) 들을 이 호출 스택에 쌓아두었다가 상단에 있는 컨텍스트부터 실행(First in Last out)합니다. 자바스크립트가 '단일 쓰레드' 기반이라는 말은 맞지만, 실제 자바스크립트가 실행되는 ..

Language/JavaScript 2020.07.16

자바 클래스의 이해와 객체지향 프로그래밍 강의노트3

인프런에서 자바: 클래스의 이해와 객체지향 프로그래밍을 수강하며 적은 강의노트입니다.강의내의 예시와 자세한내용은 강의를 통해 확인하실 수 있습니다. 14. 은닉화객체의 변수를 public으로 설정하였을 경우, 외부에서 마음대로 그 변수를 사용할 수 있음의도하지 않은 범위의 값을 넣을 수 있다.원하지 않는 데이터타입을 강제적으로 형변환하여 넣을 수도 있다.Getter ,Setterxxxxxxxxxxclass Box { private int num; public int getNum() { return num; } public void setNum(int num) { this.num = num; }} 15. 객체 확인클래스와 오브젝트의 응용instanceof는 오브젝트가 지정한 클래스의 오브젝트인지를 조사하기..

Language/Java 2019.10.26

자바 클래스의 이해와 객체지향 프로그래밍 강의노트2

인프런에서 자바: 클래스의 이해와 객체지향 프로그래밍을 수강하며 적은 강의노트입니다.강의내의 예시와 자세한내용은 강의를 통해 확인하실 수 있습니다. 07. 상속상속의 정의상위클래스의 모든 것이 하위클래스에게 전달되는 것(상위 클래스의 멤버변수, 멤버함수 중, private로 접근제한이 된 경우에는 하위 클래스로 전달되지 않음)상속의 장점클래스 간의 체계화된 전체 계층 구조를 파악하기 쉽다.재사용성 증대: 기존 클래스에 있는 것을 재사용할 수 있다.확장 용이: 새로운 클래스, 데이터, 메서드를 추가하기가 쉽다.유지보수 용이: 데이터와 메서드를 변경할 때 상위에 있는 것만 수정하여 전체적으로 일관성을 유지할 수 있다.상속의 구현extends를 사용자바에서 여러 개의 클래스를 동시에 상속하는 다중 상속은 허용..

Language/Java 2019.10.26

자바 클래스의 이해와 객체지향 프로그래밍 강의노트1

인프런에서 자바: 클래스의 이해와 객체지향 프로그래밍을 수강하며 적은 강의노트입니다.강의내의 예시와 자세한내용은 강의를 통해 확인하실 수 있습니다. 01. 클래스의 개념객체의 정의개념적인 객체: 눈에 보이고 만져짐ex. 동물, 자동차물리적인 객체: 눈에 보이지않고 만져지지 않음 개념적ex. 개, 고양이, K5클래스객체와 관련된 데이터와 처리동작을 한곳에 모은 것클래스를 기술하는 것을 클래스를 정의한다라고 함객체와 클래스클래스는 객체의 설계도와 같은 것으로 그 자체로는 이용할 수가 없습니다.이용하기 위해서는 설계도를 기초로 실체를 만들어야 합니다.클래스가 실체화된 것을 오브젝트(객체)라고 하며, 실체화 하는 작업을 '오브젝트를 생성한다' 혹은 '인스턴스화 한다'등으로 말합니다...

Language/Java 2019.10.20

자바스크립트 Array (배열)

MDN web docs를 참고하여 작성하였습니다. ArrayJavascript Array 는 배열을 생성할 때, 사용하는 객체입니다. 기초예제Array를 사용하기 위한 예제들입니다. // 에 결과값을 표시합니다.​x/* 1. 배열 만들기 */let fruits = ['사과', '바나나'];​/* 2. 인덱스로 배열의 항목에 접근하기 */let first = fruits[0];// 사과let last = fruits[fruits.length - 1];// 바나나​/* 3. 배열의 항목들을 순환하며 처리하기 */fruits.forEach(function (item, index, array) { console.log(item, index); });// 사과 0// 바나나 1​/* 4. 배열 끝에 항목 추가하기..

Language/JavaScript 2019.09.18

자바스크립트 고차함수

유인동님의 함수형 자바스크립트 프로그래밍을 시작하며자바스크립트의 함수와 관련된 몇 가지 기능들에 대해 알아보고자 합니다. 고차함수함수를 인자로 받아 대신 실행하는 함수​xfunction callWith10(val, func) { return func(10, val);}function add(a, b) { return a + b;}​callWith10(20, add); // 30위의 예시에서 일반 함수는 add 함수를 인자로 받아 내부에서 대신 실행하는 함수(고차함수)는 callWith10이다. 함수를 리턴하는 함수xxxxxxxxxxfunction constant(val) { return function() { return val; }}​var always10 = constant(10); // 10cons..

Language/JavaScript 2019.08.27

자바스크립트 클로저

유인동님의 함수형 자바스크립트 프로그래밍을 시작하며자바스크립트의 함수와 관련된 몇 가지 기능들에 대해 알아보고자 합니다. 클로져클로져는 자신이 생성될 때의 환경을 기억하는 함수이다. 이 문장만 보면 클로져가 너무 어렵다고 생각될 수가 있습니다. 따라서 조금 더 쉽게 표현하고자 예시를 들어보려 합니다. 예시​xfunction outerFunc() { const outerVar = `I'm outer variable`; function innerFunc() { console.log(outerVar); } return innerFunc;}​outerFunc()(); // I'm outer variable클로져는 자신이 생성될 때의 스코프에서 알 수 있었던 변수를 기억하는 함수다.그렇다면, 자바스크립트의 모든 ..

Language/JavaScript 2019.08.08

자바스크립트 스코프

유인동님의 함수형 자바스크립트 프로그래밍을 시작하며자바스크립트의 함수와 관련된 몇 가지 기능들에 대해 알아보고자 합니다. 스코프클로져에 대해 이해하기 위해서는 스코프의 개념을 필요로합니다.자바스크립트의 스코프는 변수들(variables)의 접근성을 정의한 것입니다. 좀 더 풀어말하자면 변수를 어디에서 어떻게 찾을지 정한 규칙입니다.스코프의 두 가지 종류에는 Global Scope(전역 스코프)와 Local Scope(지역 스코프)가 있습니다.Global scope모든 함수들 혹은 중괄호({})밖에 정의된 변수들을 Global Scope에 있다고 정의합니다.Global Variable(전역 변수)를 선언하였다면, 그 변수는 당신의 코드 어디서나 사용할 수 있습니다. 심지어 함수에서도 말이죠.Global S..

Language/JavaScript 2019.08.03

자바스크립트 일급함수

유인동님의 함수형 자바스크립트 프로그래밍을 시작하며 자바스크립트의 함수와 관련된 몇 가지 기능들에 대해 알아보고자 한다. 일급함수 자바스크립트의 함수는 일급 객체이자 일급 함수이다. 일급이라는 말이 직해하기는 다소 어렵다. 따라서 일급의 조건을 먼저 알아보면 다음과 같다. 변수에 담을 수 있다. 함수나 메서드의 인자로 넘길 수 있다. 함수나 메서드에서 리턴할 수 있다. 그렇다면 일급 함수를 만족하기 위해서는 어떤 조건들이 필요한지 알아보자. 아무 때나(런타임에서도) 선언이 가능하다. 익명으로 선언할 수 있다. 익명으로 선언한 함수도 함수나 메서드의 인자로 넘길 수 있다. 예시 function fnExample1() {} var a = typeof fnExample1 == 'function'..

Language/JavaScript 2019.08.02