🙆♀️REST API에 대해 이해할 수 있다.
🙆♀️REST API 문서를 읽을 수 있다.
🙆♀️REST API에 맞춰 디자인할 수 있다.
🙆♀️Open API와 API Key에 대해 이해할 수 있다.
🙆♀️Postman이 무엇인지 이해하고 사용할 수 있다.
🙆♀️HTTP API 테스팅이 무엇인지 알 수 있다.
🙆♀️Postman을 사용하여 서버에 GET, POST 요청을 보내고 응답을 받을 수 있다.
🙆♀️(Optional) Postman을 사용하여 Open Weather Map Open API에 요청을 보낼 수 있다.
🙆♀️Chrome Network Tab을 이해할 수 있다.
🙆♀️Chrome Network Tab 사용 방법을 익히고 사용할 수 있다.
function fibonacci(n){
if(n <= 1) {
return n
}
return fibonacci(n-1) + fibonacci(n-2)
}
평소에 쓰던 재귀함수는 fibonacci(999)를 구하려면 f(1)까지 계속해서 stack을 쌓으면서 찾아나서야한다. stack에는 limit이 있는데 이 limit을 넘으면 stack이 overflow돼서 코드를 돌릴 수 없게된다. 그림을 그려보면
f(999)
/ \
f(998) f(997)
/ \ / \
f(997) f(996) f(996) f(995)
이런식으로 계속해서 겹치는 부분이생긴다. top-down 방식으로 f(1)까지 찾아나선다.
dynamic programing을 사용하면
function fibonacci(n) {
let newArr = [0,1] //0,1번째 요소는 고정
let fib = (n) => {
//base case (탈출조건)
if(newArr[n] !== undefined){ //배열에 요소가 존재한다면
return newArr[n] //이미 있는건 그대로 리턴 0,1
}
//recursive case
newArr[n] = fib(n-1) + fib(n-2); //없는건 새로 만들어서 저장
return newArr[n]
}
return fib(n)
}
fibonacci(5)
//0,1,1,2,3,5,8,13,21,34...
일반적인 재귀함수와 달리, dynamic programing은 bottom-up방식으로 앞에서 부터 f(n)을찾아나선다. f(n)을 찾으려면 f(n-1)과 f(n-2)만 기억해두고 다른건 기억할 필요가 없기 때문에 재귀에 비해서 스택을 덜 차지한다.
이해하는데 도움이 되었다.