본문 바로가기

전체 글91

[Nodejs] package.json 이란? package.json 이란, 특정 node js 프로젝트에서 이용하고 있는 패키지들의 이름과 버전, 의존 관계 등을 표기한 문서이다. node js 프로젝트에서 express 프레임 워크를 통해 간단한 백엔드 서버를 구현하였고, DB는 mongo db를 사용하였으며, DB 데이터 입출력은 mongoose 패키지로 한다고 가정해 보자. 프로젝트를 만든 내 PC에서 24시간 구동해서 서버를 가동할 것이 아니라면, 만든 프로젝트의 파일들은 다른 PC로 옮겨야 할 것이며 해당 PC에도 프로젝트에 사용했던 패키지를 다시 설치해 주어야 한다. 위에서 가정한 케이스의 경우 설치 해야할 패키지는 2종이다. (1. express 2. mongoose) 하지만, 이는 극히 작은 규모의 서버에 한정되며, 일반적인 규모에서.. 2023. 5. 2.
[Node js] 서버와 DB 연결하기 (MongoDB) 서버는 클라이언트로부터 특정 페이지를 보여달라는 요청이(GET) 발생하는 경우 해당 페이지와 함께 전달되어야할 데이터를 전달해야 한다. 예를 들어, 마이 페이지를 보여주어야 할 때, 페이지 구성을 담당하는 데이터 (HTML, CSS ,JS) 뿐만 아니라, 로그인한 사용자의 데이터를 전달 해주어야 한다. 이런 데이터들을 저장, 출력, 수정, 삭제를 위해 웹 서버와 DB를 연결한다. DB는 다양한 제품이 있으나, 여기에서는 mongo db를 이용하여 연결할 것이고, node js 라이브러리 중 mongodb와 통신이 가능한 라이브러리인 mongoose 를 사용한다. // 위치 : 프로젝트 폴더/schemas/index.js const mongoose = require("mongoose"); // mongod.. 2023. 4. 29.
[Nodejs] Express 에서 router 연결 Node js로 웹 페이지를 개발 할 수 있는 프레임워크 중 하나인 Express 에서 클라이언트 측 요청에 대한 처리 방법을 일반적으로 프로젝트 폴더 바로 아래에 index.js (이름 변경 가능) 파일 내 기재한다. // index.js const express = require("express") // 프레임워크 호출 const app = express(); // 실행 const port = 3000(); // 1. 도메인 + '/' (초기 페이지) 접속 시 처리 로직 app.get('/' (req, res) => { res.send('Hello world!'); } // 2. 도메인 + '/goods' (상품 페이지) 접속 시 처리 로직 app.get('/goods' (req, res) => { .. 2023. 4. 26.
[Nodejs] Express 프레임워크 시작하기 Node js 로 웹 사이트를 만들기 위해서는 프레임워크가 필요하다. 파이썬에 flask, Django 등이 있듯, Node js 에서 활용 가능한 프레임워크가 몇 가지 있는데 그 중 Express 프레임 워크를 사용하였다. 환경 구성을 하기 위해, 작업을 시작할 폴더를 생성한 후, 패키지 설치를 위해 아래와 같이 입력한다 npm init -y // -y는 옵션패키지 설치와 관리를 위해 위와 같이 입력하며, -y 옵션을 추가하면 생성을 위한 여러 질문들을 모두 yes 인 응답으로 스킵이 된다. 그 후 프레임워크 설치를 위해 아래와 같이 입력한다.npm install express설치 후, package.json 파일 중, "main"과 같은 이름을 하는 js 파일을 생성하자.  여기서는 main의 값이 .. 2023. 4. 22.
REST? RESTful? REST 는 Representational State Transfer 의 약자로, 웹 서비스를 설계하고 구현하는 데 사용하는 아키텍처 스타일이다. REST의 핵심 개념 중 하나는 자원(Resource)으로, REST 아키텍처에서는 URI를 통해 자원을 식별하고 Http Method (GET, POST, PUT, DELETE)를 사용해 자원의 상태를 조작(조회, 등록, 수정, 삭제) 할 수 있다. Http 프로토콜의 인프라를 그대로 사용하기 때문에, API 사용을 위한 별도의 인프라를 설계, 구축할 필요가 없으며 웹 사이트 빌드 언어 혹은 프레임워크에 구애 받지 않고, 유연한 설계가 가능하다는 장점이 있다. 하지만, 표준이 존재하지 않는다는 점과 일부 구형 브라우저에서는 특정 기능이 작동하지 않는다는 단점.. 2023. 4. 20.
[Javascript] 배열의 조합 구하기 알고리즘 문제를 접하다 보면, 간혹 배열의 조합을 구한 후 추가 계산을 해야 하는 문제가 있다. 조합하는 원소의 개수가 2개라면 두번의 for 문으로 해결이 가능하지만, 3개 이상은 구현하는데 깔끔하지 않기도 하지만 배열 길이에 따라서 속도가 엄청나게 느려질 수 있기 때문에, 다른 방법을 사용해야 한다. Python의 경우, 조합과 관련된 내장 함수가 있어서 구하기 쉽지만 Javascript는 관련 함수가 없어서 직접 구현 해야 한다. // 배열에서 n개를 골라 조합하기 function combinations(arr, n){ const results = []; // 반환할 최종 함수 if (n === 1){ // 추가해야할 원소가 1개 남으면, 배열 내 모든 원소들 배열 형태로 반환 return arr... 2023. 4. 15.