Post

[Infra] Apache vs Undertow ๋น„๊ต

๐Ÿ“Œ ๋“ค์–ด๊ฐ€๋ฉฐ

์ด๋ฒˆ ๊ธ€์—์„œ๋Š” ์›น ๊ฐœ๋ฐœ์—์„œ ์ž์ฃผ ์“ฐ์ด๋Š” ๋‘ ์›น ์„œ๋ฒ„ Apache์™€ Undertow๋ฅผ ๋น„๊ตํ•œ๋‹ค. ๋‘˜ ๋‹ค ๋„๋ฆฌ ์“ฐ์ด์ง€๋งŒ ์„ฑ๊ฒฉ์ด ๋‹ค๋ฅด๋‹ค.

์„œ๋ฒ„ํ•œ ์ค„ ์„ฑ๊ฒฉ
Apache HTTP Server์—ญ์‚ฌยท์•ˆ์ •์„ฑยท๋‹ค์–‘ํ•œ ๋ชจ๋“ˆ
Undertow๊ฒฝ๋Ÿ‰ยท๋น ๋ฅธ ์„ฑ๋ŠฅยทJava ๋‚ด์žฅ

1. Apache HTTP Server

ํŠน์ง•์„ค๋ช…
์—ญ์‚ฌยท์•ˆ์ •์„ฑ1995๋…„๋ถ€ํ„ฐ, ๋†’์€ ์‹ ๋ขฐ์„ฑ
๋‹ค์–‘ํ•œ ๋ชจ๋“ˆ๋ชจ๋“ˆ๋กœ ๊ธฐ๋Šฅ ํ™•์žฅ
์ปค๋ฎค๋‹ˆํ‹ฐ๋ฐฉ๋Œ€ํ•œ ์ปค๋ฎค๋‹ˆํ‹ฐ ์ง€์›
1
2
3
4
<VirtualHost *:80>
    ServerName www.example.com
    DocumentRoot /var/www/html
</VirtualHost>

2. Undertow

ํŠน์ง•์„ค๋ช…
๊ฒฝ๋Ÿ‰ยท๊ณ ์„ฑ๋Šฅ๋น ๋ฅธ ์‹œ์ž‘, ๋‚ฎ์€ ์ž์› ์‚ฌ์šฉ
Servlet ๊ธฐ๋ฐ˜Java Servlet API๋กœ ๊ตฌํ˜„, Java๋กœ ํ™•์žฅ
Embedded ๋ชจ๋“œ๋ณ„๋„ ์›น ์„œ๋ฒ„ ์—†์ด ๋…๋ฆฝ ์‹คํ–‰
1
2
3
4
5
6
7
8
9
10
11
public class SimpleUndertowServer {
    public static void main(String[] args) {
        Undertow server = Undertow.builder()
            .addHttpListener(8080, "localhost")
            .setHandler(Handlers.path()
                .addPrefixPath("/", exchange ->
                    exchange.getResponseSender().send("Hello, Undertow!")))
            .build();
        server.start();
    }
}

๐Ÿ’ก Undertow๋Š” ๋‚ด์žฅ(Embedded) ๋ชจ๋“œ๊ฐ€ ๊ฐ•์ ์ด๋‹ค. ์Šคํ”„๋ง ๋ถ€ํŠธ์—์„œ ํ†ฐ์บฃ ๋Œ€์‹  Undertow๋ฅผ ๋‚ด์žฅ ์„œ๋ฒ„๋กœ ์“ฐ๊ธฐ๋„ ํ•œ๋‹ค.


3. ์–ด๋–ค ๊ฒƒ์„ ์„ ํƒํ• ๊นŒ?

์„ ํƒ์ƒํ™ฉ
Apacheํฐ ๊ทœ๋ชจ, ์•ˆ์ •์„ฑ ์ค‘์‹œ, ๋‹ค์–‘ํ•œ ๋ชจ๋“ˆ ํ•„์š”
Undertow๊ฒฝ๋Ÿ‰์„ฑยท๋น ๋ฅธ ์‹œ์ž‘, Java ๊ธฐ๋ฐ˜ ํ™•์žฅ

๐Ÿ“ ์ •๋ฆฌ

1
2
3
4
Apache vs Undertow
โ”œโ”€ Apache    ์•ˆ์ •์„ฑยท๋ชจ๋“ˆยท์ปค๋ฎค๋‹ˆํ‹ฐ (์ „ํ†ต ์›น ์„œ๋ฒ„)
โ”œโ”€ Undertow  ๊ฒฝ๋Ÿ‰ยท๋น ๋ฆ„ยทJava ๋‚ด์žฅ (Embedded)
โ””โ”€ ์„ ํƒ      ๊ทœ๋ชจยท์•ˆ์ •์„ฑ vs ๊ฒฝ๋Ÿ‰์„ฑยทJava
๊ฐœ๋…ํ•œ ์ค„ ์ •์˜
Apache์—ญ์‚ฌ ๊นŠ์€ ์•ˆ์ •์  ์›น ์„œ๋ฒ„
Undertow๊ฒฝ๋Ÿ‰ Java ๋‚ด์žฅ ์›น ์„œ๋ฒ„
Embedded ๋ชจ๋“œ์•ฑ์— ๋‚ด์žฅํ•ด ๋…๋ฆฝ ์‹คํ–‰

์›น ์„œ๋ฒ„ ์„ ํƒ์€ ์ •๋‹ต์ด ์—†๋‹ค. ๊ทœ๋ชจ์™€ ์•ˆ์ •์„ฑ์ด ์ค‘์š”ํ•˜๋ฉด Apache, ๊ฒฝ๋Ÿ‰์„ฑ๊ณผ Java ํ†ตํ•ฉ์ด ์ค‘์š”ํ•˜๋ฉด Undertow๋‹ค. ํ”„๋กœ์ ํŠธ์˜ ์š”๊ตฌ์‚ฌํ•ญ์— ๋งž๊ฒŒ ๊ณ ๋ฅด๋ฉด ๋œ๋‹ค.

This post is licensed under CC BY 4.0 by the author.

Comments powered by Disqus.