728x90
728x90

Vue.js 3 & NodeJS/NodeJS 13

Node.js 레스트 API 업데이트 (카테고리, 베스트 탑) - Node.js REST API, Board-API Category, Best Top

블로그처럼 게시물들을 카테고리 별로 구분하여 표시되게 하고 카테고리 별로 좋아요(추천) 또는 조회 수가 많은 게시물 리스트를 가져오도록 하겠습니다. 게시판 카테고리 가져오기 1. C:\workspaces\nodeserver\testrestapi\boardapi.js 파일을 오픈하여 게시판 카테고리 전체를 리턴하는 라우터를 추가합니다. HTTP GET 메서드로 요청(Request)이 들어오면 게시판 카테고리 배열 전체를 리턴합니다. router.get('/categorys', function(req, res, next) { console.log("REST API Get Method - Read categoryList"); res.json({success:true, data:categoryList}); })..

Node.js 레스트 API 업데이트 (회원) - Node.js REST API, Member-API, Profile

블로그처럼 회원의 프로필과 별명(애칭)을 사용하여 게시물을 표현하기 위해서 프로필 이미지와 별명(애칭)을 추가하도록 하겠습니다. 회원 데이터 업데이트 및 회원 정보 함수 추가 1. 회원 정보에 추가될 프로필 이미지들이 저장되는 폴더를 생성합니다. C:\workspaces\nodeserver\testrestapi\public\asset 폴더에 member 폴더와 member 폴더 안에 profile 폴더를 생성합니다. 생성된 폴더에 회원 정보에서 사용할 프로필 이미지를 추가합니다. 2. C:\workspaces\nodeserver\testrestapi\memberapi.js 파일을 오픈하여 회원 배열에 있는 초기 데이터에 정보와 회원을 추가합니다. 초기 데이터에 프로필 이미지를 profile로 추가하고 별..

Node.js 레스트 API 모듈화 (정렬, 필터, 페이지네이션) - Node.js REST API, Board-API Module, export, require

boardapi에서 사용하는 정렬, 필터, 페이지네이션을 모듈화하여 별도의 js 파일로 분리하고 require() 메서드로 모듈을 불러와 사용하겠습니다. 레스트 API 테스트를 위해 Datebase 없이 배열 기반으로 데이터를 관리하기 때문에 API를 처리하기 위해서 정렬과 필터가 필요합니다. Datebase로 연동하여 사용하시는 분들에게는 필요 없는 부분입니다. Module(모듈) 구조에 대해서 간단하게 설명하겠습니다. Module(모듈) 구조 module.export로 내보내고 require() 메서드로 모듈을 불러와 사용합니다. module.export로 함수, 객체, 원시 값들을 묶어서 내보내거나 개별로 내보낼 수 있습니다. // test.js 파일 // 원의 넓이 구하기 함수 const getC..

Node.js 레스트 API 데이터 업데이트(내용, 이미지, 카테고리, 조회 수) - Node.js REST API, Board-API Data Update

먼저 router.get('/') 라우터에서 페이지네이션 처리 코딩과 정렬 처리 코딩이 있어 복잡해 보입니다. 그래서 페이지네이션 처리 코딩과 정렬 코딩을 분리하여 함수로 생성하고 적용하겠습니다. C:\workspaces\nodeserver\testrestapi\boardapi.js 파일을 오픈하여 페이지네이션 처리 코딩을 분리하여 함수로 생성합니다. // 게시물 페이지네이션 function pagination(totalCount, countPerPage, pageSize, pageNo) { // 페이지네이션 정보 var paginationInfo = {}; // 마지막 페이지 번호(전체 페이지 크기) var lastPageNo = Math.floor(totalCount / countPerPage) + ..

Node.js 레스트 API 조회 필터 - Node.js REST API Filtering, Multi-Column Filter

