본문 바로가기

express 강의9

[O'REILLY] Node & Express - 14장 : 라우팅(Route) - 라우팅은 웹서비스에서 중요한 요소 중 하나이다. - 라우팅은 보통 파일 기반으로 운영된다. - 단순하지만 유연하지 않다. - 익스프레스 라우팅의 기술적인 측면에서는 정보구조(Information Architecture, IA) 의 개념을 알아야 한다. - IA는 콘텐츠를 개념적으로 구조화 하는것. - IA는 즉, 콘텐츠를 주의깊게 분류하고, 논리적으로 분류하고, 스스로 코너에 몰리지 않도록 하는 개념적 방법론이다. 1. 오랫동안 유지할 수 있는 IA의 수립 조건 - URL에 기술적 세부사항을 노출하지 않는다 - URL에 의미없는 정보를 노출하지 않는다. : 의미 없는 단어가 있다면 제거한다. - 의미 없이 긴 URL은 피한다. : 다른 조건이 모두 같다면, 짧을수록 좋다. 하지만 SEO도 명심해야 한.. 2023. 4. 10.
[O'REILLY] Node & Express - 10장 : 미들웨어 ExpressJS는 앱 그 자체이고, 앱이면서 서버이다. 그리고 모든 것이 미들웨어이다. Express의 핵심이고 앱의 핵심이고 가장 중요한 것이 미들웨어다. 전체 코드 미들웨어의 동작 방식을 이해해야 구조와 설계가 보인다. 1. 미들웨어란 ? - 기능, 구체적으로 애플리케이션으로 들어오는 HTTP 요청 위에서 동작하는 기능을 캡슐화하는 방법이다. - 현실적으로는 요청객체, 응답객체, next() 함수의 세가지 매개변수를 받는 고차함수이다. (에러받는거는 나중에 설명) - 미들웨어는 파이프라인 안에서 실행된다. 순서가 중요하다. - app.use()를 사용해 파이프라인에 미들웨어를 삽입한다. - 파이프라인의 마지막 미들웨어는 이전 라우트와 일치하지 않는 요청을 모두 받는 폴백 핸들러로 만드는 것이 일반.. 2023. 4. 3.
[O'REILLY] Node & Express - 9장 : 쿠키와 세션 1. 들어가면서 - HTTP는 상태가 없는 프로토콜이다. 상태가 없다는 것은 브라우저에서 어떤 페이지를 불러온 다음, 같은 웹사이트의 다른 페이질 이동할 때 같은 브라우저가 같은 사이트에 방문한다는 사실을 알아낼 방법이 없다는 것이다. - 모든 HTTP 요청에는 서버에서 요청을 수행할 때 필요한 정보가 모두 들어있다는 뜻이다. - 이를 해결하기 위해 '상태'를 보존할 방법이 필요했고, 쿠키와 세션이 등장했다. 2. 쿠키에 대해서 - 사용자가 쿠키 내용을 볼 수 있다. - 사용자가 쿠키를 삭제하거나 금지할 수 있다. : 사용자는 쿠키 전체에 대한 권한이 있다. 사용자가 쿠키를 금지할 경우, 웹앱에서 많은 기능이 제약될 수 있다. - 일반적인 쿠키는 변조될 수 있다. : 서명된 쿠키를 사용해야 한다. - 쿠.. 2023. 4. 3.
[O'REILLY] Node & Express - 8장 : 폼 처리 - 3 (파일 업로드) 1. 파일 업로드 - 멀티파트 폼 처리에 주로 쓰이는 패키지는 버스보이, 멀티파티, 포미더블, 멀터 등이 있다. (채신기술 모름) - 멀티파티와 멀터가 좋다고 하는데 뭐 사용자 나름이다. - 파일 업로드를 활성화하기 위해서는 반드시 enctype="multipart/form-data" 를 사용해야 한다. 예시 - accept 옵션을 통해 파일의 타입을 제한할 수 있다. (실제로 강제하는 것은 아니다) - 이제 서버에서 post요청을 처리해보자. - 멀티파티의 parse 메서드를 사용하여 요청 데이터를 데이터 필드와 파일로 분석한다. - 이 메서드는 파일을 서버의 임시 디렉터리에 저장하며, 그 정보를 files 배열로 반환한다. - 라우트 핸들러에 넘길 정보를 알게 되었으니, 라우트 핸들러를 작성한다. -.. 2023. 3. 31.
[O'REILLY] Node & Express - 8장 : 폼 처리 - 2 1. express를 이용한 폼 처리 - 폼처리에 GET을 사용하면 필드는 req.query에 들어간다. - 예를 들어 name 속성이 email인 필드를 사용하면 그 값은 핸들러에 req.query.email로 전달된다. - POST를 사용한다면, URL로 인코드된 바디를 분석하는 미들웨어가 필요하다. - npm i body-parser 을 터미널에 적어 body-parser 라이브러리를 설치한다. - express 4.16 부터 body-parser 를 내장하였다. 이젠 설치할 필요 없다. 그래서 별거 없다. 프론트에서 req.body에 json데이터를 담아서 보내면 그냥 그걸 가져다 사용하면 된다. 다음은 AppSam 프로젝트의 한 예시이다. 2. post요청 form 처리의 예시 - req.bo.. 2023. 3. 30.
[O'REILLY] Node & Express - 8장 : 폼 처리 7장이 왜 없냐면 템플릿에 관한 이야기이기 때문이다. 풀스택을 지향하는 2023을 살아가는 여러분들에게 Pug나 핸들바는 사치다 React Vue Angular같은 CSR-SPA 프레임워크나 NEXT,NUXT등의 SSR 프레임워크, 아니면 그냥 퓨어한 html css js 랑 연결해서 날것의 코딩을 하는 것이 100만배는 도움이 될 것이다. 그래서 8장의 폼처리로 바로 간다. 1. 클라이언트 데이터를 서버에 전송하기 - 데이터를 서버에 보내는 방법은 쿼리스트링을 사용하는 방법과 요청 바디에 담아서 보내는 두 가지 방법이 있다. - 일반적으로 GET요청 시에 조건이 필요할 경우에는 쿼리스트링을 이용하고, 다른 요청에는 바디를 사용한다. - GET요청은 말 그대로 맞는 데이터를 가져오는 건데, 다른 메소드를.. 2023. 3. 26.
[O'REILLY] Node & Express - 6장 : 응답 객체 - 2 1. API 제공 - API를 제공할 때는 폼 처리와 비슷하게 매개변수는 보통 req.query에 들어있지만, req.body 역시 사용 가능하다. - API에서 다른 점은, PUT, POST, DELETE 등의 HTTP 메서드를 자주 사용한다는 점이다. - '엔드포인트' 라는 용어는 주로 API에서 함수를 가리킬 경우 주로 사용한다. 2. 간단한 예제 - GET요청 - PUT 요청 - DELETE 요청 (원래 이런 식으로 한다) 2023. 3. 26.
[O'REILLY] Node & Express - 6장 : 응답 객체 1. 응답 객체 - 응답객체는 노드의 핵심 객체인 http.ServerResponse의 인스턴스이다. - 보동 res를 사용한다 res.status(code) - HTTP 상태 코드를 설정한다. - 기본값은 200이며, 200 이외의 상태 코드를 반환할 경우에만 사용하면 된다. - 리디렉트의 상태코드는 301, 302, 303, 307 이지만, 이 메서드보다는 redirect 메서드를 쓰는 것이 좋다. - res.status(404).send('없어요') 처럼 체이닝이 가능하다. res.set(name, value) - 응답 헤더를 설정한다. - 여러가지 헤더를 한번에 설정할 수도 있다. 잘 안쓴다. res.cookie(name, value, [options]), res.clearCookie(name, .. 2023. 3. 24.