U E D R , A S I H C RSS

Zero Page_200_OK/note


  • •˜ ๋…ธŠธ๋Š” ๋‚ œ๋‚˜ š”ผ ๋ณ„๋กœ ตฌ๋ถ„•˜ง€ •Š  ฐ ฃผ œ๋ณ„๋กœ ๋ถ„๋ฆฌ•  ƒฐž…๋‹ˆ๋‹ค. ธ๋ ‡ฒŒ •˜๋Š” Žธด ๋‚˜‘— ฐพ•„๋ณดธฐ— ‹„ฒƒ ฐ™Šต๋‹ˆ๋‹ค -•ˆ˜ค€
  •  €˜ ฃผด€ ธ ๋ถ€๋ถ„ด ๋งŽด ๋“ค–ด ฐˆˆ˜ žˆœผ๋ฏ€๋กœ ๋ถ€กฑ•˜‹ƒฐ๋˜๋Š” ๋ถ€๋ถ„€ „›Œฃผ„š”.
  • •˜ ๋…ธŠธ๋Š” ฐ™ด ๋งŒ๋“ค–ด ๋‚˜ฐ€๋Š” ฒƒด๋ฏ€๋กœ ๋ชจ๋‘๋“ค •˜ „›Œ๋‚˜‘‹œ‹ค.

1. HTTP

1.1. HTTP Method

1.1.1. POST

  • uploder—ฒŒ ๋ฆฌ†ŒŠค๋ฅผ ˜ฌ๋ฆด๋•Œ ‚ฌšฉ ฃผ๋กœ ƒˆธ€„ “ธ๋•Œ ๋งŽ‚ฌšฉ•œ‹ค.

1.1.2. PUT

  • resource— ‚ฌšฉ ธ url— ๋”ฑ ˜ฌ๋ฐˆ ๋•Œ “ด๋‹ค. ฃผ๋กœ ˆ˜ •— ‚ฌšฉ๋œ‹ด๋ฏธ ID๋ฅผ •Œ  žˆœผ๋ฏ€๋กœ.

2. JavaScript๋ž€?


2.1. Prototype ธฐ๋ฐ˜ –ธ–ด

  • prototype–ธ–ด?
    • oop˜ ๋ฆ„€ class™€ prototypeœผ๋กœ ๋‚˜๋Šฐ๋‹ค.
    • prototype€ ด๋ž˜Šคฐ€ ๋“ค  žˆ–ด••˜๋Š” •ˆ˜๋“ค„ Šน • Šค„Šคฐ€ ๋“ค  žˆฒŒ ๋งŒ๋“œ๋Š” ฒƒด๋‹ค.
    • Šน • Šค„Šค๋ฅผ prototypeด๋ผ ๋ถ€๋ฅธ๋‹ค.

2.2. •ˆ˜˜• –ธ–ด

  • •ˆ˜๋ฅผ ธ‰ฒด๋กœ‹ค๋ฃจ๋Š” –ธ–ด
    • ธ‰ฒด๋ž€?
      • ๋ณ€ˆ˜ •ˆ— ๋‹„ˆ˜ žˆ ,
      • ŒŒ๋ผ๋ฏธ„ฐ๋กœ  „‹• ˆ˜ žˆœผ๋ฉฐ,
      • ๋ฐ˜™˜ฐ’„ ‚ฌšฉ• ˆ˜ žˆ 
      • • ‹น๋œด๋ฆ„ณผ ด€„—†ตฌ๋ถ„• ˆ˜ žˆ๋‹
  • •ˆ˜๋ฅผ ๋งˆ˜ ผ๋ฐ˜ Šค„Šค˜๋Ÿผ ๋‹ค๋ฃจ๋Š” –ธ–ด

3. Javascript ๋ฌธ๋ฒ•


