Back-End
-
[Express.js] 미들웨어(Middleware)Back-End/Express.js 2021. 2. 15. 01:17
마지막으로, Express의 기본개념인 미들웨어에 대해 공부한 내용을 정리하려고 한다. 프로젝트 서버를 구축하기 위해 Express를 공부하면서, 미들웨어라는 단어를 접할수록 혼란스러웠다. Router에서 app.use() 내 함수도 미들웨어, body-parser 나 cors 들도 미들웨어(Third-Party) 라고 명명하는 것이었다. 애써 무시하고 기능들을 구현했었지만, Express 기본학습을 마무리하기 전에 미들웨어의 개념을 한 번 정리할 필요성을 느꼈다. 📗 미들웨어(Middleware) 란? Express 공식문서에서는 미들웨어를 아래와 같이 정의한다. Express는 자체적인 최소한의 기능을 갖춘 라우팅 및 미들웨어 웹 프레임워크이며, Express 애플리케이션은 기본적으로 일련의 미들웨어..
-
[Express.js] CORS(Cross-Origin Resource Sharing)Back-End/Express.js 2021. 2. 13. 00:46
😵 서론 2차 프로젝트 중반부, 로그인/회원가입 모달창도 만들고 Express도 어느정도 공부해서 로컬서버를 구축했다. 드디어, 프론트와 백을 연결한다는 기대감에 차있던 순간! 아래와 같은 에러창과의 첫만남을 가졌다~ 🚨 Access to fetch at ‘http://localhost:5000/users/signin’ from origin ‘http://localhost:3000’ has been blocked by CORS policy: No ‘Access-Control-Allow-Origin’ header is present on the requested resource. If an opaque response serves your needs, set the request’s mode to ‘no-..
-
[Express.js] Query String, Semantic URLBack-End/Express.js 2021. 2. 7. 04:56
😲 서론 이전에, 동적 라우팅에 대해서 공부한 적이 있다. 그 때, fetch() 를 하는 URL에 추가적으로 내용을 첨부했던 것 같았다. 또, Pagination 을 2차원 배열로 받으려고 했는데, 이때도 URL에 파라미터를 추가함으로서 필요한 길이만 가져올 수 있었다. 이번 내 프로젝트에서도, Pagination부터 Searching, Filtering 구현을 위해 URL에 갖가지 조건을 추가해야 한다. 이를, 좀 더 개발자스러운 용어들로 정립하고, Express에서 어떻게 이 구문들을 인식할 수 있는지 알아보았다. 📗 Query String 0. URL의 구성요소 쿼리스트링 공부에 앞서, 우리가 작성할 URL의 기본적인 구성에 대해 알 필요가 있다. (출처: victorydntmd.tistory.c..
-
[Express.js] 인증/인가(Bcrypt, JWT)Back-End/Express.js 2021. 2. 4. 06:14
🤯 서론 요즘 Express 공부에 대부분의 시간이 할애되는 것 같다... (공부를 가장한 구글링의 늪 👾👾) 오늘은, 로그인/회원가입 기능을 만들면서 적용한 비밀번호 암호화(Bcrypt)와 토큰발행(JWT)에 대해 간단히 포스팅하고자 한다. 📗 Bcrypt 1. Bcrypt 란? 1999년에 Niels Provos와 David Mazieres가 발표한 가장 강력한 단방향 비밀번호 해시 메커니즘 중 하나이다. C, C++, C#, Go, Java, PHP, Perl, Python, Ruby등의 언어를 지원한다. (해싱(hashing)은 임의의 길이의 데이터를 고정된 길이의 데이터로 매핑하는 것을 의미) * 암호화의 종류에는, SHA, PBKDF2, Scrypt 등이 존재한다. 각각은 속도와 보완성에 따른..
-
[Express.js] Routing(express.Router())Back-End/Express.js 2021. 2. 2. 15:37
🤯 서론 서버를 열기 위한 최소한의 공부를 목표했지만... 역시 쉽지가 않다ㅎㅎㅎㅎㅎ Express-generator 로 서버환경을 구현했다보니, app.js 코드들이나 디렉토리들을 하나하나 분석하기도 해야했고 그러다보니, 우리가 요청하는 URI에 따른 서버로직을 구현하기 위해 필요한 Routing과, 여기에 사용되거나 혹은 생성기에 기본적으로 포함되었던 Middleware의 의미와 간단한 이해를 정리해야겠다고 느꼈다. 📗 Routing [Express 공식문서] 라우팅은 URI(또는 경로) 및 특정한 HTTP 요청 메소드(GET, POST 등)인 특정 엔드포인트에 대한 클라이언트 요청에 애플리케이션이 응답하는 방법을 결정하는 것을 말합니다. 각 라우트는 하나 이상의 핸들러 함수를 가질 수 있으며, 이러..
-
[Express.js] Express 설치 및 실행Back-End/Express.js 2021. 2. 1. 23:14
😲 서론 이 포스팅은 내게 아주 큰 의미를 가진다. 프론트엔드 개발자를 준비해온 내가, 백엔드(서버)에 관련해 처음 작성하는 글일테니!😀 혼자 2차 프로젝트를 진행하면서, 데이터를 JSON의 로컬fetch() 로 대체할까 고민을 많이 했다. 결론적으론, 동적 라우팅이나 로그인/회원가입 구현을 위해 Express로 서버를 간단히 구현해보기로 결정했다. Javascript를 처음 공부하면서 포스팅을 하지 않았던 것이 후회되어, 이번엔 학습과 정리를 동시해 진행기로 했다!! 📗 Node.js 란? 나는 'Node.js = 백엔드(서버)' 라고 인지하고 있었다. 이번에 Express를 공부하며 정말 잘못된 생각이라는 것을 느꼈다! Express 정리에 앞서, Node.js 와 npm부터 차근차근 정립할 필요성을..