Node.js(11)
-
자바스크립트의 역사
학습할때 과거, 역사를 아는 것은 굉장히 중요하다. 역사를 모른다면 왜 현재의 Javascript 를 사용하게 되었는지 알 수 없다. Javascript 가 왜 이렇게 발전했고 변화했는지 알아보고자 한다. Javascript 의 등장 (1995~1997) 1990 년대 초중반은 인터넷의 중요한 시기였다. 넷스케이프와 마이크로소프트와 같은 큰 기업들은 브라우저 전쟁을 벌이고 있었다. 이때 사용자들은 동적이고 상호작용적인 웹 페이지를 원하게 되었다. 1995 년에 브랜던 아이크가 브라우저에서 사용할 수 있는 정말 간단한 스크립트 언어를 개발했다. 원래 이름은 mocha 였지만 이를 넷스케이프 커뮤니케이션즈에서 LiveScript 로 릴리즈했고, 1997년 넷스케이프 2.0 에서 Javascript 로 이름이..
2024.04.23 -
passport.js [ node.js ]
왜 passport 로그인을 사용할까? passport.js 는 서비스가 다양한 로그인을 동시에 사용해야할 때, 즉 strategy 만 짜면 나머지는 하면 알아서 된다. req.user 를 만들어 주는 것, 매번 세션 검증해주는 것 등이 내부에서 저절로 구현되기 때문에 사용한다. 1. 다양한 인증 전략 지원 passport.js 는 500개가 넘는 인증 전략을 지원한다. 이는 소셜로그인, OAuth, OpenID 등 다양한 인증 방법을 통일된 API 로 사용할 수 있게 해준다. 즉 인증 전략이 변경되거나 추가되어도 일관된 코드 구조를 유지할 수 있다. 2. 유연성과 확장성 passport.js 는 단지 인증 메커니즘을 제공하는 미들웨어일 뿐, 세션 관리나 사용자 데이터 관리 등을 직접적으로 다루지는 않는..
2023.07.27 -
에러처리 미들웨어 [ express ] [ node.js ]
다른 미들웨어 함수와 동일한 방법으로 오류 처리 미들웨어 함수를 정의할 수 있지만, 오류 처리 함수는 3개가 아닌 4개의 인수, 즉 (err. req. res, next) 를 갖는다는 점이 다르다. 오류 처리 미들웨어는 다른 app.use() 및 라우트 호출을 정의한 후에 마지막으로 정의해야 하며, 예를 들면 다음과 같다. // app.js // ... // 에러 핸들링 미들웨어 정의 app.use((err, req, res, next) => { const status = err.statusCode || 500; const errorMessage = err.message || "서버 에러"; res.status(status).json({ errorMessage, }); }); // ... 미들웨어 함수 ..
2023.07.22 -
multer
inpa Dev 님의 블로그를 참고하여 적은 글입니다. multer 란? 이미지나 동영상 등을 비롯한 여러가지 파일들을 멀티파트 형식으로 업로드 할 때 사용하는 미들웨어 이다. 멀트파트 형식이란 enctype 이 multipart/form-data 인 폼을 통해 업로드하는 데이터의 형식을 의미한다. multer 문법 storage 는 저장할 공간에 대한 정보, 디스크나 메모리 저장 기능 diskStorage 는 하드디스크에 업로드 파일을 저장한다는 것 destination 은 저장할 경로 filename 은 저장할 파일명(파일명 + 날짜 + 확장자 형식) limits 는 파일 개수나 파일 사이즈를 제한할 수 있다. const multer = require('multer'); const fs = requi..
2023.07.20 -
GitHub Action
Github Action 이란? Github Actions 를 사용하여 리포지토리에서 바로 소프트웨어 개발 워크플로를 자동화, 사용자 지정 및 실행합니다. CI/CD 를 포함하여 원하는 작업을 수행하기 위한 작업을 검색, 생성 및 공유하고 완전히 사용자 정의된 워크플로에서 작업을 결합 할 수 있다. Github 에서 공식적으로 제공하는 CI/CD 툴이다. 즉, 개발의 워크플로를 자동화 할 수 있게 도와주는 도구이다. Github Actions 를 사용하면 자동으로 코드 저장소에서 어떤 이벤트가 발생했을 때 특정 작업이 일어나게 하거나 주기적으로 어떤 작업들을 반복해서 실행 시킬 수도 있다. 어떤 새로운 코드가 메인 브랜치에 유입(push)되면 Github Actions 를 통해 소프트웨어를 빌드하고 상용..
2023.07.16 -
CORS [ TIL ] [ node.js ]
Problem 배포를 완료하고 프론트에 데이터를 주었는데 프론트에서 CORS 오류가 발견됨 Try npm i cors // app.js // ... const cors = require("cors"); // ... let corsOptions = { origin: "*", credential: true, }; // ... Solve 옵션에 origin 을 여러번 바꿔보았으나 프론트에 문제가 계속되었고, 위의 코드로 변경 후, 프론트에서 CORS 관련된 코드를 모두 제거하니 해결 되었다. What I Learned CORS 에 대해 배웠다. CORS 는 브라우저에서 보안적인 이유로 cross-origin HTTP 요청들을 제한한다. 그래서 요청을 하려면 서버의 동의가 필요한데 동의를 하지 않는다면 브라..
2023.07.16