3.1. ด๋กœ 

  • ด๋กœ ธ : ๋‚ด๋ถ€˜ žˆ๋Š” ™ธ๋ถ€— žˆ๋Š” •ˆ˜˜ ง€—ญ ๋ณ€ˆ˜๋ฅผ “ธˆ˜ žˆ๋Š”ฒƒ. ๋•Œ๋ฌธ— ˜๋„•˜ง€ •Š€ ฒฐณผ๋ฅผ ฐ€ ˜ˆ˜ žˆ๋‹ค.
    ˜ˆ‹œถ”ฐ€๋ฐ”๋žŒ

3.2. Excuteion Context

  • this
    • p.do() —„œ pฐ€ ‹–‰๋ฌธ๋งฅด๋‹ค. ธ๋Ÿฌ๋‚˜ •ˆ˜๋ฅผ๋ณ€ˆ˜๋กœ ๋ฐ›œผ๋ฉด var f = p.do; f(); ด๋Ÿฐ‹œผ๋กœ ธ๋Ÿฌ๋ฉด f๋Š” ‹–‰๋ฌธ๋งฅ—†ธฐ ๋•Œ๋ฌธ—  „—ญฒดฐ€ ‹–‰๋ฌธ๋งฅœผ๋กœ „ฃผ๋œ‹ค.
  • ฒฐ๋ก  œผ๋กœ •ˆ˜ •ž ๋งˆง€๋ง‰ . •ž— žˆ๋Š” ฒƒ‘š”•˜‹ค.
  • func.apply(ec, arguments) ๋‚˜ func.call(ec, arg1, arg2, ... )œผ๋กœ func•ˆ—„œ˜ ‹–‰๋ฌธ๋งฅ(this)๋ฅผ ๋ช…‹œ œผ๋กœ ๋ณ€ฒฝ• ˆ˜ žˆ๋‹ค.

3.3. new˜ ๋™ž‘

  • new Person();
    • 1. create instance
    • 2. instance.proto = Person.prototype;
      • ด๋•Œ˜ proto๋Š” ”„๋กœ† ƒ€ž… ฒดด๋• ˆ˜žˆ๋‹ค.(—”„๋ณ„๋กœ‹ค๋ฅผˆ˜ žˆ๋‹ค.)
    • 3. ‹–‰๋ฌธ๋งฅ„ instance๋กœ •œ ƒ„ž๋ฅผ ˜œ•œ‹ค.

3.4. prototype


3.4.1. Class vs Prototype

  • Class : •ˆ˜™€ ๋งด๋ฒ„ ๋ณ€ˆ˜ฐ€ ฐฐ class™€ Šค„Šค— ๋‚˜๋ˆ„–ด  žˆ๋Š”ฒƒ.
  • prototype : •ˆ˜™€ ๋งด๋ฒ„ ๋ณ€ˆ˜ ๋ชจ๋‘ Šค„Šค—  €žฅ๋˜žˆ๋Š”ฒƒ
    • ‹ง€ •ˆ˜๋Š” ๋‹ค๋ฅธ Šค„Šค— กดžฌ•œ‹ค.
    • ธ ๋‹ค๋ฅธ Šค„Šค๋Š” prototypeด๋ผ ๋ถ€๋ฅธ๋‹ค.
      class <-----------------> prototype
      VTable <-----------------> prototype chain (proto)

3.4.2. dispatch

  • ‹ œ ˜œ•••˜๋Š” •ˆ˜๋ฅผ ฐพ๋Š” ณผ •
  • javascript—„œ๋Š” ‹–‰‹œ„— ”„๋กœ† ƒ€ž… ฒด— ˜•‹–‰•œ‹ค.
    • instance˜ proto—„œ ฐพ  —†œผ๋ฉด œ„— proto—„œ ฐพ ...
  • ฝ”๋“œ๋กœ ๋‚˜ƒ€๋‚ด๋ณด๋ฉด..