Filtering(필터링) ​ Database(데이터베이스)에서 지정된 칼럼을 비교문으로 필터링(쿼리 구문에서 Where 절) 하여 데이터를 반환합니다. ​ 레스트 API에서 필터링(Filtering)을 비교문으로 처리하기 위해서 Query String(쿼리 스트링)으로 URL 주소 뒤에 붙여서 사용합니다. ​ ​ REST API Multi-Column Filter(레스트 API 멀티 칼럼 필터) ​ 지정된 칼럼을 비교 값으로 비교합니다. http://localhost:9000/boards?writer=eq:tester1 -> 작성자가 'tester1'인 게시물만 필터는 다음과 같이 비교 대상 칼럼명과 비교문, 비교 값으로 구성됩니다. 칼럼명=비교문:비교값 조건문은 다음과 같습니다. 숫자, 날짜 비교문 ..

Node.js 레스트 API 조회 정렬 - Node.js REST API Sorting(Sort By, Order By), Multi-Column Sort

Sorting(정렬) ​ Database(데이터베이스)에서 지정된 칼럼을 기준으로 오름차순이나 내림차순으로 정렬(쿼리 구문에서 Order By 절) 하여 데이터를 반환합니다. ​ 레스트 API에서 정렬(Sorting)을 처리하기 위해서 Query String(쿼리 스트링)으로 URL 주소 뒤에 붙여서 사용합니다. ​ ​ REST API Column Sort(레스트 API 칼럼 정렬) ​ 기준 칼럼(sortby) 기준 칼럼(sortby)은 정렬할 칼럼을 지정합니다. ​ 정렬 방법(orderby) 정렬 방법(orderby)은 기준 칼럼(sortby)을 오름차순이나 내림차순으로 정렬 방법을 설정합니다. http://localhost:9000/boards?sortby=writer&orderby=desc -> 작..

Node.js 레스트 API 페이지네이션(구현 정보) - Node.js REST API Pagination Implementation information

레스트 API 페이징(Paging) 처리 후 Vue나 JSP, ASP, PHP, Javascript에서 게시판의 페이지네이션(Pagination)을 구현하기 위해서는 전체 크기, 전체 페이지 크기, 페이지 사이즈 등 추가 정보들이 필요합니다. 그럼 페이지네이션(Pagination) 구현에 필요한 정보들을 계산하여 라우터(router)에서 데이터와 함께 리턴하도록 처리하겠습니다. ​ ​ 페이지네이션(Pagination) 정보 객체 추가 ​ 1. C:\workspaces\nodeserver\testrestapi\boardapi.js 파일을 오픈하여 게시판 배열 전체를 리턴하는 라우터(router)에 추가합니다. ​ 전체 페이지 크기(마지막 페이지 번호) 전체 페이지 크기는 전체 크기를 페이지 크기로 나누고 ..

Node.js 레스트 API 페이지네이션(페이징) - Node.js REST API Pagination(Paging)

