[WINK] 백엔드 스터디

2023. 10. 28. 09:34카테고리 없음

 

SERVER : 클라이언트에게 네트워크를 통해 정보나 서비스를 제공하는 컴퓨터 시스템으로 컴퓨터 프로그램(server program) 또는 장치(device)를 의미한다. (위키백과)

 

// 서버는 전달하는 사람 즉 식당의 종업원과 같은 역할을 한다.

// 예시) 고객(클라이언트)이 치킨을 주문했다.  종업원(서버)은 주문을 받아 주방에 전달하고 치킨을 받아 서빙한다.

 

서버 한줄 요약 : 요청을 받으면 요청한 내용을 보내주는 프로그램

 

HTTP요청 

  • 읽기 (GET) : 어떤 페이지를 읽고싶다! ( 주소창에 데이터 전달 )
  • 쓰기 (POST) : 댓글 작성 , 블로그 글 작성 ( 내부적 body에 데이터 전달 )
  • 수정 (PUT) : 무언가 수정이 필요하다!
  • 삭제 (DELETE) : 무언가를 삭제 하고 싶다!
 

[Network] HTTP Request/Response 란

HTTP(HyperText Transfer Protocol) HTTP란 텍스트 기반의 통신규약으로 인터넷에서 데이터를 주고받을 수 있는 프로토콜이다. 이러한 규약을 통해 프로그램들이 규악에 맞춰 개발해서 서로 정보를 교환할

jangjjolkit.tistory.com

Node.js : 자바스크립트를 브라우저 말고도 로컬 PC에서도 실행시켜줄 수 있는 실행창(런타임)

 

Node.js의 특징 

  • Node.js는 단일 스레드(Single-Thread)의 논 블로킹(Non-blocking I/O) 이벤트 기반 비동기 방식으로 처리되어 높은 처리 성능을 가지고 있다.
  • 내장 HTTP 서버 라이브러리를 포함하고 있어 웹 서버에서 아파치 등의 별도의 소프트웨어 없이 동작하는 것이 가능하며 이를 통해 웹 서버의 동작에 있어 더 많은 통제를 가능케 한다.
  • Javascript 언어로 Front-end 뿐만 아니라 Back-end 개발 환경을 구성할 수 있기에 생산성이 높고 러닝 커브가 줄어든다.
  • 다양한 패키지 매니저(npm: node Package Manager)를 기반으로 다양한 모듈(패키지)을 제공하며 필요 라이브러리에 대해 설치하고 사용할 수 있기에 효율성이 좋다
 

[Node] Node.js 이해하기-1(정의, 장단점)

헤딩 글의 목적은 간단하고 빠르게 그리고 하나의 언어로 Back-end 환경(서버)을 구성할 수 있는 ‘Javascript’ 언어를 이용한 Node.js에 대해서 이해하는 글입니다. 1) Node.js 란 무엇인가? 💡 Node.js는 C

adjh54.tistory.com

JavaScript

 오늘날 HTML, CSS와 함께 웹을 구성하는 요소 중 하나다. HTML이 웹 페이지의 기본 구조를 담당하고, CSS가 디자인을 담당한다면 JavaScript는 클라이언트 단에서 웹 페이지가 동작하는 것을 담당한다.


 

const express = require('express');
const app = express();

app.listen(8080, function () {
  console.log('listening on 8080');
});

// 누군가가 /Wink으로 방문시 관련안내문 띄우기

app.get('/Wink', function (요청, 응답) {
  응답.send('Wink 백엔드 스터디 페이지입니다.');
});

http://localhost:8080 

  • 8080 포트로 접속하는 사람은 이 서버를 작동하고 열리면 문구를 출력
  • /Wink 로 GET 요청을 하면 응답 문구를 출력해줌 예) http://localhost:8080/Wink 
app.get('/', function (요청, 응답) {
  응답.sendFile(__dirname + '/index.html');
});

html 파일 또한 GET 요청을 통해 보일 수 있다.

 