for (var _proto = a; _proto; _proto = _proto.__proto__)
{
    if (("f" in _proto) && typeof _proto["f"] === "function")
        _proto["f"].apply(a, arguments]);
}
  • ž๋ฐ”Šคฌ๋ฆฝŠธ๋Š” •ˆ˜™€ ผ๋ฐ˜ ๋ณ€ˆ˜™€˜ ตฌ๋ถ„—†ธฐ๋•Œ๋ฌธ— ๋ณ€ˆ˜˜•œ dispatchฐ€ ๋œ‹ค.

3.4.3. ƒ†

  • ƒ†„ œ„•„œ๋Š” prototype chain— ๋“ฑ๋ก•˜๋ฉด ๋œ‹ค.

function People(){};
function Man(){};
Man.prototype = new People();
m = new Man();

3.5. same origin policy

  • ž๋ฐ” Šคฌ๋ฆฝŠธ—„œ๋Š” XSS๋ฅผ ๋ง‰ธฐ(?)œ„•ด ๋™•œ ๋„๋ฉ”•„‹ˆ๋ฉด javascript๋ฌธ๋งฅ—  ‘• ˆ˜ —†๋‹ค.
  • iframeด๋‚˜ XHRš”ฒญ€ ฒƒ˜  šฉ„ ๋ฐ›๋Š”๋‹ค.
  • document.domain „ กฐ ••œผ๋กœจ ๋™•œ ๋„๋ฉ”˜ ๋ฒ”œ„๋ฅผ ๋ฐ”ฟ€ˆ˜ žˆ๋‹ค.
    • wiki.zeropage.org ™€ www.zeropage.org ๋ฅผ ๋™•œ ๋„๋ฉ”œผ๋กœ ธ‰•˜ธฐ œ„•ด document.domain„ zeropage.org๋กœ „ •• ˆ˜ žˆ๋‹ค.
    • ‹จ, ฒƒ„ •˜œ„ ๋„๋ฉ”ธ. •ž—„œ ๋ถ€„ฐ๋งŒ œ๋ฅผˆ˜ žˆœผ๋ฉฐ ๋ถ™ด๋Š” ฒƒ€ —ˆšฉ๋˜ง€ •Š๋Š”๋‹ค.

3.5.1. Same Origin Policy๋ฅผ น๋ณต•˜ธฐ œ„•œ ๋ฐฉ๋ฒ•

  • proxy
    • ‹ค๋ฅธ ๋„๋ฉ”—  ‘•˜ธฐ œ„•ด ๋™ผ ๋„๋ฉ”„œ๋ฒ„— ๋‹ค๋ฅธ Ž˜ง€˜ ฒฐณผ๋ฅผ ธ๋Œ€๋กœ –ด™€ ๋‚ด๋ ฃผ๋Š” proxy๋ฅผ „˜•œ‹ค.
    • ๋ถ€•˜ฐ€ ๋งŽฑธ๋ฆฌ (š”ฒญ๋งˆ๋‹„œ๋ฒ„— š”ฒญ„ ๋ณด๋‚ด  ฑธ ๋‹‹œ ๋‚ด๋ ฃผ๋ฏ€๋กœ„Šธ›Œฌ ๋น„šฉ๋ฐ ธฐƒ€ ๋น„šฉฐ€)
    •  ๋ฌธ œฐ€ ฑธ๋ฆดฒฝšฐ ๋ณด•ˆ•™”๋ ˆ˜ žˆ๋‹ค.
  • Image
    • ›๋ž˜ same origin policy๋ฅผ  šฉ๋ฐ›ง€ •ŠŒœผ๋กœ น๋ณต• ˆ˜ žˆœผ๋‚˜ ๋ฐ”ด๋„ˆ๋ฆฌ๋ฏ€๋กœ • ‹œ‹ดˆ šฐ๋ฆฌฐ€ “ธˆ˜ —†๋‹ค.
  • Ifreame
    • ๋‚ด๋ถ€—„œ‹ค๋ฅธ ž๋ฐ”Šคฌ๋ฆฝŠธ ฝ”๋“œฐ€ ž‘๋™• ˆ˜ žˆœผ๋‚˜‹ค๋ฅธ ๋„๋ฉ”ด๋ผ๋ฉด  ‘ด ๋ถˆฐ€•˜‹ค.
    • ”Œ๋ž˜‰ฌ๋กœ น๋ณต• ˆ˜ žˆœผ๋‚˜ ด๋–ธŠธ— ๋ถ€•˜ฐ€ žˆ  ž๋ฐ”Šคฌ๋ฆฝŠธ  œ •œ ๋ฐฉ‹œผ๋กœ •ฒฐ•˜๋Š”ฒƒ•„‹ˆ๋„œ ‹ง€•Š๋‹ค.
  • Script tag
    • Same origin policy๋ฅผ  šฉ๋ฐ›ง€ •Š  ž๋ฐ”Šคฌ๋ฆฝŠธ๋ฅผ ๋ถˆ๋Ÿฌ˜ˆ˜ žˆœผ๋‚˜ ๋ฐ”๋กœ ‹–‰ด ๋˜๋ฏ€๋กœ‹ค๋ฅธ ๋ฐฉ‹„ จ••œ‹ค.
    • script tag๋ฅผ –ด ๋กœ๋”ฉด ๋๋‚˜๋ฉด ๋ฐ”๋กœ ‹–‰ •˜ธฐ ๋•Œ๋ฌธ— —ฌ๋Ÿฌœ๋ฅผ ๋™‹œ— ๋ถˆ๋Ÿฌ˜ฒฝšฐ  „—ญ๋ณ€ˆ˜๋ฅผ šฉ•œ ๋ฐฉ‹€ ๋ถˆฐ€.
    • ๋”ฐ๋„œ callback•ˆ˜๋กœ •ฒฐ•œ‹ค.
    • ด๋•Œ ๋‚ด๋ „ ‘‹€ JSONณผ๋Š” กฐธˆ ๋‹ค๋ฅด๋‹ค.

