4주차_TIL

201116 DAY16: Underbar

배열, 객체를 다루는 라이브러리: underscore, lodash

  • 배열, 객체를 다루기 위한 라이브러리를 직접 구현해본다.
  • 자바스크립트 배열 내장 메소드(forEach, map, filter, reduce 등)의 원리를 이해할 수 있다.
  • higher order function을 활용하여 기존에 만든 함수를 callback으로 재사용한다.
  • iteratee === callback 함수


201117 DAY17: 비동기 호출

비동기 호출

  • 고차 함수가 콜백 함수를 실행할때, 즉시 실행(synchronously)하거나, 나중에 실행(asynchronously)할 수 있다.
  • iterator: 반복 실행되는 함수
  • eventHandler: 이벤트에 따른 함수

blocking vs. non-blocking

  • blocking: 하고 있던 작업에 대한 blocking이 일어난다. => 요청에 대한 결과가 동시에 일어난다. => 동기(synchronous)
  • non-blocking: 나중에 실행할 수 있다. => 요청에 대한 결과가 동시에 일어나지 않는다. => 비동기(asynchronous)

비동기의 주요 사례

  • DOM element의 이벤트 헨들러
  • 타이머 API(setTimeout)
  • 서버에 자원 요청 및 응답(서버 요청 API)


201118 DAY18: 재귀

재귀(recursion)

  • 어떤 문제를 해결할 때, 구조는 동일하지만 더 작은 경우를 해결함으로써 그 문제를 해결하는 방법
  • 주어진 문제가 구조가 비슷한 더 작은 문제로 나뉘어 질 수 있는 경우, 중첩된 루프가 많거나 중첩의 정도를 미리 알 수 없는 경우
  • 모든 재귀 함수는 재귀 호출 없이 while / for loop로 표현이 가능하다. 그러나 재귀를 사용한 코드가 더 간결하고 이해하기 쉽다.
  • 재귀 함수: 스스로를 호출하는 함수

재귀적 사고

  1. 재귀 함수의 입력값과 출력값 정의하기: 문제를 가장 추상적으로, 단순하게 정리
  2. 문제를 쪼개고 경우의 수를 나누기: 어떤 기준(입력값)에 따라 문제를 구분할 수 있는지 검토 ex)순서, 크기
  3. 단순한 문제 해결하기: 재귀의 기초(base case)를 기반으로 재귀의 탈출 조건(재귀 호출이 멈추는 조건)을 구성하기
  4. 복잡한 문제 해결하기


201119 DAY19: stringifyJSON

JSON

  • JSON 구조: 재귀 함수를 사용할 수 있는 Tree 구조(stringifyJSON)
  • JSON.stringify: seriealize / JSON.parse: deserialize
  • JSON(JavaScript Object Notatio): 데이터 교환을 위해 만들어진 포맷. 객체가 전송 가능하려면 수신자, 발신자 모두 같은 프로그램을 쓰거나, 문자열과 같이 범용적으로 읽을 수 있는 형태여야 한다. JSON은 서로 다른 프로그램 사이에서 데이터를 교환하는 포맷이며, 단순히 자바스크립트에서만 쓰이는 것이 아니라 다른 언어에서도 범용적으로 쓰인다.
  • JSON.stringify: 객체를 문자열로 변환하는 함수 //직렬화(serialize)
  • JSON.parse: 문자열을 다시 객체로 변환하는 함수 //역직렬화(deserialize)
  • JSON 문법: 키는 반드시 쌍따옴표를 붙여야 하며, 문자열 값 또한 쌍따옴표로 감싸야 함. 또한 키와 값 사이, 키-값 쌍 사이에 공백이 있어서는 안된다.


201120 DAY20: API

API

  • API(Application Programming Interface): 서버가 클라이언트에게 리소스를 잘 활용할 수 있도록 인터페이스를 제공한 것
  • 자원(resource): 제공하는 정보
  • 서버(server): 자원을 제공하는 주체
  • 클라이언트(client): 자원을 요청하는 사람, 혹은 프로그램
  • 보통 인터넷에 있는 데이터를 요청할 때는 HTTP라는 프로토콜을 사용하며, 주소(URL, URI)를 통해 접근 가능하다.
  • API key: 자원에 접근할 수 있는 권한
  • fetch API: 서버에 HTTP(URL)를 요청하는 것. 응답은 다양한 형태로 받을 수 있다.(JSON, HTML, Plain text 등)


Categories:

Today_I_Learned

Load Comments