본문 바로가기

토이프로젝트/개인 블로그

개인 블로그 만들기 - 2021.01.21 (gitignore, GraphQL, .env, mongodb)

반응형

프론트엔드 

 

1. FrontEnd 디렉터리에 .next 디렉터리를 .gitignore 처리를 해주었습니다. 

node_modules
.next

 

2. GraphQL에 대한 학습

    - API 질의어, 페이스북에서 개발한 언어인데, REST API를 대체해 사용할 수 있습니다.

    - 기존의 REST API와는 다르게 클라이언트에서 서버로 원하는 데이터를 쿼리로 작성해 원하는 데이터만 가져올 수 있습니다. 

    - 오버패칭(OverFetching)의 최소화 : 오버패칭(OverFetching)은 당장 필요한 데이터 외에 필요없는 데이터들까지 서버에서 받아오는 것을 뜻하는데 GraphQL은 클라이언트에서 원하는 데이터만 쿼리로 작성해 서버에서 가져올 수 있습니다.

    - 언더패칭(UnderFetching)의 최소화 : 한 번에 여러 쿼리를 요청할 수 있기 때문에 언더 패칭의 문제를 최소화할 수 있습니다.

    - GraphQL 쿼리 종류

         - Query : REST API의 GET 메서드라고 생각하면 됩니다. 데이터를 조회할 때 사용합니다.

         - Mutation : REST API의 POST, PUT, DELETE 등의 메서드라고 생각하면 된다. 보통 데이터를 조작할 때 많이 사용합니다. 

         - Subscription : 실시간 통신을 할 때 사용하는 쿼리입니다. 구독하는 기능이 있어서 Mutation 쿼리에서 데이터를 조작할 때 그 값을 구독해 변경사항을 실시간으로 가져올 수 있습니다.

    - Int : 32비트형 정수

    - Float : 실수형

    - String : 문자열

    - Boolean : true | false

    - ID : id값임을 명시적으로 표현하기 위해 사용함

 

백엔드 

 

1. .env 설정하기

    -  dotenv 파일 설치

yarn add dotenv

    - 루트 디렉터리에 .env 파일 생성 후 PORT 설정

PORT=4000

   - index.js에서 require('dotenv').config();를 설정합니다.

   - process.env.PORT를 이용해서 port를 숨길 수 있습니다.

 

2. mongoDB

   - C++ 로 작성된 문서(document)지향적 데이터베이스

   - 고정된 스키마를 가지고있지 않습니다.

   - 문서? 

       - RDBMS의 record와 비슷한 개념입니다. 

       - 한개 이상의 key-value를 가집니다. 

   - 한 개의 문서

{
    "_id": ObjectId("5099803df3f4948bd2f98391"),
    "username": "velopert",
    "name": { first: "M.J.", last: "Kim" }
}

 

 

참고 블로그 : chanyeong.com/blog/post/36(graphQL)

반응형