인증이란 어떤 의미일까? You are who you say you are ‘너는 너가 누구라고 말한 사람이다’ 라는 말이 있다. 인증 방법은 여러가지 이다. You know password pin-code You have mobile phone hardware...
Continue reading...Back-end
Dwitter – 유효성 검사 적용 (3)
그럼 토이프로젝트 Dwitter에도 간단하게 유효성 검사를 적용해보자 👍 /server/router/tweets.js /server/middleware/validator.js 컨트롤러에서는 비즈니스 로직만을 갖고 있는게 좋고, 디펜던시를 가지고 있는 것은 좋지않으므로 라우터에서 처리하는 것이 좋다. 또한 여러 라우터를 가지고 있을 수...
Continue reading...데이터 Sanitization (살균 ? 🤔)
Sanitization 필요 이유 앞서 본 데이터 유효성 검사 이후, 데이터 sanitization 처리를 해줘야한다. 예를 들어, 위 포스팅의 최종 코드에서 아래와 같은 요청을 받으면 어떻게 될까 ? 상식적으로, request body 내의 name은...
Continue reading...Nodejs – 유효성 검사
Validation 이란? 클라이언트가 서버에게 특정한 요청이나 리소스를 만들기 위해서 body로 보내는 데이터들을 유효한지 / 정확한 데이터를 보내고 있는지 확인하는 것을 말한다. 스키마가 확정된 데이터베이스에서는 어떤 특정한 필드에 어떤 데이터 타입인지 다...
Continue reading...Dwitter – 서버구조 MVC 패턴으로 변경 (2)
MVC 이란? 어플리케이션을 Model, View, Controller 로 나눠서 가독성 / 유지보수 / 확장성을 늘리는 소프트웨어 디자인 패턴 Model 어플리케이션에서 필요한 데이터를 담는 영역 View 사용자에게 보여지는 순수 어플리케이션의 UI Controller View...
Continue reading...Dwitter 토이 프로젝트 – (1) ✏️
app.js의 기본 뼈대 잡기! 우선 시작 전 필요한 API 들에 대해 정리한다. API 정의 API spec : https://www.notion.so/API-Spec-Tweets-b04541cf06f84b83bf4891abfaa27d03 postman : https://documenter.getpostman.com/view/9223369/UVsJvSME 필요한 미들웨어 / 라우터를 다 연결해준다. Tweets REST APIs –...
Continue reading...CORS란? 개념과 처리 방법
CORS란 ?✏️ 브라우저에서만 가지고 있는 ‘CORS’ 정책이란, 클라이언트와 서버가 동일한 ip 주소에서 동작하고 있다면 리소스를 별다른 제약없이 데이터를 주고 받을 수 있지만, 클라이언트가 서버와 다른 아이피와 있다면 원칙적으로는 그 어떤 데이터도...
Continue reading...Nodejs – 유용한 미들웨어 :^)
유용한 내부 미들웨어 👏 express.json() REST API, body를 간단하게 파싱할때 사용 express.urlencoded({extended: false}) body를 파싱할때 사용. HTM에서 Form이라는 UI요소에서 submit 하게되면 request가 자동으로 발생하는데, 그 때 전달된 html에서 만든 데이터를 body...
Continue reading...express router
router 없이 핸들링 서버에서 여러가지 경로에 대해 여러 http request method를 받을때 코드가 복잡하고, 가독성이 떨어질 수 있다. router 를 사용한 핸들링 위 코드와 같이 서버에서는 라우터만 등록을 하고, routes 경로내에...
Continue reading...에러 처리의 모든 것(동기, 비동기)
에러 처리가 중요한 이유 서버에서 에러를 잘 처리하는 것은 엄청 중요하다. 수십 ~ 수만명이 동시다발적으로 접속해서 사용하는 어플리케이션의 서버가 될 수 있기 때문에, 적절히 에러를 처리하지 못했을 경우에 수만명이 서버를 이용하지...
Continue reading...