μλ²(Server)λ??
μ»΄ν¨ν° λ€νΈμν¬μμ λ€λ₯Έ μ»΄ν¨ν°μ λν΄μμ μ΄ κ°κ³ μλ κΈ°λ₯μ΄λ μλΉμ€, λ°μ΄ν° λ±μ μ 곡
νλ μ»΄ν¨ν° λλ κ·Έμ κ°μ κΈ°λ₯μ κ°μ§ μννΈμ¨μ΄ λΌκ³ νλ€. ex) Apache Server && Nginx, IIS(Windows μ μ© Web μλ²) λ±
webserver λ??
νλμ¨μ΄ μΈ‘λ©΄
- μΉμ¬μ΄νΈμ μ»΄ν¬λνΈ νμΌλ€μ μ μ₯νλ μ»΄ν¨ν°
- μ»΄ν¬λνΈ νμΌ β HTML, Images, CSS, JavaScriptβ¦
- μ»΄ν¬λνΈ νμΌμ μΈν°λ·μ ν΅ν΄ ν΄λΌμ΄μΈνΈμ μ λ¬
μννΈμ¨μ΄ μΈ‘λ©΄
- μ¬μ©μκ° μ΄λ»κ² νΈμ€νΈ νμΌλ€μ μ κ·Όνλμ§ κ΄λ¦¬
- μΉ μλ²λ μ£Όμ HTTP νλ‘ν μ½μ μ¬μ©νμ¬ ν΄λΌμ΄μΈνΈμ μμ²μ μ²λ¦¬ λ° μλ΅
Β
λΈλΌμ°μ κ° μΉ μλ²μμ λΆλ €μ§ νμΌμ νμλ‘ ν λ, HTTPλ₯Ό ν΅ν΄ νμΌμ μμ²νκ³ , μμ²μ΄ μ¬λ°λ₯Έ μΉ μλ²(νλμ¨μ΄)μ λλ¬νμλ, HTTPμλ²(software)λ μμ² λ¬Έμλ₯Ό HTTPλ₯Ό μ΄μ©ν΄ 보λ΄μ€λ€.
Β
μ μ μΉ μλ²
HTTP μλ²(μννΈμ¨μ΄)κ° μλ μ»΄ν¨ν°(νλμ¨μ΄)λ‘ κ΅¬μ±λμ΄ μλ€. μλ²κ° λΆλ €μ§ νμΌμ ν΄λΌμ΄μΈνΈ(λΈλΌμ°μ )μκ² μ μ‘νλ€.
Β
λμ μΉ μλ²
μ μ μΉ μλ²μ μΆκ°μ μΈ μννΈμ¨μ΄(μΌλ°μ μΌλ‘ μ ν리μΌμ΄μ μλ²μ λ°μ΄ν°λ² μ΄μ€)λ‘ κ΅¬μ±λλ€. μ ν리μΌμ΄μ μλ²κ° HTTP μλ²λ₯Ό ν΅ν΄ ν΄λΌμ΄μΈνΈ(λΈλΌμ°μ )μκ² λΆλ €μ§ νμΌλ€μ μ μ‘νκΈ° μ μ μ ν리μΌμ΄μ μλ²κ° μ λ°μ΄νΈνλ€.
WAS(Web Application Server) λ₯Ό ν΅ν΄ κ²°κ³Όκ° μ΄λ£¨μ΄μ§λ€. μΆν WASμ λν΄ λ°λ‘ μμΈν 곡λΆν΄λ³΄μ.
Β
μ»΄ν¬λνΈ νμΌ
κΈ°μ μ μΌλ‘, μ»΄ν¨ν°μ μλ νμΌλ€μ λΆλ¬μ¬ μ μμ§λ§, κ·Έκ²λ€μ μ λ΄νλ μΉ μλ²μ μ μ₯νλ κ²μ΄ λ νΈλ¦¬νλ€.
Β
μ λ΄νλ μΉμλ²
- νμ μ€ν μ€
- νμ μΈν°λ·μ μ°κ²° λμ΄μλ€.
- νμ κ°μ IPλ₯Ό κ°μ§κ³ μλ€.
- μ 3μμ μν΄ μ μ§λ³΄μ λλ€.
Β
κ³Όμ μ§ν
π μμ½ μλ² κ΅¬ν
Nginx Configuration
μμ νμΌ
user www www; ## Default: nobody worker_processes 5; ## Default: 1 error_log logs/error.log; pid logs/nginx.pid; worker_rlimit_nofile 8192; events { worker_connections 4096; ## Default: 1024 } http { include conf/mime.types; include /etc/nginx/proxy.conf; include /etc/nginx/fastcgi.conf; index index.html index.htm index.php; default_type application/octet-stream; log_format main '$remote_addr - $remote_user [$time_local] $status ' '"$request" $body_bytes_sent "$http_referer" ' '"$http_user_agent" "$http_x_forwarded_for"'; access_log logs/access.log main; sendfile on; tcp_nopush on; server_names_hash_bucket_size 128; # this seems to be required for some vhosts server { # php/fastcgi listen 80; server_name domain1.com www.domain1.com; access_log logs/domain1.access.log main; root html; location ~ \.php$ { fastcgi_pass 127.0.0.1:1025; } } }
Β
κΈ°λ° λͺ¨λ
μμ§μμ€μ κΈ°λ³Έμ μΈ κΈ°λ₯μ κ°μ§ 맀κ°λ³μλ₯Ό μ μν μ μλ μ§μμ΄λ₯Ό μ 곡νλ€.
- ν΅μ¬ λͺ¨λ (core module): νλ‘μΈμ€ κ΄λ¦¬λ 보μ κ°μ νμ κΈ°λ₯ λ° μ§μμ΄λ‘ μ΄λ£¨μ΄μ§λ€.
- μ΄λ²€νΈ λͺ¨λ(event module): λ€νΈμνΉ κΈ°λ₯μ λ΄λΆ λμ λ°©μμ ꡬμ±νλ€.
- κ΅¬μ± λͺ¨λ(configuration module): ꡬμ±μ μΈλΆ νμΌμμ κ°μ Έμ ν¬ν¨μν¨λ€.(include)
Β
ν΅μ¬ λͺ¨λ μ§μμ΄
μ§μμ΄ | μ€λͺ
|
user | user username groupname;
user username;
κΈ°λ³Έκ°: μ»΄νμΌ ν λ κ²°μ
μμ
μ νλ‘μΈμ€ (worker process)λ₯Ό μμμν€λ μ¬μ©μ κ³μ κ³Ό κ·Έλ£Ήμ μ§μ ν μ μλ€. groupname μλ΅ μ userκ° μ¬μ©λλ€. user root root; λ 보μμ μννλ€. |
worker_process | κΈ°λ³Έκ°: 1
μμ
μ νλ‘μΈμ€(worker_process)μ μλ₯Ό μ μνλ€. λ³΄ν΅ CPUμ μ½μ΄ μλ§νΌ ν λΉνλ κ²μ΄ μ’μΌλ©°, νμ€νμ§ μμ κ²½μ° autoλ₯Ό μ
λ ₯νμ¬ μλ κ°μ§λ₯Ό μλν μ μλ€.
Nginxλ νλμ mater processμ nκ°μ worker processλ‘ κ΅¬μ±λμ΄ μ€νλλ€. master processλ μ€μ νμΌμ μ½κ³ , νλ‘μΈμ€λ₯Ό μ μ§ λ° κ΄λ¦¬νλ€.λͺ¨λ μμ²μ worker processμμ μ²λ¦¬νλ€. masterμμλ ν΄λΌμ΄μΈνΈμ μμ²λ μ²λ¦¬νμ§ μλλ€. |
error_log
(main, http, mail, stream, server, location μμ μ¬μ© κ°λ₯) | error_log /file/path level;
κΈ°λ³Έκ°: logs/err.log error
level : debug, info, notice, warn, error, crit, alert, emerg
μ€λ₯ λ‘κ·Έλ₯Ό λλ €λ©΄ ꡬμ±νμΌ μ΅μλ¨μ error_log /dev/null crit; λ‘ μ§μ νλ€. νμΌ κ²½λ‘ λμ syslog, memory, stderr λ±μΌλ‘ μ§μ ν μλ μλ€. |
Β
μ΄λ²€νΈ λͺ¨λ μ§μμ΄
μ§μμ΄ | μ€λͺ
|
use | use kqueue;
κΈ°λ³Έκ°: μμ
μ΄λ€ μ΄λ²€νΈ λͺ¨λΈμ μ¬μ©ν μ§ κ²°μ νλ€. (nginxλ μλμΌλ‘ κ°μ₯ μ ν©ν λͺ¨λΈμ μ ννλ€) |
Β
HTTP ν΅μ¬ λͺ¨λ
http μλ²μ λͺ¨λ κΈ°λ° λΈλ‘, μ§μμ΄, λ³μλ₯Ό ν¬ν¨νλ κ΅¬μ± μμ, μ£Ό λΈλ‘μ
http
, server
, location
μ΄λ€.Β
Flow
μμ λ‘μ§ νλ‘μ°μ΄λ€.
Request νμ±
Β
key: [value] // value λ LWS λ‘ κ΅¬λΆλμ΄μ§ μ μλ€.
Β
μΌλ°μ μΌλ‘ λ€μκ³Ό κ°μ κ²½μ°μ Base64 μΈμ½λ©μ μ¬μ©ν©λλ€.
- λ°μ΄ν° ν¬κΈ°κ° μμ κ²½μ°
- μ μ‘ ν¨μ¨μ±λ³΄λ€ νΈνμ±μ΄ μ€μν κ²½μ°
λ€μκ³Ό κ°μ κ²½μ°μ Chunked encodingμ μ¬μ©ν©λλ€.
- λ°μ΄ν° ν¬κΈ°κ° ν° κ²½μ°
- μ μ‘ ν¨μ¨μ±μ΄ μ€μν κ²½μ°
Β
GET
μΌλ°μ μΌλ‘ content-type μ λ°λ‘ λ£μ§ μλλ€.
POST
image/png
- μΌλ°μ μ΄μ§λ μμ
application/octet-stream
- λ°μ΄λ리 νμΌ μ μ‘
multipart/form-data
- ν μ€νΈ λ°μ΄ν°: ν μ€νΈ λ°μ΄ν°λ₯Ό μ μ‘ν λλ μ£Όλ‘ λ€μκ³Ό κ°μ Content-Typeμ΄ μ¬μ©
text/plain
: ν μ€νΈ λ°μ΄ν°λ₯Ό νλ¬ΈμΌλ‘ μ μ‘ν λ μ¬μ©text/html
: HTML νμμ ν μ€νΈ λ°μ΄ν°λ₯Ό μ μ‘ν λ μ¬μ©- νμΌ λ°μ΄ν°: νμΌ λ°μ΄ν°λ₯Ό μ μ‘ν λλ μ£Όλ‘ λ€μκ³Ό κ°μ Content-Typeμ΄ μ¬μ©
application/octet-stream
: μ΄μ§ λ°μ΄ν°λ₯Ό μ μ‘ν λ μ¬μ©image/png
: μ΄λ―Έμ§ νμΌμ μ μ‘ν λ μ¬μ©
DELETE
- μΌλ°μ μΌλ‘ body λ΄μ© 무μ
Β
ν€λ μμ
1. text/plain
ν
μ€νΈ λ°μ΄ν°λ₯Ό μ μ‘ν λ μ¬μ©λλ©°, λ³λμ νκ·Έ μμ΄ μμν ν
μ€νΈλ‘λ§ κ΅¬μ±λ©λλ€.
Content-Type: text/plain;charset=utf-8
2. text/html
HTML λ¬Έμλ₯Ό μ μ‘ν λ μ¬μ©λ©λλ€. μΉ νμ΄μ§μ λ΄μ©μ μ μ‘νλ λ° μ£Όλ‘ μ¬μ©λ©λλ€.
Content-Type: text/html;charset=utf-8
3. multipart/form-data
νμΌ μ
λ‘λλ νΌ λ°μ΄ν°κ° νμΌκ³Ό ν
μ€νΈ νλλ₯Ό λͺ¨λ ν¬ν¨ν λ μ¬μ©λ©λλ€. κ° λΆλΆμ κ³ μ ν κ²½κ³ λ¬Έμμ΄(boundary)λ‘ κ΅¬λΆλ©λλ€.
Content-Type: multipart/form-data; boundary=----WebKitFormBoundary7MA4YWxkTrZu0gW
μ΄ κ²½κ³ λ¬Έμμ΄μ λ©μμ§ λ³Έλ¬Έμμ κ° λΆλΆμ ꡬλΆνλ λ° μ¬μ©λλ©°, μ€μ μ¬μ©ν λλ κ³ μ ν κ°μ΄ μμ±λμ΄ μ¬μ©λ©λλ€.
4. application/octet-stream
μ΄μ§ λ°μ΄ν°λ₯Ό μ μ‘ν λ μ¬μ©λ©λλ€. νμΌ λ€μ΄λ‘λ λ±μ μ¬μ©λλ©°, νΉμ νμΌ νμμ μ§μ νμ§ μλ μΌλ°μ μΈ μ΄μ§ λ°μ΄ν°λ₯Ό μλ―Έν©λλ€.
Content-Type: application/octet-stream
5. image/png
PNG νμμ μ΄λ―Έμ§ νμΌμ μ μ‘ν λ μ¬μ©λ©λλ€.
Content-Type: image/png
Content-Type
ν€λλ ν΄λΌμ΄μΈνΈμ μλ² κ°μ λ°μ΄ν° κ΅νμμ λ§€μ° μ€μν μν μ νλ©°, μ¬λ°λ₯Έ Content-Type
μ μ§μ νλ κ²μ λ°μ΄ν°κ° μ¬λ°λ₯΄κ² ν΄μλκ³ μ²λ¦¬λλλ‘ νλ λ° νμμ μ
λλ€.Β
Β
κ° method λ³ μ²λ¦¬
GET
- url νμΈ
- λλ ν 리μΈκ° ?
YES: μλ¬
NO: ν΄λΉ 리μμ€ μλμ§ νμΈ
- λ°ν
POST
Β
DELETE
- url νμΈ
- μ΄μ μλ€λ©΄ μμ ν 200 OK
Β
Response
μμ
HTTP/1.1 200 OK\r\n//status line Date: Mon, 27 Jul 2009 12:28:53 GMT\r\n// header line Server: Apache/2.2.14 (Win32)\r\n Last-Modified: Wed, 22 Jul 2009 19:15:56 GMT\r\n Content-Length: 88\r\n Content-Type: text/html\r\n Connection: Closed\r\n \r\n// crlf <html>// body <body> <h1>Hello, World!</h1> </body> </html>
Β
RFC
10.2.7 206 Partial Content(λΆλΆμ λ΄μ©).
μλ²κ° μμμ λν λΆλΆμ GET μꡬλ₯Ό μλ£νμλ€. μ΄ μꡬλ λ°λμ μνλ μμμ νμνλ Range
ν€λ νλ(14.36 μ )λ₯Ό ν¬ν¨ν΄μΌ νλ€. μλ΅μ μ΄ μλ΅μ ν¬ν¨λ μμμ νμνλ Content-Range ν€λ νλ(14.17 μ )λ κ° ννΈμ Content-Range νλλ₯Ό ν¬ν¨νλ multipart/byteranges Content-Typeμ ν¬ν¨ν΄μΌ νλ€. multipart/byteranges λ₯Ό μ¬μ©νμ§ μμμΌλ©΄ μλ΅μ Content-Length ν€λ νλλ Message-Body λ‘ μ μ‘λ OCTET μ μ€μ μ«μμ μ ννκ² μΌμΉν΄μΌ νλ€. Range λ°Content-Range ν€λλ₯Ό μ§μνμ§ μλ μΊμλ 206(Partial Content) μλ΅μ μΊμν΄μλ μ
λλ€.
Β
Β
κΆκΈμ¦
λͺ©λ‘
μΉ μλ²μμ μμμ μ 곡νλ€νλλ° κ·ΈλΌ μΉ μλ²(νλμ¨μ΄)μ λ°μ΄ν°κ° μ μ₯λμ΄μλ건κ°?? dbμ μ μ₯νλκ²μ²λΌ???
μΉ μλ²μμ μ μ μΈ λ°μ΄ν°λ€μ νλμ¨μ΄μ μ μ₯ν΄ κ°μ§κ³ μλ€κ° μμ²νλ©΄ 보λ΄μ£Όλ νμμ΄ λ§λκ² κ°λ€. μΌλ°μ μΌλ‘ μ μ μΈ μΉ νμ΄μ§λ₯Ό λ§λ λ€λ©΄ ν΄λΉ μΉ μλ²μ HTML νμΌκ³Ό κ°μ μ»΄ν¬λνΈ νμΌμ μ
λ‘λνμ¬ ν΄λΌμ΄μΈνΈκ° μμ²νλ©΄ κ·Έλ μΉ μλ²μμ μ 곡νλ€κ³ μκ°νλ©΄ λλ€.
Β
μΉμλ²λ₯Ό μ§μ ꡬννλ€λ©΄ config νμΌμ νμ±ν΄μ κ²μ¦ν΄μΌνλ??
κ·Έλ λ€. μ΄λκΉμ§ config λ₯Ό μ ν¨ μΈμλ‘ λ°μμ§λ λ³ΈμΈ νλ¨μΌλ‘ ꡬννλ©΄ λλ€.
Β
λ©ν°νλ μ±μ λ¨μΌ μ€λ λ λ°©μμΌλ‘ μ½λκ° λμκ°λλ° μ fcntlλ‘ non-blockingμ ν΄μ£Όμλμ§??
μμ€ν
μ½λ‘ ν΄λΉ μμΌμ μ¬μ©νλ κ²μ΄κΈ° λλ¬Έμ μ΄λΆλΆμ non-blockingμΌλ‘ νκΈ° μν΄μ μ΄λ€. μμ€ν
μ½μ λν΄μ 곡λΆλ₯Ό ν΄λ³΄λ©΄ μ΄ν΄κ° κ°λ€.
Β
μΉ λΈλΌμ°μ λ‘ μμ²μ λ³΄λΌ μ μ νμ΄μ§λ μλ¬νμ΄μ§λ₯Ό λ°λ‘ htmlλ‘ λ§λ€μ΄μΌνλκ°?
κ·Έλ λ€.
Β
ν΄λΌμ΄μΈνΈκ° http λ©μλλ₯Ό λ³΄λΌ λ λΈλΌμ°μ κ° μμμ ν΄μ£Όλ?
μΉλΈλΌμ°μ κ° μμμ λ©μλλ₯Ό μμ±ν΄μ 보λ΄μ£Όκ±°λ, html form νμμ λ°λΌ λ§μΆ°μ ν΄μ€λ€.
kqueueκ° μ΄λ²€νΈλ₯Ό μ΄λ»κ² κ°μ§νλμ§? νμΌμ΄ λ³ννλ κ±°μ λ°λΌ read, write flagκ° λμνλμ§?
νμΌμ λ³νλ‘ μ΄λ²€νΈκ° νΈλ¦¬κ±° λ μ μλ€. νμ§λ§ EV_SETμ μΈμλ‘ λ€μ΄κ°λ flags μ μ’
λ₯μ λ°λΌ ν΄λΉ μμΌμ΄ λΉνμ±ν λμ΄μμ μ λ μλ€λ μ μ μκ°νμ.
Β
CRLF λ₯Ό μμμ μ μ½λ??
μμμ κ°νμΌλ‘ μμ½μΌλ ν
μ€νΈ ν λλ ν΄λΉ νμΌμ CRLF λ‘λ§ λ°κΏμ£Όλ©΄ λλ€.(λ§₯μ κΈ°λ³Έμ΄ LF)
Β
multpart-form μ΄λ chunked μ κ°μ encode-64 λ°©μμΌλ‘ λ°μ΄λ리 νμΌμ http λ°λλ‘ μ
λ ₯λ°μλ λμ΄ λ€μ΄μ¬ μ μλ??
κ·Έλ λ€κ³ νλ€.
Β
HTTP λ°λ λ©μΈμ§μ λμ μ΄λ»κ² μ μ μμκΉ?
HTTP λ©μμ§μμ λ°λμ λμ λνλ΄λ λ°©μμ
'\0'
λ¬Έμλ₯Ό μ¬μ©νλ κ²μ΄ μλλ€. HTTP νλ‘ν μ½μ ν
μ€νΈ κΈ°λ° νλ‘ν μ½μ΄λ©°, HTTP λ©μμ§μ ꡬ쑰λ μμ μ€(start line), ν€λ(headers), κ·Έλ¦¬κ³ λ©μμ§ λ°λ(body)λ‘ κ΅¬μ±λλ€. κ° λΆλΆμ νΉμ λ°©μμΌλ‘ ꡬλΆλλ©°, λ°λμ λμ '\0'
λ¬Έμλ‘ λͺ
μμ μΌλ‘ νμλμ§ μλλ€.HTTP λ©μμ§ λ°λμ λμ λ€μ λ°©μμΌλ‘ κ²°μ λλ€:
- Content-Length ν€λ: μ΄ ν€λλ λ©μμ§ λ°λμ κΈΈμ΄λ₯Ό λ°μ΄νΈ λ¨μλ‘ λͺ
μνλ€. ν΄λΌμ΄μΈνΈλ μλ²λ μ΄ κ°μ μ¬μ©νμ¬ λ©μμ§ λ°λμ λμ νλ¨νλ€. μλ₯Ό λ€μ΄,
Content-Length: 1234
λΌλ©΄, ν€λ μ΄νμ μ€λ 1234λ°μ΄νΈκ° λ©μμ§ λ°λλ‘ ν΄μλλ€.
- Chunked Transfer Encoding:
Transfer-Encoding: chunked
ν€λκ° μ¬μ©λ λ, λ©μμ§ λ°λλ μ¬λ¬ κ°μ μ²ν¬λ‘ λλμ΄ μ μ‘λλ€. κ° μ²ν¬λ κΈΈμ΄ κ°μΌλ‘ μμνλ©°, λ§μ§λ§ μ²ν¬λ0\r\n\r\n
μΌλ‘ νμλλ€. λ°λΌμ, μ²ν¬ μΈμ½λ©μ μ¬μ©ν λλ λ§μ§λ§ μ²ν¬μ κΈΈμ΄κ° 0μ΄λΌλ μ μ ν΅ν΄ λ°λμ λμ μ μ μλ€.
- λ©ν°ννΈ λ°λ:
Content-Type: multipart/form-data
μ κ°μ΄ λ©ν°ννΈ λ©μμ§λ₯Ό μ¬μ©ν κ²½μ°, κ° λΆλΆμ κ²½κ³ λ¬Έμμ΄(boundary string)μ μν΄ κ΅¬λΆλλ©°, λ§μ§λ§ κ²½κ³ λ¬Έμμ΄ λ€μ-
κ° μΆκ°λμ΄ λ©μμ§μ λμ λνλΈλ€.
EV_SET(&tmp_event, ident, filter, flags, fflags, data, udata) μμ data λ udata μ©λ?
EV_SET
맀ν¬λ‘λ BSD κ³μ΄ μ΄μ 체μ μμ μ 곡νλ kqueue μ΄λ²€νΈ μλ¦Ό μμ€ν
μ μ€μ νκΈ° μν΄ μ¬μ©λ©λλ€. kqueue
λ λ€μν μ’
λ₯μ μ΄λ²€νΈλ₯Ό ν¨μ¨μ μΌλ‘ λͺ¨λν°λ§ν μ μκ² ν΄μ£Όλ λ©μ»€λμ¦μ
λλ€. μ΄ μμ€ν
μ μ¬μ©νλ©΄ νμΌ λμ€ν¬λ¦½ν°, νμ΄λ¨Έ, νλ‘μΈμ€, μ νΈ λ± λ€μν μ΄λ²€νΈ μμ€μ λν λ³νλ₯Ό λΉλκΈ°μ μΌλ‘ κ°μ§ν μ μμ΅λλ€. EV_SET
맀ν¬λ‘λ₯Ό ν΅ν΄ κ°λ³ μ΄λ²€νΈλ₯Ό kevent
ꡬ쑰체μ μ€μ ν μ μμΌλ©°, μ΄λ μ¬λ¬ νλΌλ―Έν°λ₯Ό μ§μ ν΄μΌ ν©λλ€.EV_SET
μ νλΌλ―Έν° μ€ data
μ udata
μ λν΄ μ€λͺ
νκ² μ΅λλ€:data
: μ΄ νλΌλ―Έν°μ μ©λλ μ΄λ²€νΈ νν°(filter
)μ λ°λΌ λ€λ₯΄λ©°, μ΄λ²€νΈμ λν μΆκ° μ 보λ₯Ό μ 곡ν©λλ€. μλ₯Ό λ€μ΄,EVFILT_READ
νν°λ₯Ό μ¬μ©νλ κ²½μ°data
λ μ½μ μ μλ λ°μ΄ν°μ λ°μ΄νΈ μλ₯Ό λνλΌ μ μμ΅λλ€. λ€λ₯Έ νν°λ₯Ό μ¬μ©νλ κ²½μ°μλ λ€λ₯Έ μ’ λ₯μ μ 보λ₯Ό λνλΌ μ μμ΅λλ€. μ¦,data
νλλ μ΄λ²€νΈμ λ°λΌ λ€λ₯Έ μλ―Έλ₯Ό κ°μ§ μ μμΌλ©°, μ΄λ²€νΈμ νΉμ μΈλΆ μ¬νμ λνλ΄λ λ° μ¬μ©λ©λλ€.
udata
: μ¬μ©μ μ μ λ°μ΄ν°λ₯Ό μν ν¬μΈν°μ λλ€. μ΄ νλΌλ―Έν°λkevent
ꡬ쑰체μ ν¨κ» μ 곡λλ μ΄λ²€νΈμ λν μ¬μ©μ μ μ 컨ν μ€νΈ λλ λ°μ΄ν°λ₯Ό κ°λ¦¬ν€λ λ° μ¬μ©λ©λλ€.udata
λ μ΄λ²€νΈ νΈλ€λ¬λ μ½λ°± ν¨μμμ ν΄λΉ μ΄λ²€νΈλ₯Ό λ μ μ²λ¦¬νκΈ° μν΄ νμν μΆκ° μ 보λ₯Ό μ μ₯νλ λ° μ μ©ν©λλ€. μλ₯Ό λ€μ΄, νΉμ μ΄λ²€νΈμ κ΄λ ¨λ κ°μ²΄μ ν¬μΈν°λ₯Όudata
μ μ μ₯νμ¬ μ΄λ²€νΈκ° λ°μνμ λ μ½κ² ν΄λΉ κ°μ²΄μ μ κ·Όν μ μμ΅λλ€.
EV_SET
μ μ¬μ©νμ¬ kevent
ꡬ쑰체λ₯Ό μ€μ ν λ, ident
, filter
, flags
, fflags
, data
, udata
λ±μ νλλ₯Ό μ μ ν μ€μ ν¨μΌλ‘μ¨, μνλ μ΄λ²€νΈ λͺ¨λν°λ§ λμμ μ λ°νκ² κ΅¬μ±ν μ μμ΅λλ€. data
μ udata
λ μ΄λ¬ν μ€μ μ€μμλ νΉν μ΄λ²€νΈ μ²λ¦¬μ μ μ°μ±κ³Ό 컨ν
μ€νΈ κ΄λ¦¬ μΈ‘λ©΄μμ μ€μν μν μ ν©λλ€.
Loading Comments...