Section 1 - 18일차

노태경·2021년 4월 28일
0

SEB-Section 1

목록 보기
21/30

1. Algorithm Baisc 5, 6

  • string 메소드를 활용해서 푸는 2문제 였다
  • 메소드를 바로 떠올리지 못하고, 반복문과 조건문 등으로 풀어버렸는데, 레퍼런스를 보고나서 괜히 더 복잡하게 풀었구나 싶었다. 메소드를 잘 활용하자.

2. JS 고차함수

  • 고차함수는 함수를 인자로 받을 수 있고, 함수의 형태로 리턴할 수 있는 함수

  • 이때 다른 함수(caller)의 인자로 전달되는 함수를 콜백 함수(callback function)이라고 한다

  • 커리 함수(Haskell Curry의 이름을 딴), 함수를 리턴하는 함수

  • 배열 메소드 중 일부가 고차함수에 해당

  • .filter() 메소드는 함수를 인자로 전달받아 그 결과 배열을 리턴한다

  • .map() 메소드는 하나의 데이터를 다른 데이터로 맵핑할 때 사용

  • .reduce() 메소드는 초기값을 기반으로 배열의 요소를 순환하게 되고, 초기값이 없다면 배열의 첫번째 요소가 초기값이 된다.

  • why 고차함수 ?
    추상화는 복잡한 어떤 것을 압축해서 핵심만 추출한 상태로 만드는 것
    주소창에 주소를 입력하면 그과정을 몰라도 결과를 얻을 수 있는 것도 추상화의 결과
    추상화 = 생산성의 향상
    자주 반복해서 사용하는 로직을 별도의 함수로 작성하는 것도 추상화의 좋은 사례
    어떤 함수를 만들어 놓으면, 복잡한 로직을 신경쓰지 않아도 결과를 얻을 수 있다
    함수 > 값을 전달받아 값을 리턴한다 > 값에 대한 로직은 숨겨져 있다 > 값 수준에서의 추상화
    고차 함수는 이러한 추상화의 수준을 사고의 추상화 수준으로 끌어올린다
    추상화의 수준이 높아지는 만큼 생산성도 비약적으로 상승한다!

  • firstclass citizen은 중요한 개념!

3. Pair Programming / 고차함수

  • filter(), map(), reduce()를 활용한 코플릿 문제들이었고, 문제없이 풀었음!

4. Advanced

  • MapReduce 학습하기 (MapReduce Model)
  • 자바스크립트에서 커링(currying)과 클로저(closure)의 차이 이해하기 (js closure vs curry)
  • 선언형 프로그래밍(declarative programming)과 절차형 프로그래밍(imperative programming)의 차이를 배열 메소드를 통해 이해하기 (js imperative vs declarative)
  • 함수의 조합(function composition)에 대해 학습하기 (javascript function composition)

작성중

profile
개발자 공부 일기😉

0개의 댓글