본문 바로가기

Backend

(9)
[작성중]세션과 토큰 그리고 JWP 보호되어 있는 글입니다.
[윈도우] mysql5.7에서 한글 깨질때 utf8 세팅 간만에 윈도우에서 하다가 한글 깨지는 현상이 생겼는데 5.7 버젼은 세팅법이 좀 달라서 고생해서 남긴다. my.ini 수정 C:\ProgramData\MySQL\MySQL Server 5.7 utf8으로 변경 CLIENT SECTION부터 SERVER SECTION까지 내용 아래 내용으로 바꿔치기 # CLIENT SECTION # ---------------------------------------------------------------------- # # The following options will be read by MySQL client applications. # Note that only client applications shipped by MySQL are guaranteed # t..
[multer] 파일업로드 파일업로드 경로와 파일 이름 설정// utils/fileUpload.js const multer =require('multer') const path =require('path') let storage = multer.diskStorage({ destination: (req, file, callback) => { // 파일 업로드 경로 callback(null, path.join( _dirname, '../../uploads' )); }, filename: (req, file, callback) => { // 파일 이름 설정 callback(null, file.originalname + '' + new Date().getTime()); } }); ..
[Mac] MySQL 5.7 설치 검색해서 나오는 방법대로 하면 안되서 수많은 시행착오 끝에 성공해서 올린다. 일단 홈브루부터 설치하고 오자 (있으면 brew update 입력) https://brew.sh/index_ko 5.7 버젼 설치 brew install mysql@5.7 설치 끝나고 나면 콘솔에 위 스샷의 내용들이 나오는데, echo로 시작하는 환경변수 등록하는 코드를 복붙해도 내 맥에서는 환경변수가 등록이 안됬다. 이 문제 때문에 추후 명령어들이 다 안먹혔고 이에 다른 방법으로 환경변수를 등록해서 해결했다. 프로필을 vi로 열어서 mysql 5.7 버젼 경로를 입력하자 vi ~/.profile 경로(콘솔창에 써있던 PATH경로에서 = 뒤에 쌍따옴표 뺀거) 복붙하고 저장하고 나가자 export PATH=/usr/local/op..
[가비아] Node.js 웹호스팅 세팅 보호되어 있는 글입니다.
[NVM] Node.js 설치 맥북 포맷해서 다시 설치하는 김에 남겨본다. NVM으로 node.js를 설치하면 언제든지 node.js 버젼을 바꿔가면서 적용할 수 있어서 무척 편리하다. mac은 필수로 사용하는걸 권장한다. 공식 사이트 가서 curl로 시작하는 설치 스크립트 복사해서 입력 https://github.com/nvm-sh/nvm#install-script 맥의 OS버전 높아지면서 기본쉘이 bash에서 zsh로 변경되었으니 쉘에 맞는 명령어를 입력하자. 파일 수정 // bash vi ~/.bash_profile // zsh vi ~/.zshrcvi에서 아래 입력하고 저장하고 종료한다 vi 사용법을 모른다면 i 눌러서 입력모드로 바꾸고 아래 소스 복붙하고 esc 누르고 : 누르고 wq 누르면 된다. export NVM_DIR..
[graphQL] rest API와 차이점, Apollo Server로 맛보기 Rest API Micro service간의 상호호환이 가능하도록 정의한 CRUD 프로토콜 https://reqres.in/ 에서 테스트 데이터용 명세를 확인할 수있음 Graph Query Language 페이스북에서 제작 모든 API가 그래프처럼 하나로 이뤄져있다. Query Language에 해당하는 데이터만 반환해준다. End point는 하나만 정의되어있다.(단일성) Rest API의 단점 Rest API는 API 요청을 위해서 End point(url)을 가지고 API call을 생성해서 호출한다. 이 방식은 오버패칭(과도한 데이터를 로딩)의 문제점을 지닐 수 밖에 없다. 글목록을 조회하려하면 글쓴 회원정보들의 정보도 같이 가지고 오게 된다던지 등 이 방식은 또한 언더패칭(부족한 조회)의 문제도..
Error handling과 custom Error 생성 Error handling 다른 언어에서 제공하는 try/catch 구문이 자바스크립트에서도 존재 자바처럼 특정 클래스/메서드 사용할때 강제하는 것도 아니라서 클라이언트 개발할때 거의 쓸일이 없었다.(그냥 if문으로 처리했었다.) 백엔드서버에서 사용하다보면 에러났을 경우에 어떻게 처리할것인지와 어떤 에러를 내서 로그에 기록할 것인지가 중요 자바에서 Exception 상속 받아서 사용자 정의 예외 만들던것처럼 자바스크립트에서는 클래스나 함수(화살표함수는 X)로 커스텀 에러 만들수가 있다. 커스텀에러와 try/catch 생성자함수를 통해 커스텀 에러 정의 가능(function 혹은 class로 정의) 그러므로 arrow function으로는 불가능(TypeError: CustomError is not a c..