분류 전체보기
[TOOL] joi
joi 란? 자바스크립트용의 스키마 설명 언어이자, 데이터 유효성 검사 툴이다. 우버 이츠 클론코딩 때 환경 변수의 유효성을 검사할 때 사용한 것 일반적으로 툴들은 타입스크립트로 작성되있지 않아 import하는 방법이 따로 있다. import * as Joi from 'joi';
[Error] Apollo Server requires either an existing schema, modules or typeDefs
어떤 에러인가요? API Reference: apollo-server app.use('*', jwtCheck, requireAuth, checkScope); www.apollographql.com nestJS의 공식문서에서 GraphQL을 사용할 때, Apollo 서버를 기반으로 동작한다고 나와있다. Apollo 서버에서는 typeDefs와 resolvers가 필수요소로 들어가 있어야하나, 코드에 작성되있지 않다는 에러가 뜨는 것이다. 에러 메세지 Error: Apollo Server requires either an existing schema, modules or typeDefs 에러 핸들링 방법 typeDefs는 document 혹은 나의 서버의 schema를 표현한다는 것이고, resolvers는..
[Error] Missing "driver" option. In the latest version of "@nestjs/graphql" package (v10) a new required configuration property called "driver" has been introduced. Check out the official documentation for more details on how to migrate
어떤 에러인가요? 이전에는 버전 간에 호환문제가 있어 다운그레이드해서 15버전을 설치했다고 한다. 하지만 최근엔 최신 버전의 "@nestjs/graphql" 패키지(v10)에는 "driver"라는 새로운 필수 구성 속성이 도입되었습니다. 마이그레이션 방법에 대한 자세한 내용은 공식 문서를 참조하십시오.라는 오류메시지로 안내해준다. 에러 메세지 Error: Missing "driver" option. In the latest version of "@nestjs/graphql" package (v10) a new required configuration property called "driver" has been introduced. Check out the official documentation for ..
쿠키와 세션의 차이
쿠키와 세션을 사용하는 이유? HTTP 프로토콜의 특징이자 약점을 보완하기 위해서 사용한다. HTTP 프로토콜의 특징 1. Connectionless 프로토콜 (비연결 지향) 클라이언트가 서버에 요청(Request)을 했을 때, 그 요청에 맞는 응답(Response)을 보낸 후 연결을 끊는 처리방식이다. HTTP 1.1 버전에서 커넥션을 계속 유지하고, 요청(Request)에 재활용하는 기능이 추가되었다. (HTTP Header)에 keep-alive 옵션을 주어 커넥션을 재활용하게 한다. HTTP 1.1 버전에선 디폴트(default) 옵션이다. HTTP가 TCP위에서 구현되었기 때문에(TCP : 연결 지향, UDP : 비연결 지향) 연결 지향적이라고 할 수 있다는 얘기가 있어 논란이 있지만, 아직까진..
[JavaScript] 자바스크립트 엔진과 자바스크립트 런타임
자바스크립트란? 자바스크립트는 프로그래밍 언어이다. 자바스크립트 런타임이란? 런타임이란 프로그래밍 언어가 구동되는 환경을 말한다. 자바스크립트 런타임이란 자바스크립트가 구동되는 환경을 말한다. 자바스크립트 런타임의 종류로는 웹 브라우저(크롬, 파이어폭스, 익스플로러 등) 프로그램과 Node.js 라는 프로그램이 있다. 프로그램들에서 자바스크립트가 구동되기 때문에 자바스크립트 런타임이라고 한다. V8 엔진이란? V8은 자바스크립트 엔진 중 하나이다. V8은 오픈 소스 자바스크립트 엔진 중 하나이다. 자바스크립트와 웹어셈블리(WebAssembly) 엔진이다. 크롬 웹 브라우저와 Node.js 등에서 사용되고 있다. V8은 자바스크립트를 바이트코드로 컴파일하고 실행하는 방식을 사용한다. 웹어셈블리란? 웹어셈블..
[회고] 개인프로젝트 NostandingTS 회고
만들게된 계기? 팀 프로젝트 처음 시작할 때 당시 Nests로 작업해보겠다고 멋모르고 뛰어들었다가 귀한 1주일이란 시간을 날리게 되었었다. 물론 그 과정에서 Nest와 Typescript라는 언어를 공부했던 시간이 아깝다고는 생각하진 않았지만, 프로젝트 진행 기간이 짧은 걸 생각하면 타격이 적다곤 못 했었다. 그래도 팀원들과 열심히 만든 끝에 비교적 성공적인 프로젝트를 완성하긴 했던 거 같다. 거두절미하고 팀 프로젝트가 끝나고서 타입스크립트로 리빌딩하고 싶은 생각에 만들게 되었다. 느낀점? 노마드 코더에서 2주간 진행하는 타입스크립트 챌린지를 신청했다. 매일매일 강의를 봐야 했고, 그 강의에서 나온 내용들로 매일 주어진 문제를 풀었는데 그날 배운 내용을 바로 복습할 수 있는 문제들이기에 머리에 더 잘 남..
[개인프로젝트] Nostanding 팀프로젝트 typescript로 리빌딩 - 6~8일차
진행상태 모든 기능 확인 및 계획했던 코드 작업중 현재까지의 문제점 multerS3에서 'S3' 형식은 'S3Client' 형식에 할당할 수 없습니다.ts(2322) 에러가 발생한다. 해결 tsconfig.json에 "module": "ESNext" 를 "module":"CommonsJS" 로 변경하여 require 구문을 이용해 불러와서 사용으로 오류를 해결해둠. 현재 Bookmark 테이블의 'Bookmark[]' 형식에 'is_marked' 속성이 없습니다.ts(2339) 에러가 발생한다. 해결 데이터를 깔끔하게 보내고싶어서 사용했던 .map 함수를 제거 후, findOne 으로 데이터를 보내주는 방식으로 변경 mysql 데이터를 가지고오기 위한 index.js 파일을 .ts 로 변경시 'Error..
[개인프로젝트] Nostanding 팀프로젝트 typescript로 리빌딩 - 2~5일차
현재까지의 진행사항 지난주에 이런저런 일들이 있어서 조금 지체되기도 했고, 블로그에 글 작성을 하지 못하게 된거 같다. 프로젝트는 짬 날때마다 꾸준히 작업을 했다. 팀 프로젝트 때, sequelize-auto로 데이터베이스 기반을 다져놨었는데 MySQL Workbench를 사용해서 데이터 관리 및 ER다이아그램으로 스키마를 만드는 등 너무 유용하게 사용해서 이번 ts 리빌딩에서도 sequelize-auto를 사용했는데, 생각치 못한 문제들에 직면하게되었다. 우선, 첫째로 models폴더에 index.js 파일을 만들어서 mysql 데이터를 가지고왔었는데 이걸 .ts로 변경하니 계속 'Error: No Sequelize instance passed' 이 에러를 만나게되었다. 약 2일~3일간 계속 검색을 하..