chongin12 / week02

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

자바스크립트 기본 문법 #2

배열의 내장 함수

custom 함수

자바스크립트의 배열이 내장하는 함수들을 직접 구현해 본다. 함수의 원형은 w3schools 나 mdn 사이트에서 확인할 수 있다.

  1. filter > customFilter
  2. every > customEvery
  3. some > customSome
  4. forEach > customForEach
  5. map > customMap
  6. reduce > customReduce
  7. flat > customFlat

위의 함수들은 protochain을 이용해 실제 Array에 연결합니다.

실제 데이터 다루기

https://yts.lt/api#list_movies 의 api를 이용해 토렌트 영화 정보를 data.js에 저장해두었다. 모듈로 분리된 파일을 불러와서 아래의 문제를 해결한다.

아래의 문제를 위에서 만든 custom함수로 해결하는 방법과 lodash 라는 라이브러리를 이용해서 해결하는 방법을 모두 사용해본 후 비교해봅시다.

  1. 영화의 id, 제목, 년도, 평점, 장르 데이터를 갖고있는 리스트를 생성한다.
  2. 평점을 input으로 받아 해당 평점 이상의 평점을 갖는 리스트를 반환한다.
  3. 갖고있는 영화리스트들의 모든 장르를 추출해 중복되지 않은 장르 리스트를 생성한다.

lodash와 같은 자바스크립트 라이브러리 사용법

자바스크립트 라이브러리를 node환경에서 사용하기 위해 npm이라는 모듈 관리자를 이용해서 설치를 해야합니다.

  1. npm init 명령을 통해 node 프로젝트를 시작합니다. (클론 받은 디렉토리에서 실행, 입력해야하는 모든 것은 enter키로 넘어갈 수 있음) 프로젝트가 생성되면 package.json 파일이 생성됩니다.
  2. npm install lodash 명령을 통해 라이브러리를 설치합니다. 라이브러리가 설치되면 package.json 파일에 dependencies 라는 항목이 생기고 라이브러리가 추가됩니다.
  3. .gitignore 파일을 생성하고 /node_modules 라고 작성해줍니다. 라이브러리 파일이 디렉토리에 생성되었기 때문에 git add . 명령으로 커밋을 하면 해당 파일도 함께 저장이 됩니다. 라이브러리는 언제든 다시 받을 수 있고 설치할 라이브러리 리스트는 package.json 파일에서 관리되기 때문에 라이브러리 파일 자체를 git으로 관리하지 않기 위해 작성합니다.
  4. 원하는 js파일에서 require명령을 통해 라이브러리를 불러올 수 있습니다.

TDD

개발후 테스트를 진행하는 것이 아니라 테스트 코드를 먼저 작성한 뒤 개발을 진행하면 훨씬 빠른 속도로 목표에 도달할 수 있습니다.

assertion

  1. assert(exception) 함수를 작성합니다. input으로 들어온 값이 false라면 throw로 실패 메세지를 전달합니다.

  2. expect(value, equal) 함수를 작성합니다. 첫번째 인자로 특정 함수의 실행을, 두번째 인자로 해당 함수를 실행했을 때의 결과를 직접 입력해줍니다.
    두 값의 동치의 결과를 assert함수로 전달합니다. ex) expect((function(a, b) { return a + b;})(2,4), 6) // 예외가 발생하지않음

  3. 주어진 결과가 값이 아닌 객체 또는 배열인 경우에도 같은 동작을 하도록 합니다. 위의 영화리스트 문제와 복잡한 형태의 중첩된 객체들로 직접 테스트를 해봅니다.

jest

jest 라이브러리를 설치한 후 직접 만든 assert함수 대신 사용해보고 비교해봅니다.

다음 스터디 내용

실행컨텍스트

스코프

두 내용을 html 파일로 정리합니다. 복잡하게 만들지 않되 css도 함께 작성합니다.

About


Languages

Language:JavaScript 100.0%