JUSTCODE - Week2(node, express)

김정현·2022년 10월 10일

JUSTCODE

목록 보기
5/20
post-thumbnail

파편화된 지식은 정리되지 못하고 사라지기 쉽지만,
큰 그림을 이해하고 습득한 지식은 체계적으로 제 자리를 찾아
오래 머물게 된다는 사실을 기억합시다

노드, express 모듈

노드: 비동기 이벤트 기반의 자바스크립트 런타임 환경
Express.js: 서버에 대한 js 프레임워크
라우팅: 해당 자원에 대해 다른 함수(로직)을 실행하도록 하는 것

서버는 require객체와 request객체를 가진다
req객체는 req.url, req.method등의 정보를 가진다
이를 통해 API 실행 코드의 분기점을 만들 수 있다

API

Application Programming Interface의 약자
응용 프로그램(어플리캐이션)이 소통하기 위한 접점
웹 서비스에서 API란 클라이언트와 데이터베이스를 이어주는 매개체를 의미한다

UI: User Interface의 약자(HUI, GUI, WUI 등..)
Application: 운영채제에서 실행되는 모든 소프트웨어
interface: 손님(인간)과 요리사(컴퓨터) 사이의 점원(interface)와 같은 매개체의 역할

JSON

JSON: 네트워크 통신에서 언어와 관계없이 데이터를 전달하는 공통된 방식
JSON.stringify(): JavaScript 값이나 객체를 JSON 문자열로 변환
JSON.parse(): JSON문자열을 분석하여 JavaScript 값이나 객체를 생성

클라이언트, 서버, 데이터베이스

클라이언트는 손님, 서버는 서빙, 데이터베이스는 요리사이다
클라이언트의 요청이 들어오면, createServer로 서버가 생성되고
서버(API)가 데이터베이스에서 정보를 찾아 클라이언트에게 응답한다

util.inspect

객체의 상세 내용이 보이지 않을 때, util모듈의 inspect메서드를 사용한다

예시:
util.inspect(object, {showHidden: false, depth: null, colors: true})

서버(API) 생성 하기

노드로 서버 생성

const http = require("http");
const server = http.createServer((req, res) => {
	res.setHeader("Content-Type", "application/json");
    
    //분기 처리1
    if(req.url === "조건1" && req.method === "조건2"){
    	return res.end(JSON.stringify(응답 내용));
    }
    
    res.end(JSON.stringify(응답 내용));
})

server.listen(포트번호, () => {
	console.log(실행 확인 메세지)
});

express로 서버 생성

const http = require("http");
const express = require("express");

const app = express();
app.use(express.json());

function callback(req, res) {
	res.json(응답 내용);
}

//분기 처리1
app.httpMethod("/url", callback)

const server = http.createServer(app); 
server.listen(포트번호, () => { 
	console.log(실행 확인 메세지)
})

같이 볼 자료:
제로초 노드 교과서 4강, 6강 포스트
저스트코드 2주차 코드 및 주석


FE-BE 연결

CORS 모듈

웹 어플리케이션이 다른 출처의 자원에 접근할 수 있게 해주는 모듈

const cors = require("CORS");
arr.use(cores());

데이터베이스

DBMS

관계형 데이터베이스

모든 데이터가 2차원 테이블로 표현된다
각 행을 지칭하는 고유의 번호, primary key(pk)를 사용할 수 있다
ERD로 테이블의 관계를 도식화 할 수 있다

일대 일 관계(one to one)

하나의 A테이블 데이터는 오로지 하나의 B테이블 데이터와 연결된다
하나의 B테이블 데이터 또한 하나의 A테이블 데이터와 연결된다
A테이블과 B테이블은 각각의 primary key를 가지며, 연결되는 테이블의 pk를 참조한다(fk)

일대 다 관계(one to many)

하나의 A테이블 데이터는 B테이블의 여러 데이터와 연결된다
하나의 B테이블 데이터는 오로지 하나의 A테이블 데이터와 연결된다

다대 다 관계(many to many)

하나의 A테이블 데이터는 B테이블의 여러 데이터와 연결된다
하나의 B테이블 데이터는 A테이블의 여러 데이터오 연결된다
정규화 과정이 필요하다
서로 각자 다른 테이블의 여러 데이터와 연결 될 때에는,
두 테이블에 속한 데이터의 조합을 입력하기 위한 중간 테이블이 생성된다


Server - BE연결

TypeORM

profile
개발 공부 블로그

0개의 댓글