본문 바로가기

분류 전체보기

(72)
node.js TIL node.js 란 - JavaScript를 compile해주는 엔진 (Chrome V8 JavaScript 엔진)으로 만들어진 - event 기반의 non-blocking 모델로 되어 있어서 속도가 빠른 JavaScript runtime(자바스크립트 구동 환경)이다. node core modules : node와 함께 번들링 되어 있어서 npm에서 install 하지 않아도 require 방식으로 사용할 수 있다. 예) fs, http, url, path npm 이란 - Node Package Manager의 약자로 - 세계에서 가장 큰 오픈 소스 라이브러리 생태계 중 하나이다. - 다운로드 받아야 활용 가능하며 - package.json에 정보들이 들어 있다. package.json 은 - npm을 활..
Quick Sort 오랜만에 알고리즘 문제를 풀게 되어서 기쁘게 생각한다. 꾸준히 해야하는데 생각보다 쉽지 않다. Quick Sort 란 Charles Antony Richard Hoare 가 고안한 정렬 알고리즘이다. 퀵 정렬은 최악의 경우엔 O(n^2)의 시간복잡도를 가지지만 평균적으로 매우 빠른 수행 시간(O(n log n)을 자랑한다. 매 단계에서 적어도 1개의 원소가 자기 자리를 찾기 때문에 이후 정렬 갯수가 줄어든다. 이 때문에 퀵 정렬은 다른 O 알고리즘에 비해 훨씬 빠르게 동작한다. => quick sort 라는 이름의 기원!! 원소들 중 같은 값이 있는 경우 같은 값들의 정렬 이후 순서가 초기와는 달라질 수 있어 불안전 정렬에 속한다. 알고리즘 : divide and conquer 분할 정복을 통해 리스트를..
fetch를 이용해서 웹에서 정보 가져오기 네트워크 요청 - ko.javascript.info fetch JavaScript를 사용하면 필요할 때 서버에 네트워크 요청을 보내고 새로운 정보를 받아오는 일을 할 수 있다. 많은 웹사이트에서는 페이지 자체를 새로 고침하지 않고 해당 정보만 업데이트하기 위해 fetch API를 활용한다. fetch API를 활용하면 특정 url로부터 정보를 비동기적으로 받아올 수 있다. fetch는 IE에서는 지원하지만 그 외 대부분의 모든 브라우저가 지원하고 있다. 기본 문법 let promise = fetch(url, [options]) url : 취득하고자 하는 url options : 선택할 수 있는 매개변후로 method나 header등을 지정할 수 있다. options에 아무것도 넘기지 않으면 request..
웹에서 데이터가 어떤 형태로 전달되는가 WEB ARCHITECTURE 에서 각 요소들의 역할에 대해 알아본다. 1. browser 컴퓨터는 1과 0의 binary data만 이해할 수 있는데 그럼에도 불구하고 HTML, CSS, JS로 작성한 코드를 컴퓨터에서 볼 수 있는 이유가 바로 browser이다. browser 내부의 V8 engine 등이 있어서 코드를 해독하여 컴퓨터에 전달해주고 다시 컴퓨터의 응답을 받아온다. 웹브라우저 - 위키백과 웹 브라우저는 웹 페이지를 가져오기 위해(웹 문서를 열기 위해) 대부분의 웹 서버가 사용하는 HTTP(hyper-text transfer protocol)로 통신한다. HTTP를 이용해 웹 페이지를 가져올 뿐 아니라 웹 서버에 정보를 송신하기도 한다. 페이지들은 주소처럼 이용되는 URL(uniform ..
node.js가 어떻게 파일을 읽나 ( fs.readFile / callback, promise, async&await 구현) 과제 내용 브라우저 환경과는 다르게 node.js 앱은 내 컴퓨터에서 직접적으로 실행되기 때문에 파일을 불러오거나 저장하는 등의 일이 가능하다. node.js에서는 파일을 읽는 비동기 함수를 제공한다. 이를 통해 callback, promise, async&awit 구현을 실습해본다. fs.readFile 공식 API문서 fs.readFile( path, [options], callback ) path : | | | - path에는 파일 이름을 인자로 넘기는데 위와 같이 네 가지 타입이 있다. 보통 문자열로 넘긴다. options : | - encoding, flag 를 넣어줄 수 있다. - optional한 인자로 넣지 않을 수도 있다. 객체 또는 문자열 형태로 넘길 수 있다. - If options ..
promise Promise 객체는 비동기 작업이 맞이할 미래의 완료 / 실패와 그 결과값을 나타낸다. 프로미스를 사용하면 비동기 메서드에서 동기 메서드처럼 값을 반환할 수 있다. 다만, 최종 결과는 반환하지는 않고 대신 프로미스를 반환해서 미래의 어떤 시점에 결과를 제공한다. Promise의 3가지 상태 pending (대기) : 이행/거부되지 않은 초기 상태 fulfilled (이행) : 연산이 성공적으로 완료된 상태 rejected (거부) : 연산이 실패한 상태 promise는 대기 중이지 않으며 이행 또는 거부되었을 때 처리(settled)되었다고 말한다. resolved는 promise가 다른 promise의 상태에 맞춰 처리되었거나 상태가 '잠김'으로 되었다는 의미이다. 생성자 promise( ) 속성 P..
callback, promise, async & await 비동기 흐름 제어 callback function : 함수가 인자로 다른 함수를 전달하는 것을 의미한다. function greeting(name){ alert('Hello ' + name); } function userInput(callback) { // 인자로 다른 함수를 받는다. let name = prompt('Please enter your name.'); callback(name); } userInput(greeting) 위 함수를 실행하면 please enter your name 이라는 입력창이 나와서 name을 입력할 수 있다. 코드에서 보면 let name = prompt('Please enter your name.') 이라는 부분을 실행한 것이다. 그리고 name으로 Kate를 입력하면 callback(..
async 공부하기 전 setTimeout , setInterval 이해하기 얼마 만에 하는 공부이고 얼마 만에 적는 TIL인지 모르겠다. 끝도 나지 않는 코로나... 내 공부를 망치고서야 끝날건가. 두고보자. 씩-씩- setTimeout, setInterval을 공부하는 이유 비동기 상황을 가장 쉽게 만들어 볼 수 있는 방법이 타이머 API를 이용하는 방법이라고 한다. 나는 아직 setTimeout이나 setInterval 등의 타이머 API를 사용하는 방법이 익숙하지 않다. 이번부터는 공식 문서를 자.세.히 읽는 데에 익숙해지기 위해 가능한 공식문서의 순서에 따라 내용을 정리하고 틀을 따르려고 한다. 단, 내가 이해하기 쉽게 정리하고, 설명하는 말투로 적어보려고 한다. 공부 목표 1. setTimeout, setInterval의 사용법 알기 2. 두 가지의 차이점 알기 3. ..