ABOUT ME

-

Today
-
Yesterday
-
Total
-
  • ReactJS | Json-Server & Concurrently
    JavaScript/React JS 2020. 4. 21. 09:28

    json-server

    가상의 데이터 서버를 구성할 수 있도록 도와주는 라이브러리


    설치

    yarn glodbal add json-server

    데이터 입력

    루트 폴더에 mock 폴더를 만들고 db.json이라는 파일을 만들어 가상의 데이터 입력

    {
        "data": [
            {
                "id": 1,
                "name": "pathas",
                "age": 1000,
            },
            {
                "id": 2,
                "name": "pathasHH",
                "age": 1000,
            }
        ]
    }

    json-server 구동

    package.json에 json-server를 실행하는 "mockserver" 명령어 추가

    ...
        "scripts": {
            "start": "react-scripts start",
            "build": "react-scripts build",
            "test": "react-scripts test",
            "mockserver": "json-server --watch --delay 500 --port 4000 mock/db.json"
        }
    ...
    yarn mockserver

    성공 시 아래와 같은 화면 출력

    $ json-server --watch --delay 500 --port 4000 mock/db.json
    
      \{^_^}/ hi!
    
      Loading mock/db.json
      Done
    
      Resources
      http://localhost:4000/data
    
      Home
      http://localhost:4000
    
      Type s + enter at any time to create a snapshot of the database
      Watching...
    
    GET /data 200 509.617 ms - 124

    ※ 터미널을 두 개 열어서 리액트 개발 서버와 json-server를 각각 구동해야 함


    json-server 데이터 받기

    http://localhost:4000/data 접속 시 다음과 같이 json 형식의 데이터 확인 가능

     

    데이터를 실제로 받기 위해서는 XMLHttpRequest, fetch API, axios Library 등을 사용해야 함


    concurrently

    CRA는 기본적으로 개발 서버가 주어지기 때문에 json-server 또는 node.js로 구축한 서버를 동시에 실행시키려면
    각각의 명령 프롬프트를 사용해야 하는데 concurrently 라이브러리를 사용하면 이를 한 번에 실행시킬 수 있음


    설치

    yarn add concurrently

    사용

    package.json에 concurrently를 사용한 명령어 추가

    • 가장 앞에 concurrently 작성
    • 각각의 명령어를 ""로 묶어 주어야하는데 ""안에 ""를 바로 사용할 수 없기 때문에 \ " \ " 사이에 명령어 작성
    ...
      "scripts": {
        "start": "react-scripts start",
        "build": "react-scripts build",
        "test": "react-scripts test",
        "mockserver": "json-server --watch --delay 500 --port 4000 mock/db.json",
        "dev": "concurrently \"yarn start\" \"yarn mockserver\"",
        "eject": "react-scripts eject"
      }
    ...
    yarn dev

    yarn dev만 입력해도 리액트 개발 서버와 json-server를 동시에 구동 가능


    데이터 서버를 직접 구현하기 힘들거나 간단한 테스트가 필요할 때 사용할 수 있는 유용한 라이브러리인 json-server에 대해 살펴보았습니다. concurrently 라이브러리를 사용하면 json-server뿐만 아니라 실제 서버 역시 동시에 구동시킬 수 있게 됩니다.

    실제 서버 구동 시에는 package.json 파일에 proxy 설정을 해주어야 하니 참고 바랍니다.

     

    참고 도서: [ Do it! 리액트 프로그래밍 정석 / 저자: 박호준 / 출판사: 이지스퍼블리싱 ]

    댓글

Designed by Tistory.