__callback({ "json" : "data"});
  • œ„™€ ฐ™€ ˜•‹œผ๋กœ ๋‚ด๋ „ฒฝšฐ ด๋–ธŠธ(š”ฒญ•œ ชฝ)—„œ _callback•ˆ˜๋งŒ  •˜•ด๋‘๋ฉด ๋กœ๋”ฉด ๋๋‚จณผ ๋™‹œ— ๋ถˆ๋ฆฌฒŒ ๋œ‹ค.
  • ‘‹€ ๋งˆ˜ JSON— •ˆ˜๋งŒ ฐ‹˜•‹ธฐ ๋–„๋ฌธ— JSON with Padding, JSONP๋ผ ๋ถ€๋ฅธ๋‹ค.

4. server


4.1. ข…๋ฅ˜

  • Apache http server (httpd)
    • „๋ฆฌ “ฐ  žˆ๋Š” „œ๋ฒ„  ฐ€žฅ •ˆ „„ด ๋›ฐ–ด๋‚˜‹ค.
  • IIS
    • windows —„œ “ฐ  —ญ‹œ •ˆ •„ด ๋›ฐ–ด๋‚˜  GUIด€๋ฆฌฐ€ ฐ€๋Šฅ•˜‹ค.
  • lighttpd
    • event driven ๋ฐฉ‹˜ „œ๋ฒ„
  • nginx
    • evnet driven ๋ฐฉ‹ด๋ฉฐ nodejs ๋•Œ๋ฌธ— œ ๋ช…•กŒ๋‹ค.

4.2. ดˆธฐ˜ ›น„œ๋ฒ„

  • static •œ ŒŒ„ ๋‚ด๋ ค€๋‹ค.
  • ™•žฅž๋ฅผ ŒŒ•…•„œ˜๋Š” ŒŒ˜ —ค๋”๋ฅผ –ด ๋งž๋Š” MIME TYPE๋ฅผ —ค๋”—  –ดค€๋‹ค.
  • static •œ ŒŒ„ —…๋กœ๋“œ ๋ฐ›๋Š”๋‹ค.