bootstrap : 부트스트랩(Bootstrap)은 웹사이트를 쉽게 만들 수 있게 도와주는 CSS, JS 프레임워크이다. 하나의 코드로 휴대폰, 태블릿, 데스크탑까지 다양한 기기에서 작동하게 만들 수 있으며, 다양한 기능을 제공하여 사용자가 쉽게 웹사이트를 제작, 유지, 보수할 수 있도록 도와준다.(위키)

 

부트스트랩으로 만든 todo list(기능x)


packge.json : 다운받은 패키지의 대략적인 내용 확인가능 (이름, 버전)

packge-lock.json : 다운받은 패키지의 상세내용 확인가 (이름, 버전,설치경로,등)

packge.json 만드는 명령어 : npm init 

 

figlet : 글자를 아스키 아트로 바꿔주 사이트

  _   _      _ _        __        __         _     _ _ _
 | | | | ___| | | ___   \ \      / /__  _ __| | __| | | |
 | |_| |/ _ \ | |/ _ \   \ \ /\ / / _ \| '__| |/ _` | | |
 |  _  |  __/ | | (_) |   \ V  V / (_) | |  | | (_| |_|_|
 |_| |_|\___|_|_|\___/     \_/\_/ \___/|_|  |_|\__,_(_|_)

 


 

Express 

역할 : 웹 프레임워크를 만들고 사용하는 것

npm i express

 

 

port : 포트란 선착장의 개념, 어떤 서버랑 상호작용 할 것인지 알려줘야 하는데 그 때 포트가 필요하다.

 

[생활코딩] WEB Port & Port Forwarding

Port(포트) 하나의 컴퓨터에는 여러 가지의 형태의 서버가 설치되어 있을 수 있다. 과연 이 서버들을 어떻게 식별할까? 많은 서버들 중에 어떤 서버랑 상호작용 할 것인지 알려줘야 하는데 그 때

velog.io

 

용어 정리

리슨(Listen) : 몇번 포트에 요청을 듣는 것

라우팅(Rouing) : 라우터 장비가 데이터의 목적지가 어디인지 확인하여 빠르고 정확한 길을 찾아 전달해주는 것

콜백함수(Callback) : 다른 함수가 실행을 끝낸 뒤 실행되는 callback되는 함수 를 말한다

API : 응용프로그램에 사용할 수 있도록, 운영체제나 프로그래밍 언어가 제공하는 기능을 제어할 수 있게 만든 인터페이스

 

파라미터 값으로 라우팅 하기

app.get('/:num', function (요청, 응답) {
  응답.send(요청.params);
});

숫자를 넣으면 받은 값을 보여준다

 

 

쿼리 값 받는 방법

 

test.json 이라는 파일을 생성하고 이 결과를 어떤 요청이 들어왔을때 내보낼지 정한다.

const testjson = require('./test.json');

app.get('/test', (요청, 응답) => {
  testjson.t = 요청.query.t;
  응답.json(testjson);
});

 

{
  "id": 2004,
  "name": "sang"
}

 

결과

 


웹사이트 주소 구조

 

탬플릿 엔진 : 매번 파일을 만들어 전송하는 것은 반복 작업이기에 바뀌는 내용만 다르게 표기하는 것

 

 

 

관계형 데이터베이스 (SQL) : MySQL, Oracle, SOLite

 

 

비 관계형 데이터베이스 (NoSQL) : MongoDB,Redis,Hbase

 

MongoDB 

 

 

 


 

프로젝트 할때 도움이 될 수 있는 자료(회원가입 예제 포함)

 

 

Node.js 백엔드 javascript로 해 보고 싶은 사람.

Javascript 열심히 공부한 이유는.... 그걸로 서버 한 번 개발해 보려고 했기 때문입니다. Node.js가 소위 '백엔드' 간지나게 개발할 수 있도록 해줍니다. 혹시 Javascript 잘 모르면, Javascript 강좌부터 보

www.youtube.com