- 독자적으로 실행가능한 단위 (파일) - 함수, 클래스 로 나뉨
- Package : 1개 이상의 파일로 구성된 배포 단위 (실행이랑 아무상관x)
npm은 여기에 해당- Program : 유사한 기능들을 묶어서 실행가능하도록 만든 파일의 집합
- Process : 실행중인 프로그램
- Thread : 독자적으로는 실행할수 없는 Porcess 내의 작업 단위
- 다른 곳에서 URL을 이용해서 사용할 수 있도록 해주는서버
- URL과 작업을 매핑해서 URL을 호출하면 작업을 수행하도록 해주는 서버
- 작업을 해주는 서버
- 실제로는 대부분 이방법을 사용하지 않고 express 모듈을 이용하는 경우가 많음
- Semantic Web 개념 등장: 로봇이 정보 자원의 뜻을 이해하고 논리적 추론까지 가능, 명확한 의미 전달이 중요 , Rest API속도의 변화
- 인공지능 : 자신만의 컨텐츠 나 정보를 구성할 수 있도록 하는 사용자의 권한이 증가
- 블록체인
- 사용자의 요구 사항 변경 - 여러 디바이스를 사용하고 디바이스끼리 끊어짐이 없는(Seamless)서비스 요구가 증대되면서 이를 구현하기 위한 방법으로 웹 기술이 각광받음
- 기술의 변화 -인프라 측면에서는 클라우드 나 가상화 기술이 각광을 받고 있고 소프트웨어 측면에서는 WOA(전체 시스템 아키텍쳐를 웹을 중심으로 설계)
- 요청이 오면 요청에 해당하는 HTML 페이지를 찾아서 출력하는 방식
- 클라이언트의 요총아 오면 서버가 작업을 수행해서 결과를 전송하거나 화면을 전송하는 방식
- Perl 이 시초
- 이 방식은 사용자의 요청을 별도의 프로세스로 만들어서 처리
하나의 요청을 전부 처리 하기 전까지는 다른 요청을 처리 할 수 없음- Perl 이나 ASP가 이런형태로 동작
- 사용자의 요청을 Thread를 만들어서 처리
- 여러 사용자의 요청을 한꺼번에 처리하는 것 처럼 처리
java -> Servelet(JSP) > Spring Framework
c# -> asp.net
JavaScript -> node.js FrameWork
PHP -> Laravel Framwork
Python -> Flask 나 Django Framework
RUby - Rails
- 웹 브라우저<-> 웹 서버 <-> 애플리케이션 서버 (Controller, Service, Responsitory ) <-> 데이터 저장소
- 언어나 프레임워크는 애플리케이션 서버를 만들기 위한 기술
- Serverless 는 서버가 없는 것이 아니고 서버를 직접 구현할 필요가 없는 것
- ☆☆웹 브라우저에서 서버에게 요청 하는 것을 request라고 하고 서버가 웹 브라우저에게 대답하는 것을 response 라고 합니다.☆☆
- 내장 모듈이므로 별도로 설치할 필요없음
- http모듈. createServer((request, reponse) => {
내용
});
- 서버객체listen(포트번호, 아이피주소); // 아이피 주소는 현재 컴퓨터에 여러 개의 IP가 존재하는 경우 작성
+서버객체.close();
- request: 클라이언트의 요청이 있을 때
- connection : 클라이언트가 접속했을 때
- clienError : 클라이언트 오류가 발생했을때
- url: 요청한 url
- method: 요청 방식(GET, POST, PUT, PATCH, DELETE, OPTION 등)
- JS 파일을 추가한 후
7) 메소드 요청 방식
- GET: 서버 자원을 가져오려고 할 때 사용 (조회-Read)
- POST: 서버에 자원을 새로 등록하고자 할 때 사용(또는 뭘 써야할 지 애매할 때) (삽입 - CREAT)
- PUT: 서버의 자원을 요청에 들어있는 자원으로 치환하고자 할 때 사용 (수정 - UPDATE)
- PATCH: 서버 자원의 일부만 수정하고자 할 때 사용(수정 - UPDATE, 권장하지 않음)
- DELETE: 서버의 자원을 삭제하고자 할 때 사용 (삭제 - DELETE)
- OPTIONS: 요청을 하기 전에 통신 옵션을 설명하기 위해 사용
- 서버의 자원을 정의하고 자원에 대한 URL을 지정하는 방법
- URL 과 Method 만으로 작업을 예측할 수 있도록 하는것
URL은 /member 이고 Method 는 POST 라면 회원 가입
- 클라이언트의 종류에 상관업이 동일한 작업은 동일한 URL로 처리
- 클라이언트 애플리케이션을 서버 애플리케이션과 분리해서 구현하고 서버는 클라이언트의 뷰를 만들지 않고 데이터를 전송합니다.
클라이언트
- CSRF 라고도 하는데 쿠키 만으로 인증하는
- 서비스의 취약점을 이용해 사용자가 모르게 해당 서비스에 특정 명령을 요청하는 공격
- 내장 모듈이 아님 - 설치가 필요
- http 모듈을 가지고 웹 서버를 만들 수 있는데 가독성이 떨어지고 확장성이 떨어짐
- http 모듈 보다는 코드 관리가 용이하고 편의성이 높은 모듈
- 이 모듈을 제외하고 웹 서버를 생성해주는 모듈은 여러가지가 있고
{
"name": "wodb",
"version": "1.0.0",
"description": "npmwebserver",
"main": "app.js",
"scripts": {
"start": "nodemon app"
},
"author": "",
"license": "ISC",
"dependencies": {
"cookie-parser": "^1.4.6",
"express": "^4.18.2",
"express-session": "^1.17.3",
"morgan": "^1.10.0"
},
"devDependencies": {
"nodemon": "^2.0.20"
}
}
http://localhost:3000 (포트번호)