4.3. กฐธˆ ๋‚˜€ ›น„œ๋ฒ„

  • ๋ญ”ฐ€ ๋‹ด๋‚˜๋ฏน•˜ฒŒ ๋งŒ๋“ค–ด๋ณดž.

4.3.1. Unix File

  • Unix—„œ Fileด๋•€ ๋‹Œ„ ๋ชจ๋‘ ˜๋ฏธ•œ‹ค.
    • šฐ๋ฆฌฐ€ •Œ  žˆ๋Š” ŒŒผ (Process - Disk)
    • ”„๋กœ„Šค„ †ต‹ — ‚ฌšฉ๋˜๋Š” Pipe
    • ›ฒฉ ๋จธ‹ — กดžฌ•˜๋Š” ”„๋กœ„Šค™€ †ต‹ •˜๋Š” Socket
    • ธฐ„žฅ˜™€ †ต‹ •˜๋Š” ๋“œด๋ฒ„
  • Unix๋Š” Cž„—๋„ ๋ถˆตฌ•˜  • •œ ถ”ƒ™”๋ฅผ †ต•ด ๋ญ”ฐ€๋ฅผ   “ฐ๋Š” ฒƒœผ๋กœ File„ ๋งŒ๋“ค—ˆ๋‹ค.
  • ๋งˆ˜‹Œณผ ฐ™€ ๋А๋‚Œด๋‹ค.

FILE f = new Pipe();

4.3.2. CGI

  • Common Gateway Interface
  • Unix—„œ๋Š” Pipe๋„ Fileด๋ฏ€๋กœ static•œ file ๋Œ€‹  Pipe๋ฅผ “ฐ๋ฉด ๋ญ”ฐ€ ๋‹ด๋‚˜๋ฏน•œฒŒ ๋˜ง€•Š„นŒ?
  • ›น„œ๋ฒ„๋Š” ๋‘  ฑฐธฐ— ๋‹ค๋ฅธ ”„๋กœ„Šค๋ฅผ ‹–‰•„œ ‹–‰ ฒฐณผ๋ฅผ –ด๋“คž.
  • ด๋•Œ˜ œ•„ CGI๋ผ ๋ถ€๋ฅธ๋‹ค.
    • standard Input—๋Š” request body„ ค€๋‹ค.
    • standard Output—๋Š” response body๋ฅผ ๋„˜ธด๋‹ค.
    • ™ธ— ธฐƒ€ ๋“ฑ๋“ฑ˜  •๋ณด๋Š” ™˜ฒฝ๋ณ€ˆ˜๋กœ„˜ธด๋‹ค.
  • ‘œค€€ RFC3875ด๋ฉฐ IETF—„œ ด€๋ฆฌ•œ‹ค.
  • ๋งค ‹–‰‹œ๋งˆ๋‹ƒˆ๋กœšด ”„๋กœ„Šค๋ฅผ ƒ„•˜ธฐ๋•Œ๋ฌธ— ๋ฉ”๋ชจ๋ฆฌ †Œ๋ชจฐ€ ‹•˜  disk ‘ด ๋งŽ๋‹ค.

4.4. ข€ œฐฎ€ ›น „œ๋ฒ„

  • ƒˆ๋กœšด ”„๋กœ„Šค๋ฅผ ๋งŒ๋“œ๋Š” ๋น„šฉ„ „—ฌ๋ณดž.
  • ณตšฉ๋ด๋ธŒ๋Ÿฌ๋ฆฌ๋Š” ”„๋กœ„Šคฐ€ ‹–‰๋ •Œ •œ๋ฒˆ๋งŒ ๋ถˆ๋Ÿฌ™€„‹ค.
    • ISAPI(ISS) : DLLšฉ)
    • mod (apache : sošฉ)
  • ˜„žฌ ฐ€žฅ ๋งŽ‚ฌšฉ๋˜๋Š” ๋ฐฉ‹
  • process per request ๋ฐฉ‹–ด„œ fork ๋น„šฉ€ —ฌ „žˆ กดžฌ•˜  š”ฒญ๋งˆ๋‹ค ๋ฉ”๋ชจ๋ฆฌ๋ฅผ ๋งŽด ๋จน๋Š”๋‹ค.
  • •˜ง€๋งŒ ๋ชจ๋“ˆ„ š”ฒญ๋งˆ๋‹ค ๋””Šคฌ—„œ ง€ •Šธฐ ๋•Œ๋ฌธ— กฐธˆ€ ๋‚˜•„กŒ๋‹ค.

