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부터 차근차근 정립할 필요성을..
-
[DB] AQueryTool : 스타벅스 모델링Back-End/Database 2020. 12. 21. 21:44
AQueryTool을 사용해서, 스타벅스 음료 페이지의 정보를 관계형 데이터 모델로 제작해 본 과제(실습)였다. 🧑💻 스타벅스 모델링 과제 - 아이디어 네비게이션 바의 MENU -> 음료(대분류), 다시 음료(대분류) -> 콜드 브루 등(중분류) 이렇게 두 개의 카테고리의 필요성을 느꼈다. 음료 페이지를 켜서, 컬럼이 필요할만한 데이터들을 선정했다. (이미지, 이름, 설명, 사이즈 등) 고유 데이터는 기본적으로 items 테이블에 넣겠지만, 중복요소들은 one to many, many to many 등으로 별도 table을 만들겠다. - 수행결과 0. Main_Categories, Sub_Categories : MENU-음료-콜드브루 같은 카테고리 분류를 위한 테이블 (One to Many) id : ..