Express.js 는 무엇 때문에 사용하는가.
Express.js는 Node.js로 서버를 빠르고 간편하게 만들 수 있게 도와주는
웹 프레임워크
라이브러리 ? 웹 프레임워크?

Framework
Software : 'softawre 특정 문제를 해결하기 위해서
상호 협력하는 클래스와 인터페이스의 집합'
- 완성된 Application이 아닌 완성시켜나가야 하는 작업이 필요 #### 특징 - 특정 개념들의 추상화를 제공하는 여러 Class / Component 로 구성 됨 - 추상적 개념들이 문제를 해결하기 위해 같이 작업하는 방법을 정의 - Component 재사용 가능 - 높은 수준에서 패턴들을 조작 가능
Library
단순 활용가능한 도구들의 집합
개발자가 만든 클래스에서 호출하여 사용
Class의 나열로 필요한 Class를 불러서 사용하는 방식
Framework vs Library
제어흐름에 대한 주도성이 누구에게 / 어디에 있는가가 중요
Application의 Flow 를 누가 쥐고 있느냐에 달림
Framework는 전체적인 흐름을 만들며 Library를 가져다 쓰는것
Library = 톱 / 망치 / 삽
Framework = 차 / 비행기 / 배
도구를 쓸 때, 썰어야 하는곳에 망치를 쳐도 되고, 땅 파야할 때 톱으로 긁어도 됨
탈것은 정해진 곳으로만 가야함, 차를 타고 하늘을 날고 배를 타고 땅으로 갈 수 X
대표적 REST API의 HTTP Method
C : POST
R : GET
U : PUT / PATCH
- PUT : 리소스 전부를 수정 / PATCH : 리소스 일부를 수정
D : DELETE
MIDDLEWARE
- Server && Client를 연결하는 매개역활
- 데이터와 데이터베이스가 '파이프' 사이를 쉽게 통과할 수 있도록 두 가지
응용프로그램을 함께 연결하기에 배관이라고도 함 #### 종류 - DB : - RPC : - MOM : - TP-Moniter : - ORB : - WAS :
-
각 기능에 따라 데이터를 분산하고 처리하여 병렬적 구조의 Process를 가능하게 하는 Logic 구조

- 3tier 구조에서 나온 개념
3Tier 구조 [ WEB - WAS - DB ]

WEB
- Client로부터 요청을 받아 정적인 콘텐츠 (CSS, HTML, jpeg)를 처리하는 시스템
- Apache, Nginx, IIS 등
WAS (Web Application Server)
- DB 조회나 다양한 로직을 수행하는 동적인 콘텐츠를 처리하는 시스템
- Apache, Tomcat, Jeus, Jboss 등
DB (Data Base)
- 데이터의 집합 또는 저장소
- MySQL , Oracle, MongoDB 등