4.5. ๋งŽœฐฎ€ ›น„œ๋ฒ„

  • fork๋น„šฉ„ —†• ž
  • ‹€ Thread

4.5.1. MPM

  • fork•˜๋Š” ๋ถ€๋ถ„„ module๋กœ ๋งŒ๋“ค–ด —ฌ๋Ÿฌ ๋ฐฉ‹„ „ ƒ• ˆ˜ žˆ๋‹ค.
  • fork ๋Œ€‹  Thread๋ฅผ “ธˆ˜๋„ žˆ  šด˜ฒด œ๋ณ„๋กœ‹ค๋ฅธ ๋ฐฉ‹„ “ธˆ˜๋„ žˆ  fork๋ฅผ ธ๋Œ€๋กœ “ธˆ˜๋„ žˆ๋‹ค.
  • ธฐกด— •˜๋˜ ๋ฐฉ‹€ pre-fork๋ฐฉ‹
  • mpm-worker ๋ฐฉ‹€ ”„๋กœ„Šค ๋Œ€‹ — “ฐ๋ ˆ๋“œ๋ฅผ “ฐ๋Š” ๋ฐฉ‹ด๋‹ค.
    • •˜๋‚˜˜ ”„๋กœ„Šค— —ฌ๋Ÿฌœ˜ “ฐ๋ ˆ๋“œ๋ฅผ ๋งŒ๋“ค–ด ๋Œ€ธฐ•˜‹ฐ€ š”ฒญ˜ค๋ฉด •˜๋‚˜”ฉ ๋Œ€‘•˜๋Š” ๋ฐฉ‹
    • thread per request ๋ฐฉ‹
    • ‹ค๋งŒ ๋ชจ๋“ˆด Thread•ˆ „•••œ‹ค.
  • —ฌ „žˆ CPU ž›„ ๋งŽ“ด๋‹ค.
  • Servlet๋„ ฐ™€ ๋ฐฉ‹ด๋‹ค.
  • context switchฐ€ ๋งŽ–ด๋‚˜„œ šจœ ง€ •Š  ‰  ‘‹‹œ„ธธ–ด„‹ค.

4.5.2. MPM + Queue

  • ๋ฅผ ๋งŒ๋“ค–ด„œ context switch๋น„šฉ„ „—ฌ๋ณด๋   ๋…ธ๋ –ˆ๋‹ค.
  • connection„ — Œ“•„‘  workerฐ€ •˜๋‚˜”ฉ บผ๋‚ด–ด ˜๋ฆฌ
  • ธฐกด—๋„ •˜  žˆ๋Š” ๋ฐฉ‹ธด •˜๋‚˜ —ฌ „žˆ context switch๋Š” –ด๋‚œ‹ค.

