9. 웹 애플리케이션 프레임워크
(Web application framework)
동적인 웹 페이지나, 웹 애플리케이션, 웹 서비스 개발 보조용으
로 만들어지는 애플리케이션 프레임워크의 일종.
웹 페이지를 개발하는 과정에서 겪는 어려움을 줄이는 것이 주
목적으로 통상 데이터베이스 연동, 템플릿 형태의 표준, 세션 관
리, 코드 재사용 등의 기능을 포함한다.
Lime이란?
출처 : https://ko.wikipedia.org/wiki/웹 애플리케이션 프레임워크
22. 어떻게 시작했을까
Http Server
Socket
Request Response
Finish read
Data
Middleware
Manager
Routeable
Route Mapping Table
Application
Middleware
Middleware
Middleware
Middleware
Trevi 초기 구성
54. 배운 것을 반영하기
무작정 만들었을 때
Http Server
Socket
Request Response
Finish read
Data
Middleware
Manager
Routeable
Route Mapping Table
Application
Middleware
Middleware
Middleware
Middleware
55. 배운 것을 반영하기
HTTP
Request
Read
HTTP Parser
OnBody
OnBodyComp
OnHeader
OnHeaderComp
OnInComing
Socket
State
handler
Begin
Besiness Logic
HTTP Server
socket parser
socket parser
socket parser
… …
socket parser
Node.js를 분석 후
57. 배운 것을 반영하기
Query Parser
Middeware manager
OAuth
Multi-Part
Router
error
/index Function
Router
/trevi Function
/d2/fast Routable
/naver Function
무작정 만들었을 때
58. 배운 것을 반영하기
Node.js 분석 후
Lime Layer
Middleware
Router
Application
Protocol
1 N
91. 고급언어에서 c API 사용 시 문제점
class Server {
var clientNumber = 0
var socket: Listener!
func createServer (port: Int) {
socket = Listener(port)
socket.listenClientEvent(){
client in
clientNumber += 1
self.printClientNumber()
}
}
func printClientNumber(){
print(“client number : (clientNumber)”)
}
}
변수 및 함수 참조
클로저를 libuv callback 함수 대입 시 문제
99. 코드에게 배우고 반영하기
• multi-thread model
New eventWork event module
onConnecti
on
onRead
afterWrite onClose
onTimeou
t
onConnecti
on
onRead
afterWrite onClose
onTimeout
Work thread
pool
Thread