본문 바로가기

분류 전체보기

(97)
tweet, auth DB연결 (2024-05-08) (env, socket, orm, branch더보기환경 변수 관리- 로컬에서 개발 또는 서버에 배포할 때 DB연결, 포트 설정, 시크릿 키 등 안전하게 관리하기 위한 환경 변수로 처리- .env라는 파일에 환경 변수를 설정        npm i dotenvHTTP 통신- 요청(request, 클라이언트)과 응답(response, 서버)으로 이루어짐- 클라이언트가 요청을 먼저하고 서버는 수동적으로 응답해주는 구조(반이중통신 구조)웹 소켓(Web Socket)- 브라우저에서 지원하는 소켓통신- 실시간 네트워킹이 보장된다- 전이중통신 구조웹 소켓의 동작 원리 1. 최초 연결  요청 시 클라이언트에서 HTTP를 통해 웹서버에 요청한다=> 핸드쉐이크 Handshake: HTTP통신을 Websoket 프로토콜로 ..
Authentication (2024-05-02) Authentication(인증)더보기1. session & cookie ✔쿠키  - 클라이언트 컴퓨터에 저장되는 작은 데이터 조각 - 서버로 부터 전송되어 클라이언트 웹 브라우저에 저장 - 텍스트 형식으로 주로 사용자 인증, 설정, 장바구니 등에 사용 ✔세션 - 웹 서버 측에서 유지되는 상태 정보 - 사용자에 대한 고유한 세션 ID를 통해 식별 - 서버 메모리 또는 데이터베이스에 저장할 수 있음 2. JWT (JSON Web Token) - 웹 애플리케이션과 서비스 간에 정보를 안전하게 전달하기 위한 인증 및 권한 부여 매커니즘을 구현하는 데 사용되는 표준화된 방법 중 하나 - JSON 포멧을 사용하여 정보를 표현하고 서명 및 암호화를 통해 정보의 무결성을 보장  { Header | Payload | ..
과제 회원가입, 로그인 router, tweet 활용 과제 - router, data, controller에 auth.js 를 추가하고 tweet.js를 참고하여 적용- 회원가입, 로그인(회원정보 확인 - 아이디를 보내면 해당 객체의 정보만 출력) users = [ { id : '1', username : 'apple', password : '1111', name : '김사과', email : 'apple@apple.com', url : 'https://www.logoyogo.com/web/wp-content/uploads/edd/2021/02/logoyogo-1-45.jpg' }, { ... } ..
리팩토링, validation(2024-04-29) 리팩토링- 소프트 웨어 개발 과정에서 코드를 재구성하여 가독성을 높이고 유지보수를 쉽게 만드는 과정 - 코드의 구조를 개선하고 중복을 제거하여 더 나은 설계 패턴을 도입함으로 코드의 품질을 향상 시킴 - 코드의 기능을 변경하지 않으면서 코드를 개선하는 방법더보기router > tweets.jsimport express from 'express';import * as tweetcontroller from '../controller/tweet.js';const router = express.Router();// 해당 아이디에 대한 트윗 가져오기// GET// http://localhost:8080/tweets?username=:usernamerouter.get('/', tweetcontroller.getTw..
params, query 파람스 (Params)목적: 주로 필수적인 데이터를 전달하거나, 특정 자원을 식별하는 데 사용됩니다.사용 예: RESTful API에서 자원의 위치를 명시적으로 지정할 때 사용합니다. 예를 들어, 특정 사용자의 프로필 페이지나 특정 게시글을 조회할 때 사용자 ID나 게시글 ID를 URL 경로에 포함시키는 경우입니다.형태: URL의 일부로 직접 포함되며, /resource/{paramValue} 형식을 취합니다.쿼리 (Query)목적: 선택적인 데이터를 전달하거나, 서버에 특정 작업을 요청할 때 사용합니다. 주로 데이터를 필터링, 정렬하거나, 특정 조건에 따른 데이터 요청 시 사용됩니다.사용 예: 검색 조건, 페이지네이션, 정렬 조건 등이 전달될 때 주로 사용됩니다.형태: URL의 끝부분에 ? 다음에 위치..
route 활용 (tweet 예제) (2024-04-26) tweet 예제더보기app.jsimport express from "express";import morgan from "morgan";import tweetsRouter from './router/tweets.js';const app = express();app.use(express.json());app.use(morgan("dev"));app.use('/tweets', tweetsRouter);app.use((req, res, next) => { res.sendStatus(404)});app.listen(8080); router/tweets.jsimport express from 'express';const router = express.Router();let tweets = [ { ..
Git 명령어(2024-04-25) Git 더보기Git 버전관리 시스템의 종류이다 ✔버전관리 여러 파일을 하나의 버전으로 묶어 관리하는 것 버전관리 시스템의 종류 1. 클라이언트 - 서버 모델 (과거의 방식)     - 하나의 중앙 서버로 여러 클라이언트들이 각자 필요한 것만 가져와서 작업을 하고 다시 중앙 서버로 보내서 통합하는 방식     - SVN, CVS 모델 등이 있음 2. 분산 모델 (현재 많이 사용)     - 하나의 중앙 서버가 존재하지만 여러 클라이언트들은 각자의 컴퓨터 저장소에 전체 사본을 가지고 작업하는 방식     - Git Git의 장점 1. 동시에 작업하는 사람들과 소스코드를 주고 받을 필요가 없음 2. 같은 파일을 여러명이 동시에 병렬 개발이 가능 3. 변동 과정을 체계적으로 관리할 수 있고, 언제든지 지난 시점..
post, error, route (2024-04-25) Post더보기import express from 'express';const app = express();app.use(express.json());app.post('/posts', (req, res) => { console.log(req.body); res.status(201).send('글이 새로 등록되었어요');});app.listen(8080); Error더보기import express from 'express';import fs from 'fs';import fsAsync from 'fs/promises';const app = express();app.use(express.json());app.get('/file1', (req, res) => { fs.readFile('/file..