0903 TIL HTTP / 네트워크 (2)

냐하호후·2021년 9월 3일
0

TIL

목록 보기
37/101

🙆‍♀️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 사용 방법을 익히고 사용할 수 있다.

dynamic programing

평소에 쓰던 일반 재귀함수

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

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)만 기억해두고 다른건 기억할 필요가 없기 때문에 재귀에 비해서 스택을 덜 차지한다.

참고

http 요청과 응답

이해하는데 도움이 되었다.

profile
DONE is better than PERFECT

0개의 댓글

관련 채용 정보