4.6.  •๋ง ๋ฏธ˜๋„๋ก œฐฎ€ ›น„œ๋ฒ„

  • •œ ปค๋„…˜ (=job)„ ž„žˆ ‚ดŽด๋ณด•˜๋”๋‹ˆ...File I/O DB ‘ผ ๋“ฑ๋“ฑ ๋Œ€ธฐ๋งŒ •˜๋Š” ‹œ„ธธ๋”๋ผ.
  • ธ๋Ÿผด I/O๋ถ€๋ถ„๋งŒ ๋น„๋™ธฐ๋กœ ˜๋ฆฌ•‹œ‹ค.
  • ๋กœงœ†Œ ๋‹œ„๋กœ ๋‚˜๋‰˜–ดง€  ‹œ„˜ค๋ž˜ ฑธ๋ฆฌ๋Š” ž‘—…€ ๋น„๋™ธฐ ˜๋ฆฌ.
  • ˆœ„œ๋Š” กดžฌ•••˜ธฐ ๋•Œ๋ฌธ— Event-driven˜ ƒ„ƒ.
  • ‹œ„˜ค๋ž˜ฑธ๋ฆฌ๋Š” ž‘—…€ ๋น„๋™ธฐ๋กœ ˜๋ฆฌ•••˜ธฐ ๋•Œ๋ฌธ— ‹œ„˜ค๋ž˜ ฑธ๋ฆฌ๋Š” ž‘—…€ ๋‹ค๋ฅธ ”„๋กœ„Šค๋กœ„˜ธฐ๋Š”ฒƒด ๋‚ซ๋‹ค.
  • ธ๋ž˜„œ fork˜ •…๋ชฝ‹œž‘๋˜๋Š” „ •Œ•˜œผ๋‚˜.

4.6.1. fast CGI

  • ”„๋กœ„Šค๋ฅผ demonœผ๋กœ ๋งŒ๋“ญ‹œ‹ค!
  •  „—๋Š” CGI๋“ค๋„‹จ๋… ‹–‰ฐ€๋Šฅ–ˆ๋‹ค!
  • fast CGI๋Š” ๋‹จ๋…‹–‰ ๋Œ€‹  deamon(service)๋กœ ‹–‰๋œ‹ค.
  • •œ๋ฒˆ ‹–‰๋˜–ด ๋Œ€ธฐ•˜ธฐ ๋•Œ๋ฌธ— ”„๋กœ„Šค๋ฅผ ๋งค š”ฒญ๋งˆ๋‹ค ๋‹‹œ ๋””Šคฌ—„œ ๋ถˆ๋Ÿฌ˜ง€ •Š•„๋„ ๋œ‹ค.
  • †ต‹ ๋ฐฉ‹€ socket
    • ๋”ฐ๋„œ ”„๋กœ„Šคฐ€ ๋ฌด—‡ด๋˜ „— †Œผ“๋งŒ ๋งŒ๋“œ๋ฉด ๋˜๋ฏ€๋กœ ›น„œ๋ฒ„˜ ๋ชจ๋“ˆฐฏˆ˜ฐ€ ™•—ฐžˆ „–ด๋“ ‹ค.
    • †Œผ“ด๋ฏ€๋กœ CGIฐ€ ๋‹ค๋ฅธ „œ๋ฒ„— กดžฌ•ด๋„ ๋œ‹ค.
    • ๋กœ๋“œ๋ฐธ๋Ÿฐ‹Žธ•„‹ค. (CGIฐ€ ๋‹ค๋ฅธ๋ฐ žˆ–ด๋„ ๋˜‹ˆนŒ.)
    • ฐ CGI๋ชจ๋“ˆด ๋”ฐ๋กœ ๋”ฐ๋กœ žˆ–ด๋„ ๋œ‹ค.
    • ฑด —„—ฐžˆ ๋‹ค๋ฅธ ”„๋กœ„Šคด๋ฏ€๋กœ ๋ชจ๋“ˆ“ฐ๋ ˆ๋“œ •ˆ „ •˜ง€ •Š•„๋„ ๋œ‹ค!
  • ˜„กด•˜๋Š” ฐ€žฅ ๋น ๋ฅธ ๋ฐฉ‹.

event-driven ๋ฐฉ‹˜ ›น„œ๋ฒ„™€ event-driven๋ฐฉ‹˜ WASฐ€ ๋งŒ๋‚˜๋ฉด
nginx + nodejs
๋”ƒ˜ž„•œ„ค๋ช…€ƒ๋žต•œ‹ค.
Valid XHTML 1.0! Valid CSS! powered by MoniWiki
last modified 2021-02-07 05:28:33
Processing time 0.0369 sec