본문 바로가기

분류 전체보기81

[DataBase] SQL ? NoSQL? 그리고 ORM SQL과 NoSQL은 무엇이고, 무슨 차이가 있을까? 데이터 베이스의 종류에는 SLQ과 NoSQL이 있다. 일반적으로는 '데이터 베이스'라고 하면 엑셀과 같이 격자형으로 구성된 데이터 테이블을 연상하는데, 이것이 바로 SQL다. SQL은 Structured Query Language의 약자로, 관계형 데이터 베이스에서 사용하는 주요 언어이다. 반면, NoSQL이라고 하면 SQL이 아니다의 No, SQL 로 이해할 수도 있겠지만 Not only SQLd의 약자이다. 이 단어는 SQL과 달리, 비관계형 데이터베이스를 지칭하는 용어이다. 그렇다면, SQL(관계형 데이터 베이스)과 NoSQL(비관계형 데이터 베이스)의 차이는 무엇일까? 가장 큰 차이는, 같은 테이블 (컬렉션) 에서 정의되지 않은 필드 (행)을 .. 2023. 5. 11.
[Nodejs] 쿠키, 세션, jwt 로그인 로그인 기능을 구현할 때, 일반적으로 쿠키 혹은 세션을 기반으로 구현한다. 쿠키는 클라이언트 측에 저장되는 데이터로, 이것을 서버 측으로 전달하여 인증 및 상태 유지가 가능하다. 세션은 서버 측의 데이터로, 클라이언트 측에서 요청을 보내면 해당 요청을 기반으로 클라이언트의 정보를 기억하고, 일정 기간 이후 만료된다. 위의 두 가지 방식으로 로그인을 구현하는 경우, 각각의 문제점이 존재하는데 쿠키 방식을 사용하는 경우, 보안의 문제가 발생한다. 1. 쿠키 데이터 발생 주체는 클라이언트이며 식별이 가능한 관계로 다른 컴퓨터로 로그인 한 경우, 해당 컴퓨터의 다른 이용자가 로그인 정보 식별을 할 수 있으며 2. 쿠키 만료 기간이 길게 설정된 경우, 로그아웃을 하더라도 쿠키가 유지될 수 있다는 문제점이 있다. .. 2023. 5. 6.
[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.