전체 글 111

TIL 55일차_비동기처리3: async & await

async와 await는 자바스크립트의 비동기 처리 패턴 중 가장 최근에 나온 문법이다. 기존의 비동기 처리방식인 콜백함수와 프로미스의 단점을 보완한 문법이다.😃 코드 async function logName() { let user = await fetchUser('domain.com/users/1'); if (user.id === 1) { console.log(user.name); } } async & await 기본 문법 async function 함수명() { await 비동기_처리_메서드_명(); } 함수의 앞에 async라는 예약어를 붙인다. 함수의 내부 로직 중 HTTP 통신을 하는 비동기 처리 코드앞에 await를 붙인다. 이때, 비동기 처리 메서드가 꼭 프로미스 객체를 반환해..

TIL 54일차_비동기처리2: Promise

Promise Promise: 자바스크립트 비동기 처리에 사용되는 객체 자바스크립트의 비동기 처리를 위해서 크게 3가지가 사용된다. 콜백함수, Promise, async와 await 콜백함수로 처리 function getData(callbackFunc) { $.get('url 주소/products/1', function(response) { callbackFunc(response); // 서버에서 받은 데이터 response를 callbackFunc() 함수에 넘겨줌 }); } getData(function(tableData) { console.log(tableData); // $.get()의 response 값이 tableData에 전달됨 }); Promise로 처리 function ge..

TIL 53일차_비동기처리1: 콜백함수

비동기 비동기란? 요청과 결과가 동시에 일어나지 않는 것. 따라서 다른 요청이 들어오면, 이전 요청의결과를 기다리지 않고 새 요청을 수행한다. 자바스크립트에서 비동기 처리가 필요한 이유를 생각해보자. 화면에서 서버로 데이터를 요청했을 때, 서버가 언제 그요청에 대한 응답을 줄지도 모르는데 다른 코드를 실행 안한 채, 무작정 기다리고 있을수는 없다. 비동기 처리방식의 문제점 function getData(){ let tableData; $.get('https://domain.com/products/1', function(response) { tableData = response; }); return tableData; } console.log(getData()); // undefined getData()를..

TIL 52일차_알고리즘: 탐욕알고리즘과 동적계획법

알고리즘 ... 😭 하루이틀만에 머릿속에 너무많이 입력한 것 같다... 정리하자. 탐욕 알고리즘 (Greedy Algorithm) 여러 경우 중, 그 '순간' 에 최적이라고 생각하는 것을 선택해 나가는 방식. '순간'이라고 정의하는 선택은 Local하게는 최적이지만, 그 선택이 계속되어 Global하게 해답을 만들었을 때, 그것이 최적이라는 보장은 없다. Greedy Algorithm이 최적의 결과를 보장하기위해서는, Greedy Choice Property 와 Optimal substructure라는 두 가지 속성을 만족해야한다. Greedy Choice Property : subproblem의 해답이 다음 subproblem에 영향이 가지 않는다는 독립적인 연산 속성 Op..

TIL 51일차_알고리즘: 유클리드 호제법

호제법(互除法)이라는 말은 서로(互) 나누기(除) 때문에 붙여진 이름이다. 이 뜻의 '호제' 라는 단어가 따로 있지는 않다. 이 알고리즘은 유클리드의 원론에 적혀있는 내용으로, 인류 최초의 알고리즘이라 한다. 유클리드 호제법 개념 알고리즘의 골자는 다음과 같다. 두 양의 정수 a, b (a>b)에 대하여 a = bq + r (0

TIL 50일차_시간복잡도(Time Complexity)

시간복잡도 란? 시간복잡도를 한문장으로 정리하면 "입력값이 커짐에 다라 증가하는 시간의 비율" 이라고 할 수 있다. 이 시간 복잡도를 표기하는 방법은 여러가지가 있지만, Big-O 표기법 (빅오표기법) 이 가장 흔하게 사용된다. Big-O표기법은 최악의 경우 입력값이 증가함에 따라 시간복잡도가 얼마나 증가하는지 표기하는 방법이다. Big-O 표기법의 종류 아래는 빠른 시간복잡도 순으로 나열한 것이다. O(1) - O(logn) - O(n) - O(nlogn) - O(n^2) - O(2^n) - O(n!) 빅오표기법을 표기할 때는, 계수나 정수값들은 생략한다. 예를 들어, 입력값이 1 증가할때마다 코드의 실행시간이 2초씩 증가한다고 하면, '이 알고리즘은 O(2n) 이구나!' 라고 생각할 수..