2023. 10. 28. 09:34ㆍ카테고리 없음
SERVER : 클라이언트에게 네트워크를 통해 정보나 서비스를 제공하는 컴퓨터 시스템으로 컴퓨터 프로그램(server program) 또는 장치(device)를 의미한다. (위키백과)
// 서버는 전달하는 사람 즉 식당의 종업원과 같은 역할을 한다.
// 예시) 고객(클라이언트)이 치킨을 주문했다. 종업원(서버)은 주문을 받아 주방에 전달하고 치킨을 받아 서빙한다.
서버 한줄 요약 : 요청을 받으면 요청한 내용을 보내주는 프로그램
HTTP요청
- 읽기 (GET) : 어떤 페이지를 읽고싶다! ( 주소창에 데이터 전달 )
- 쓰기 (POST) : 댓글 작성 , 블로그 글 작성 ( 내부적 body에 데이터 전달 )
- 수정 (PUT) : 무언가 수정이 필요하다!
- 삭제 (DELETE) : 무언가를 삭제 하고 싶다!
Node.js : 자바스크립트를 브라우저 말고도 로컬 PC에서도 실행시켜줄 수 있는 실행창(런타임)
Node.js의 특징
- Node.js는 단일 스레드(Single-Thread)의 논 블로킹(Non-blocking I/O) 이벤트 기반 비동기 방식으로 처리되어 높은 처리 성능을 가지고 있다.
- 내장 HTTP 서버 라이브러리를 포함하고 있어 웹 서버에서 아파치 등의 별도의 소프트웨어 없이 동작하는 것이 가능하며 이를 통해 웹 서버의 동작에 있어 더 많은 통제를 가능케 한다.
- Javascript 언어로 Front-end 뿐만 아니라 Back-end 개발 환경을 구성할 수 있기에 생산성이 높고 러닝 커브가 줄어든다.
- 다양한 패키지 매니저(npm: node Package Manager)를 기반으로 다양한 모듈(패키지)을 제공하며 필요 라이브러리에 대해 설치하고 사용할 수 있기에 효율성이 좋다
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 프레임워크이다. 하나의 코드로 휴대폰, 태블릿, 데스크탑까지 다양한 기기에서 작동하게 만들 수 있으며, 다양한 기능을 제공하여 사용자가 쉽게 웹사이트를 제작, 유지, 보수할 수 있도록 도와준다.(위키)
packge.json : 다운받은 패키지의 대략적인 내용 확인가능 (이름, 버전)
packge-lock.json : 다운받은 패키지의 상세내용 확인가 (이름, 버전,설치경로,등)
packge.json 만드는 명령어 : npm init
figlet : 글자를 아스키 아트로 바꿔주 사이트
_ _ _ _ __ __ _ _ _ _
| | | | ___| | | ___ \ \ / /__ _ __| | __| | | |
| |_| |/ _ \ | |/ _ \ \ \ /\ / / _ \| '__| |/ _` | | |
| _ | __/ | | (_) | \ V V / (_) | | | | (_| |_|_|
|_| |_|\___|_|_|\___/ \_/\_/ \___/|_| |_|\__,_(_|_)
Express
역할 : 웹 프레임워크를 만들고 사용하는 것
npm i express
port : 포트란 선착장의 개념, 어떤 서버랑 상호작용 할 것인지 알려줘야 하는데 그 때 포트가 필요하다.
용어 정리
리슨(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
프로젝트 할때 도움이 될 수 있는 자료(회원가입 예제 포함)