본문 바로가기

분류 전체보기

(231)
Promise란? Promise가 뭔가요? “A promise is an object that may produce a single value some time in the future” 프로미스는 자바스크립트 비동기 처리에 사용되는 객체입니다. 여기서 자바스크립트의 비동기 처리란 ‘특정 코드의 실행이 완료될 때까지 기다리지 않고 다음 코드를 먼저 수행하는 자바스크립트의 특성’을 의미합니다. 비동기 처리에 대한 이해가 없으시다면 이전 글 ‘자바스크립트 비동기 처리와 콜백 함수’를 읽어보시길 추천드립니다 :) Promise가 왜 필요한가요? 프로미스는 주로 서버에서 받아온 데이터를 화면에 표시할 때 사용합니다. 일반적으로 웹 애플리케이션을 구현할 때 서버에서 데이터를 요청하고 받아오기 위해 아래와 같은 API를 사용합니다...
async , await란? async, await란? 기존의 콜백 함수와 프로미스의 단점을 보완한 비동기 처리 방식 async, await의 필요성 // fetchUser()함수의 데이터가 받아질 때까지 기다려야 한다고 가정함 // 기존 콜백 함수 이용한 비동기 방식 function logName(callback){ var user = fetchUser('domain.com/users/1'); callback(user); } logName(function (user){ if (user.id === 1) { console.log(user.name); } }); // 10줄 코드.. // async, await 이용한 비동기 방식 async function logName() { var user = await fetchUser('dom..
동기(Sync), 비동기(Async)란? 동기(synchronous : 동시에 일어나는)란? 동기는 말 그대로 동시에 일어난다는 의미이며 요청과 결과가 동시에 일어납니다. 바로 요청을 하면 시간이 얼마가 걸리던지 요청한 자리에서 결과가 주어져야 합니다. -요청과 자리에 결과가 동시에 일어남 = A와 B 사이의 작업 처리를 동시에 맞추겠다. 비동기(Asynchronous : 동시에 일어나지 않는)란? 비동기는 동시에 일어나지 않는다를 의미이며 요청과 결과가 동시에 일어나지 않습니다. -요청한 자리에 결과가 주어지지 않음 = A와 B사이의 작업 처리를 동시에 맞추지 않겠다. [ 예시 ] 출처 : https://blog.hanumoka.net/2018/10/06/javascript-20181006-javascript-callback/ 이해 잘 되게 ..
HTTP 상태 코드 아래는 HTTP(하이퍼텍스트 전송 프로토콜) 응답 상태 코드의 목록이다. IANA가 현재 공식 HTTP 상태 코드 레지스트리를 관리하고 있다. 모든 HTTP 응답 코드는 5개의 클래스(분류)로 구분된다. 상태 코드의 첫 번째 숫자는 응답의 클래스를 정의한다. 마지막 두 자리는 클래스나 분류 역할을 하지 않는다. 첫자리에 대한 5가지 값들은 다음과 같다: 1xx (정보): 요청을 받았으며 프로세스를 계속한다 2xx (성공): 요청을 성공적으로 받았으며 인식했고 수용하였다 3xx (리다이렉션): 요청 완료를 위해 추가 작업 조치가 필요하다 4xx (클라이언트 오류): 요청의 문법이 잘못되었거나 요청을 처리할 수 없다 5xx (서버 오류): 서버가 명백히 유효한 요청에 대해 충족을 실패했다 목차 11xx (조..
클로저(Closure)란? 클로저(Closure)란? MDN에서는 클로저를 다음과 같이 정의하고 있다. 클로저는 독립적인 (자유) 변수를 가리키는 함수이다. 또는, 클로저 안에 정의된 함수는 만들어진 환경을 ‘기억한다’. 흔히말해 함수 내에서 함수를 선언하고 사용하면 클로저라고 한다. 여기서 바깥쪽 함수는 외부함수, 그 안에서 선언한 함수는 내부함수라고 부른다. 대개 내부함수를 리턴하고 사용은 외부함수의 바깥에서 하게된다. 말로 설명하면 어려우니 아래 코드를 보자. function hello(name) { let _name = name; // 변수명 앞에 underscore(_)를 포함하면 private val임을 의미 return function() { // 클로저 함수 console.log('Hello, '+_name); } ..
var, let, const 차이점 JavaScript에서 변수 선언 방식인 var, let, const 의 차이점에 대해 알아보자. 1. 변수 선언 방식 우선, var는 변수 선언 방식에 있어서 큰 단점을 가지고 있다. var name = 'bathingape' console.log(name) // bathingape var name = 'javascript' console.log(name) // javascript 변수를 한 번 더 선언했음에도 불구하고, 에러가 나오지 않고 각기 다른 값이 출력되는 것을 볼 수 있다. 이는 유연한 변수 선언으로 간단한 테스트에는 편리 할 수 있겠으나, 코드량이 많아 진다면 어디에서 어떻게 사용 될지도 파악하기 힘들뿐더러 값이 바뀔 우려가 있다. 그래서 ES6 이후, 이를 보완하기 위해 추가 된 변수 선..
비동기 프로그래밍이란? 동기적인 것은 순서대로 실행된다고 볼 수 있다. 비동기식은 아래와 같이 순차적으로 하되, 다 끝나지 않아도 그다음 진행하게 된다. (예약상태라고 보면 된다!!) 멀티태스킹이 구현된다고 있다. -> 식사완료하면 callback 이라고 한다 자바 스크립트는 싱글 스레드이지만 자바 스크립트는 웹 브라우저나 Node.js의 자바스크립트 엔진에서 실행된다. 이 엔진에는 자바스크립트를 돌리는 하나의 쓰레드, 자바스크립트 함수 전용 특급 선로가 있음. 다른 포함레벨에서의 함수들은 역순이지만, 다른 포함 레벨에서의 함수는 순서대로 처리 되기 때문에, 선로는 먼저들어나온대로 하는 큐이고, 함수는 스택형태이지만, 이 차이를 인지하도록 한다!! 자바스크립트 + Web API 기능을 동시에 수행한다. (타이버, 업다운로드, ..
함수형 프로그래밍이란? 함수형 언어란 어떤 언어에서도 적용할 수 있는 부분이다. 함수형 프로그래밍의 가장 중요한 개념은 side effect를 극단적으로 배제하는 형태의 프로그래밍을 하는 것이 함수형 프로그래밍이다. 일반적으로 프로그래밍을 하다보면 반복적인 작업들을 하나로 묶어주는 일들이 많다. 예를 들어 프로그래밍에서 A에다가 2를 더하는 작업이 있다고 보자. 근데 다음에 또 2를 더하는 일이 생기면 그에 맞는 함수를 만들어서 그것들을 묶어주고 다음부터는 같은 코드 명려을 사용하지 않더라도 해당 함수를 콜하기만 해도 동작하게끔 하는 느낌인데 그렇게 되면 필연적으로 함수 그자체의 본연의 기능이 아닌 코드를 묶어 놓는 어떤 코드 스코프 같은 느낌이 들때가 있다. 그러면 그 함수가 그 자체의 역할이 아니라 코드들을 묶어놓는 이너스..