-
1월 9일 - 웹 사이트 만들기(7) - 1월 첫째 주 결산공부/웹 사이트 개발(끝) 2021. 1. 10. 16:19
현 스택
Backend
node.js
express
Typescript
Sequelize
GrpahQL
MySQL
Frontend
React
Next.js
Typescript
axios
axios
선택이유
- 지인 개발자의 추천
- 사이트(openbase.io/categories/js/best-javascript-http-request-libraries?orderBy=RECOMMENDED&)에 나와 있는 랭킹 참고
장점
- node.js와 브라우저에서 모두 작동한다.
- promise api를 지원한다.
- 요청을 set 혹은 cancel할 수 있따.
- response timeout을 set할 수 있다.
- Cross-site request forgery 취약 공격을 막을 수 있다.(위키 백과 참고 - ko.wikipedia.org/wiki/%EC%82%AC%EC%9D%B4%ED%8A%B8_%EA%B0%84_%EC%9A%94%EC%B2%AD_%EC%9C%84%EC%A1%B0)
- 요청, 응답이 처리되기 전에 intercept할 수 있다.
- upload progress를 지원한다.
- react, vue 프로젝트에서 widely하게 사용된다.
단점
사용하기 까다롭다.
GraphQL
선택이유
- 지금도 사용하고 있지만 초기 셋팅은 안 해봤음
- 최적화에 더 유리한 것으로 보임
REST API와의 차이점
- REST API는 architectural concetp for network-based sw이다. graphQL은 쿼리 랭귀지이다. 하나의 엔드 포인트를 갖는다.
- REST API는 새로운 API를 만드는 것에, graphQL은 퍼포펀스, 유연성 최적화에 초점을 맞춘다.
- REST API는 단순하다. 필요한 Object가 2개 있으면 그 2개를 반환하는 api를 요청하면 되기 때문이다. 하지만 그 object의 특정 feild만 필요한 경우에도 전부를 가져오는 단점이 있다. graphQL은 특정 feild만 가져오는 것이 가능하다.
- 뭔가 새로운 경험을 위해 prisma를 써보고 싶지만 sequelize를 잘 응용하고 있는 단계도 아니고, 셋팅도 안 해봤고 결정적으로 사람들이 너무 압도적으로 sequleize를 많이 사용하고 있음
- 많이 사용하는 것은 sequelize가 압도적으로 많이 쓰임 (www.npmtrends.com/prisma-vs-sequelize)
- doc가 잘되어 있는 것은 prisma
- prisma는 graphQL의 스키마를 보고 자동으로 DB 모델링을 해주는 장점이 있음
- prisma를 쓰려고 하니 불필요한 스택들을 도입하게 된다는 말이 있음
- prisma는 안 써봤고, sequelize는 써봤지만 셋팅을 해본 적은 없음
이번 주 한일
- 사용할 스택 정하기
- sequelize를 통해 데이터 생성해보기
- 인썸니아로 GraphQL 쿼리 요청하고, 데이터 반환 받아보기
다음 주 할일
일: 회원가입 관련 DB 만들기, sequelize, graphQL 코드 구조화
월: 완전 간단한 회원가입 폼 만들고 API 요청해보기(토큰으로 요청하는 것까지) - 1
화: 완전 간단한 회원가입 폼 만들고 API 요청해보기(토큰으로 요청하는 것까지) - 2
수: 어디에 배포할지 결정하기
목: 실제로 배포하기
금: 휴일
토: 실제로 배포하기
'공부 > 웹 사이트 개발(끝)' 카테고리의 다른 글
1월 11~12일 - 웹 사이트 만들기(9) - reactstrap, graphql 요청, jwt 토큰 (1) 2021.01.11 1월 10일 - 웹 사이트 만들기(8) - 회원가입 관련 테이블 만들기, sequelize, GraphQL 코드 모듈화 (0) 2021.01.10 1월 7일 - 웹 사이트 만들기(6) - graphQL 쿼리 날려보기, 결과물 sequelize로 반환하기 (0) 2021.01.07 1월 5일~6일 - 웹 사이트 만들기(5) - sequelize 코드 실행시키기 (0) 2021.01.05 1월 4일 - 웹 사이트 만들기(4) - 각종 스택 결정하기 (0) 2021.01.04