Pagination(페이지네이션), Paging(페이징), Page(페이지) ​ Database(데이터베이스)에서 페이징(Paging) 없이 데이터를 가져오면 수십 건부터 수백만 건까지 데이터를 반환하여 문제(DB 부하, 서버 부하, 네트워크 트래픽 부하 등)가 발생합니다. 그래서 데이터를 가져오기 전에 한 번에 가져올 데이터의 크기를 정해서 나누어서 가져오게 해야 합니다. ​ 이렇게 일정한 크기로 데이터를 나누는 것을 페이징(Paging)이라고 하고 일정한 크기를 가진 데이터를 페이지(Page)라고 합니다. 그리고 나누어진 페이지를 이전 페이지나 다음 페이지 또는 특정 페이지로 이동할 수 있게 처리하는 것을 페이지네이션(Pagination)이라고 합니다. ​ 일반적인 게시판에서 페이지네이션(Pagina..

Node.js 레스트 API 인증처리(토큰 재발급) - Node.js REST API Authentication Refresh-Tokon

Access-Token이 만료되면 로그인과 같은 인증을 하지 않고 재발급이 되도록 하기 위해서는 Refresh-Token를 생성해야 합니다. ​ ​ Refresh-Token 생성하기 ​ 1. memberapi.js 파일을 오픈하여 사용자 객체를 가지고 있는 배열에 refreshToken를 추가합니다. refreshToken는 사용자가 Access-Token를 재발급하려고 할 때 인증 확인과 검증하기 위해서 사용됩니다. let memberList = [ {id:"testid1", password:"testpwd1", name:"홍길동", refreshToken:""}, {id:"testid2", password:"testpwd2", name:"김철수", refreshToken:""}, {id:"testid..

Node.js 레스트 API 인증처리(JWT 생성 및 검증) - Node.js REST API Authentication JWT(JSON Web Token) Sign, Verify

JWT(JSON Web Token - JSON 웹 토큰)은 두 개체 사이에서 안전하게 클레임을 전달(표현)해주는 산업 표준 RFC 7519 방법입니다. (JSON Web Tokens are an open, industry standard RFC 7519 method for representing claims securely between two parties.) ​ JWT는 header.payload.signature로 구성되어 있습니다. 도트(.)로 구분되어 있습니다. ​ header는 ALGORITHM & TOKEN TYPE으로 JWT 생성할 때 사용된 정보들로 검증할 때 사용됩니다. JSON을 base64UrlEncode() 메서드로 인코딩한 문자열입니다. ​ payload는 DATA로 JWT에 저..

Node.js 레스트 API 서버 생성 및 실행 - Node.js REST API Server

REST API(RESTful API - 레스트 풀 API)는 Distributed Hypermedia Systems(디스트리뷰트드 하이퍼미디어 시스템 - 분산 하이퍼미디어 시스템)을 위한 REST(REpresentational State Transfer - 레프리젠테이셔널 스테이트 트렌스펄) 아키텍처의 제약 조건을 준수하는 API(Application Programming Interface - 애플리케이션 프로그래밍 인터페이스)를 뜻합니다. Guiding Principles of REST 1. Client–server(클라이언트-서버) : 사용자 인터페이스 관련 프로세스(클라이언트)를 데이터 스토리지 관련 프로세스(서버)로 부터 분리하여 여러 플랫폼에서 사용자 인터페이스(클라이언트)가 사용(이식성 - ..

Node.js 패키지 생성 및 실행 - Node.js package, npm init, npm run

Node.js의 패키지 만들기 ​ 1. C:\workspaces\nodeserver\test1 폴더를 생성합니다. 2. 콘솔을 실행하고 C:\workspaces\nodeserver\test1 폴더로 이동합니다. 패키지를 생성하기 위해 npm init 명령어를 실행합니다. npm init npm(Node Package Manager)는 Node.js로 만들어진 모듈을 설치하고 관리해 주는 프로그램입니다. ​ npm int는 패키지(애플리케이션)를 생성(초기화) 해주는 명령어입니다. ​ 패키지(애플리케이션)의 이름과 버전 같은 몇 가지 정보에 대해 prompt(프롬프트) 합니다. ​ 기본 설정으로 처리하겠습니다. 변경하려면 입력하고 엔터키를 누릅니다. 기본 값을 사용하려면 그냥 엔터키를 누릅니다. ​ pac..

윈도우 Node.js 설치 - Windows Node.js Download & Install - 14.x

1. Node.js 사이트(https://nodejs.org/ko/)를 접속합니다. 2023년 4월 12일 버전은 "20.1.0, 18.16.0 LTS"입니다. 안정적이고 신뢰도가 높은 버전(18.16.0 LTS)을 다운로드하시면 됩니다. 작성 당시 버전은 "14.17.4 LTS"입니다. "14.17.4 LTS"를 클릭합니다. 현재 사이트에서 안정적이고 신뢰도가 높다고 인정한 버전입니다. 웹브라우저에서 다운로드가 진행됩니다. 또는 상단의 "다운로드"를 클릭하고 다운로드 페이지에서 Windows Installer (.msi)의 64-Bit를 클릭합니다. (사용하시는 윈도우가 32-Bit인지 64-Bit인지 확인하신 후 다운로드를 진행하시기 바랍니다.) 2. "다운로드"폴더에서 다운로드한 "node-v14...

728x90
728x90