일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | |||
5 | 6 | 7 | 8 | 9 | 10 | 11 |
12 | 13 | 14 | 15 | 16 | 17 | 18 |
19 | 20 | 21 | 22 | 23 | 24 | 25 |
26 | 27 | 28 | 29 | 30 | 31 |
- 그리디
- KAKAO
- 야놀자
- 자바스크립트
- html/css/js
- Javascript
- computerscience
- 부트캠프
- 백준
- BFS
- 국비지원
- 알고리즘
- DFS
- js
- 호이스팅
- 국비지원취업
- 너비우선탐색
- 코딩테스트
- cpu
- github
- 패스트캠퍼스
- 컴퓨터공학
- LinkSnap
- 컴퓨터과학
- 프론트엔드개발자
- 코테
- git
- CSS
- nodejs
- CS
- Today
- Total
목록BackEnd (21)
My Boundary As Much As I Experienced
직렬화와 역직렬화는 데이터의 저장 및 전송을 위해 사용되는 중요한 개념이다.직렬화 (Serialization)직렬화는 객체나 데이터 구조를 연속적인 바이트 스트림으로 변환하는 과정이랜다..이렇게 변환된 데이터는 파일에 저장하거나 네트워크를 통해 전송할 수 있다.직렬화된 데이터는 원본 객체의 상태를 완전히 표현하여, 나중에 이를 역직렬화해서 원본 객체를 복원할 수 있다. 예시파일 저장: 객체를 파일에 저장할 때 직렬화하여 저장하고, 필요할 때 파일을 읽어 역직렬화한다.네트워크 전송: 객체를 네트워크를 통해 전송할 때 직렬화하여 전송하고, 수신 측에서 역직렬화하여 원본 객체를 복원한다.쉽게 말해, 가장 많이 쓰는 걸로는 JSON.stringify가 있다. 객체 자료구조를 string데이터로 제단(?)한다.c..
세션은 회원기능이 필요할 때 가장 기본은 할 수 있는 보장된 인증 방식이다.node.js에서 이를 쉽게 구현하려면 passport와 express-session 등을 많이 사용한다. 설치npm install express-session passport passport-local Express-sessionexpress-session은 Express 애플리케이션에서 세션 관리를 쉽게 할 수 있도록 도와주는 미들웨어이다.서버에서 각 사용자별로 고유한 세션을 생성하고, 이 세션에 데이터를 저장할 수 있게 한다.세션ID를 클라이언트에 쿠키로 저장하여 서버와 클라이언트 간의 세션을 연결한다.const session = require("express-session");app.use( session({ sec..
1. 인증을 구현하는 방식 로그인한 유저 혹은 특정 권한이 필요한 정보를 전달할 때 '인증'이 필요해진다.이걸 구현하는 방식에는 크게 Session, Token, OAuth 등이 있다. 2. Session (세션)개념:세션은 서버 측에서 사용자에 대한 상태 정보를 저장하는 방식이다.사용자가 로그인하면 서버는 세션을 생성하고, 세션 ID를 클라이언트에게 쿠키로 전달한다.클라이언트는 이후 요청 시 쿠키를 통해 세션 ID를 서버에 전달하여 인증을 받는다.작동 방식:사용자가 로그인하면 서버는 고유한 세션 ID를 생성하고, 이를 서버 메모리나 데이터베이스에 저장한다.세션 ID는 클라이언트에게 쿠키로 전달한다.클라이언트는 이후 요청마다 이 쿠키를 포함시켜 서버에 전송한다.서버는 쿠키의 세션 ID를 확인하여 해당..
전통적인 방법한 페이지에 몇 개의 글을 보여줄 것인가? 만약 다섯개라고 한다면1, 2, 3, 4, 5, ... 페이지 번호에 -1을 하고 5를 곱한 것을 skip 시작점으로,그리고 추가적으로 보여줄 양을 limit량으로 설정하면 된다.이걸 toArray로 묶어서 가져오면 된다. 끝이다.. 클라이언트가 원하는 페이지 번호를 패러미터로 보내면 이를 반영해서 보여주면 된다.app.get("/list/:id", async (req, res) => { const col = db.collection("post"); // skip은 성능이 좋지않다. const doc = await col .find() .skip(5 * (req.params.id - 1)) .limit(5) .toArray..
express로 CRUD 구현하기시용하는 미들웨어:const express = require("express"); // Express 웹 애플리케이션 프레임워크const app = express(); // Express 애플리케이션 인스턴스 생성const methodOverride = require("method-override"); // HTTP 메서드 오버라이드를 위한 미들웨어const { MongoClient, ObjectId } = require("mongodb"); // MongoDB와 상호작용하기 위한 MongoDB 드라이버// 정적 파일들을 제공하기 위해 public 폴더를 사용하도록 설정.app.use(express.static(__dirname + "/public")); // EJS를 템..
EJS란?EJS (Embedded JavaScript Templating)은 JavaScript 코드에서 HTML을 생성할 수 있게 해주는 템플릿 엔진이다. Express와 같은 Node.js 애플리케이션에서 자주 사용된다. EJS를 사용하여 서버에서 HTML을 렌더링하는 방법을 단계별로 설명해보겠다. 1. 필요한 패키지 설치npm install ejs 2. Express 설정// app.js 또는 index.js 파일 생성const express = require('express');const app = express();const path = require('path');// EJS를 템플릿 엔진으로 설정app.set('view engine', 'ejs');app.set('views', path.j..
비관계형 데이터베이스는 거의 다Project(프로젝트) - collection(폴더) - document(개별 파일)구조로 되어있다. 몽고DB도 그러하다... 1. 프로젝트 만들기 2. 클러스터 만들기우측 상단 Create cluster를 누르면 된다. 원하는 모델을 선택하면 된다. 클러스터에 대해 알아보니 분산형 서버 관리 시스템? 같은 느낌인거 같다.서버 컴퓨터의 성능을 선택하는듯 하다.첫 2개는 무료 모델을 선택할 수 있게 해주는 것 같으니 연습용으로 쓸거면 무료모델을 쓰자. 3. connect를 눌러 baseUrl을 가져와라.이때 url상에서 라고 되어있는 부분이 있을텐데이 곳에 몽고DB 회원가입할때 입력한 패스워드를 입력하면 된다. 4. 실제 코드로 연결하는 방법그리고 실제 코드로 연결하는 ..
1. Express 초기화하는 법express를 임포트 해오고 실행시켜 app 객체를 만든다.그리고 마지막에 app.listen으로 특정 포트를 듣고 있으면 실행 완료."자, 이게 서버야." ... 끝! 또한 port는 그냥 넘버 원시값으로 3000 이런 식으로 써줄수도 있지만app.set("key", value)로 app 객체 안에 속성 선언해놓고 쓸수도 있다.선언해놓은 속성은 app.get으로 불러올 수 있다. ex. app.get("port")const express = require("express");const path = require("path");const app = express();// SET PORT=80 같은걸로 포트를 바꿀 수 있음. 그럴 경우 process.env.PORT가 바뀜..
이 일련의 과정을 진행해본 이유사수님께서 네트워크 기반 지식의 중요성을 매우 강조하시는 분이었다. 나도 네트워크와 배포 과정에 대해서 궁금한게 꽤 있어서 물어봤다가 한바탕 네트워크 강의가 펼쳐졌고, 그 강의의 과제로 AWS EC2 배포를 한 번 진행해볼 것을 권장하셨다. Apache서버를 설치한 이유사수님이 원래는 Nginx를 세팅해볼 것을 권장하셨다. 그런데 Nginx는 설정하면서 config 파일들도 설정할게 많더라. 특정 블로그 보면서 Nginx 설치를 시도했었는데 모든 과정을 다 적으시지 않은건지, 혹은 내 컴퓨터 환경이 필자와 뭔가 다른건지, 원하는 결과를 내기 힘들었다. 그래서 다른 유튜브나 문서들을 보며 설치를 시도하다가, 어떤 영상에서 상대적으로 설치가 쉬운 Apache서버를 세팅하길래 ..
앞서 node.js의 기본 모듈들을 학습한 후, 이번 시간엔 본격적으로 http모듈만을 이용한 서버 만들기를 진행해봤다. 제공된 코드만 읽지말고 꼭 개량해보고 기능 추가해보라는 제로초 선생님의 말씀대로 한 번 기능들을 추가해봤다. 추가한 기능: 모두 삭제하기 기능 (유저등록/코멘트) 토끼로 만들기 기능 (유저등록/코멘트) 코멘트 란 읽기/추가/삭제/수정 node 서버를 처음 만들어본 느낌은 '뭐야 이거 자바스크립트잖아?' 이다. (당연한 얘기지만😂) 프론트에서도 서버가 깔끔하게 정제된 정보를 주지않고 날것의 것을 주면 손수 데이터를 가공해서 쓰는데, 노드 서버가 하는 일도 별반 다르지 않다는 것을 알 수 있었다. '프론트에서 받은 요청과 request body에 따라 내 저장소에 있는 내용을 편집하고 그..