Study/Java

[TIL] ์šด์˜ ์ „๋žต (2)

hong- 2022. 8. 9. 16:41

๐Ÿ™๐Ÿป TOMCAT

 - Apache์‚ฌ์—์„œ ๊ฐœ๋ฐœํ•œ ์„œ๋ธ”๋ฆฟ ์ปจํ…Œ์ด๋„ˆ๋งŒ ์žˆ๋Š” ์˜คํ”ˆ์†Œ์Šค ์›น ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜ ์„œ๋ฒ„

๐Ÿ“ Tomcat ํŠน์ง•

  - ์ž๋ฐ” ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜์„ ์œ„ํ•œ ๋Œ€ํ‘œ์ ์ธ ์˜คํ”ˆ ์†Œ์Šค : Web Application Server(WAS)

  - ์˜คํ”ˆ์†Œ์Šค์ด๊ธฐ ๋•Œ๋ฌธ์— ๋ผ์ด์„ ์Šค ๋น„์šฉ ๋ถ€๋‹ด ์—†์ด ์‚ฌ์šฉ ๊ฐ€๋Šฅ

  - ๋…๋ฆฝ์ ์œผ๋กœ๋„ ์‚ฌ์šฉ๊ฐ€๋Šฅํ•˜๋ฉฐ Apache ๊ฐ™์€ ๋‹ค๋ฅธ ์›น ์„œ๋ฒ„์™€ ์—ฐ๋™ํ•˜์—ฌ ํ•จ๊ป˜ ์‚ฌ์šฉ ๊ฐ€๋Šฅ

  - ์ž๋ฐ” ์„œ๋ธ”๋ฆฟ ์ปจํ…Œ์ด๋„ˆ์— ๋Œ€ํ•œ ๊ณต์‹ ๊ตฌํ˜„์ฒด๋กœ ์Šคํ”„๋ง ๋ถ€ํŠธ์— ๋‚ด์žฅ๋˜์–ด ๋ณ„๋„์˜ ์„ค์น˜ ๊ณผ์ •์ด ํ•„์š” ์—†์Œ

 ๐Ÿ’ก Servlet : ์„œ๋ธ”๋ฆฟ

   - ํด๋ผ์ด์–ธํŠธ์˜ ์š”์ฒญ์„ ์ฒ˜๋ฆฌํ•˜๊ณ  ๊ทธ ๊ฒฐ๊ณผ๋ฅผ ๋ฐ˜ํ™˜ํ•˜๋Š” ์›น ํ”„๋กœ๊ทธ๋ž˜๋ฐ ๊ธฐ์ˆ 

   - ํด๋ผ์ด์–ธํŠธ๊ฐ€ ์š”์ฒญ์„ ํ•˜๋ฉด ๊ทธ์— ๋Œ€ํ•œ ๊ฒฐ๊ณผ๋ฅผ ๋‹ค์‹œ ์ „์†กํ•ด์ฃผ๋Š” ์—ญํ• 

   - ์„œ๋ธ”๋ฆฟ์„ ํ†ตํ•ด ์š”์ฒญ ๋ฉ”์‹œ์ง€๋ฅผ ์ฝ๊ณ  ์‘๋‹ต์„ ๋งŒ๋“ค์–ด ์คŒ

 ๐Ÿ’ก Servlet Container : ์„œ๋ธ”๋ฆฟ ์ปจํ…Œ์ด๋„ˆ

   - ์Šค์Šค๋กœ ๋™์ž‘ํ•˜์ง€ ์•Š๋Š” ์„œ๋ธ”๋ฆฟ์„ ๊ด€๋ฆฌํ•ด์ฃผ๋Š” ์ปจํ…Œ์ด๋„ˆ

   - ์„œ๋ธ”๋ฆฟ ๊ฐ์ฒด๋ฅผ ์ƒ์„ฑ, ์ดˆ๊ธฐํ™”, ํ˜ธ์ถœ, ์ข…๋ฃŒํ•˜๋Š” ์ƒ๋ช…์ฃผ๊ธฐ ๊ด€๋ฆฌ


๐Ÿ™๐Ÿป Jetty

 - ์ดํด๋ฆฝ์Šค ์žฌ๋‹จ์˜ HTTP ์„œ๋ฒ„์ด์ž ์ž๋ฐ” ์„œ๋ธ”๋ฆฟ ์ปจํ…Œ์ด๋„ˆ

 - ๊ฐœ๋ฐœ์ž๊ฐ€ ์›ํ•˜๋Š” ์„œ๋ฒ„๋ฅผ ์„ ํƒํ•˜์—ฌ ํ”„๋กœ์ ํŠธ๋ฅผ ๊ตฌ์„ฑํ•  ์ˆ˜ ์žˆ์Œ

๐Ÿ“Jetty ํŠน์ง•

  - 2009๋…„ ์ดํด๋ฆฝ์Šค ์žฌ๋‹จ์œผ๋กœ ์ด์ „ํ•˜๋ฉฐ ์˜คํ”ˆ์†Œ์Šค ํ”„๋กœ์ ํŠธ๋กœ ๊ฐœ๋ฐœ๋จ

  - ํƒ€ ์›น ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜ ๋Œ€๋น„ ์ ์€ ๋ฉ”๋ชจ๋ฆฌ๋ฅผ ์‚ฌ์šฉํ•˜์—ฌ ๊ฐ€๋ณ๊ณ  ๋น ๋ฆ„

  - ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜์— ๋‚ด์žฅ ๊ฐ€๋Šฅํ•จ

  - ๊ฒฝ๋Ÿ‰ ์›น ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜์œผ๋กœ ์†Œํ˜• ์žฅ๋น„, ์†Œ๊ทœ๋ชจ ํ”„๋กœ๊ทธ๋žจ์— ๋” ์ ํ•ฉํ•จ

* Spring Boot ์„œ๋ฒ„ Jetty๋กœ ๋ณ€๊ฒฝํ•˜๊ธฐ
 1) build.gradle ํŒŒ์ผ์—์„œ spring-boot-starter-web ์˜์กด์„ฑ์ด ์ถ”๊ฐ€ ๋˜์–ด ์žˆ๋Š” ๋ถ€๋ถ„ ํ™•์ธ
 2) ์ด ์˜์กด์„ฑ ๋ชจ๋“ˆ ๋‚ด ํฌํ•จ๋œ Tomcat ์ œ์™ธ
 3) ์ œ์™ธ ์‹œํ‚จ ํ›„ ํ”„๋กœ์ ํŠธ๋ฅผ ์žฌ ๋นŒ๋“œ
 4) Tomcat์„ ๋Œ€์ฒดํ— Jetty ์˜์กด์„ฑ ์ถ”๊ฐ€
 5) ํ”„๋กœ์ ํŠธ ์žฌ ๋นŒ๋“œ

//์ œ๊ฑฐ
 implementation ('org.springframework.boot:spring-boot-stater-web') {
 	exclude module: 'spring-boot-stater-tomcat'
   }

//์ถ”๊ฐ€
 implementation ('org.springframework.boot:spring-boot-stater-jetty')

๐Ÿ™๐Ÿป  NginX - Proxy Server

 - ๊ฐ€๋ณ๊ณ  ๋†’์€ ์„ฑ๋Šฅ์„ ๋ณด์ด๋Š” ์˜คํ”ˆ์†Œ์Šค ์›น ์„œ๋ฒ„ ์†Œํ”„ํŠธ์›จ์–ด

 - ํด๋ผ์ด์–ธํŠธ์—๊ฒŒ ์ •์  ๋ฆฌ์†Œ์Šค๋ฅผ ๋น ๋ฅด๊ฒŒ ์‘๋‹ตํ•˜๊ธฐ ์œ„ํ•œ ์›น ์„œ๋ฒ„

๐Ÿ“ NginX ํŠน์ง•

  - ํŠธ๋ž˜ํ”ฝ์ด ๋งŽ์€ ์›น ์‚ฌ์ดํŠธ์˜ ํ™•์žฅ์„ฑ์„ ์œ„ํ•ด ๊ฐœ๋ฐœ๋œ ๊ณ ์„ฑ๋Šฅ ์›น ์„œ๋ฒ„

  - ๋น„๋™๊ธฐ ์ด๋ฒคํŠธ ๊ธฐ๋ฐ˜์œผ๋กœ ์ ์€ ์ž์›์œผ๋กœ ๋†’์€ ์„ฑ๋Šฅ๊ณผ ๋†’์€ ๋™์‹œ์„ฑ์„ ์œ„ํ•ด ๊ฐœ๋ฐœ๋จ

  - ๋‹ค์ˆ˜์˜ ํด๋ผ์ด์–ธํŠธ ์—ฐ๊ฒฐ์„ ํšจ์œจ์ ์œผ๋กœ ์ฒ˜๋ฆฌ ๊ฐ€๋Šฅ

  - ํด๋ผ์ด์–ธํŠธ์™€ ์„œ๋ฒ„ ์‚ฌ์ด์— ์กด์žฌํ•˜๋Š” ๋ฆฌ๋ฒ„์Šค ํ”„๋ก์‹œ ์„œ๋ฒ„๋กœ ์‚ฌ์šฉ ๊ฐ€๋Šฅ

  - NginX๋ฅผ ํด๋ผ์ด์–ธํŠธ์™€ ์„œ๋ฒ„ ์‚ฌ์ด์— ๋ฐฐ์น˜ํ•˜์—ฌ ๋ฌด์ค‘๋‹จ ๋ฐฐํฌ๋ฅผ ํ•  ์ˆ˜ ์žˆ์Œ

* Spring Boot์™€ Nginx ์—ฐ๋™ํ•˜๊ธฐ
1๏ธโƒฃ Nginx ์„ค์น˜
$ brew install nginx

2๏ธโƒฃ Nginx ์‹คํ–‰
$ brew services start nginx

3๏ธโƒฃ Nginx ์„ค์ • ํŒŒ์ผ ์ˆ˜์ •
$ nginx -t
--> Nginx์˜ ์„ค์žฅ ํŒŒ์ผ ์œ„์น˜ ํ™•์ธ
$ nano /opt/homebrew/etc/nginx/nginx.conf
--> nano ์—๋””ํ„ฐ๋กœ ์„ค์ • ํŒŒ์ผ ์ˆ˜์ •

server{
     listen   80; //8080ํฌํŠธ์—์„œ 80ํฌํŠธ๋กœ ๋ณ€๊ฒฝ
     
     location / {
          proxy_pass http://localhost:8080;  //์š”์ฒญ์„ 8080ํฌํŠธ๋กœ ๋„˜๊น€
          proxy_set_header X-Real-IP $remoate_addr;
          proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
          proxy_set_header Host $http_host;
      }
      
4๏ธโƒฃ Nginx ์žฌ์‹œ์ž‘
$ brew services restart nginx

5๏ธโƒฃ Nginx ์ข…๋ฃŒ
$ brew services stop nginx

๐Ÿ™๐Ÿป VPC

 - VPC๋Š” Virtual Private Cloud ์„œ๋น„์Šค

 - ํด๋ผ์šฐ๋“œ ๋‚ด ํ”„๋ผ์ด๋น— ๊ณต๊ฐ„์„ ์ œ๊ณตํ•จ์œผ๋กœ์จ ํด๋ผ์šฐ๋“œ๋ฅผ ํผ๋ธ”๋ฆญ๊ณผ ํ”„๋ผ์ด๋น— ์˜์—ญ์œผ๋กœ ๋…ผ๋ฆฌ์ ์œผ๋กœ ๋ถ„๋ฆฌํ•  ์ˆ˜ ์žˆ๊ฒŒ ํ•จ

 ๐ŸŒŸ VPC ์—†์—ˆ์„ ๋•Œ

   - ํด๋ผ์šฐ๋“œ์— ์žˆ๋Š” ๋ฆฌ์†Œ์Šค๋ฅผ ๊ฒฉ๋ฆฌํ•  ์ˆ˜ ์žˆ๋Š” ๋ฐฉ๋ฒ•์ด ์—†์—ˆ์Œ

     → ์ธ์Šคํ„ด์Šค๋“ค์ด ์„œ๋กœ ๊ฑฐ๋ฏธ์ค„์ฒ˜๋Ÿผ ์—ฐ๊ฒฐ๋˜๊ณ  ์ธํ„ฐ๋„ท๊ณผ ์—ฐ๊ฒฐ ๋˜์–ด ์‹œ์Šคํ…œ์˜ ๋ณต์žก๋„๋ฅผ ํฌ๊ฒŒ ๋Œ์–ด์˜ฌ๋ฆด ๋ฟ๋งŒ ์•„๋‹ˆ๋ผ ์˜์กด๋„๋ฅผ ๋†’์ž„

        ์œ ์ง€ ๋ฐ ๊ด€๋ฆฌ์— ๋งŽ์€ ๋น„์šฉ๊ณผ ๋…ธ๋ ฅ์„ ํˆฌ์ž…ํ•ด์•ผํ•˜๋Š” ๋‹จ์ ์ด ์žˆ์Œ

 

    ๐Ÿ‘‰๐Ÿป VPC๋ฅผ ๋ถ„๋ฆฌํ•จ์œผ๋กœ์จ ํ™•์žฅ์„ฑ์„ ๊ฐ€์งˆ ์ˆ˜ ์žˆ๊ณ  ๋„คํŠธ์›Œํฌ์— ๋Œ€ํ•œ ์™„์ „ํ•œ ํ†ต์ œ๊ถŒ์„ ๊ฐ€์งˆ ์ˆ˜ ์žˆ์Œ


๐Ÿ“IP Address

  - IP๋Š” ์ปดํ“จํ„ฐ ๋„คํŠธ์›Œํฌ์—์„œ ์žฅ์น˜๋“ค์ด ์„œ๋กœ๋ฅผ ์ธ์‹ํ•˜๊ณ  ํ†ต์‹ ํ•˜๊ธฐ ์œ„ํ•ด ์‚ฌ์šฉํ•˜๋Š” ํŠน์ˆ˜ํ•œ ๋ฒˆํ˜ธ

  - IPv4, IPv6์œผ๋กœ ๋‚˜๋‰˜์–ด ์žˆ์œผ๋ฉฐ ํ˜ผ์šฉํ•˜์—ฌ ์‚ฌ์šฉํ•จ

  - IPv4๋Š” .์œผ๋กœ ์ˆซ์ž๋“ค์„ ๊ตฌ๋ถ„ํ•˜๋ฉฐ ๊ฐ ๊ตฌ์—ญ์€ 8bit ํฌ๊ธฐ์˜ Octet(์˜ฅํ…Ÿ)์œผ๋กœ ์ด๋ฃจ์–ด์ ธ ์žˆ์Œ


๐Ÿ“IP Address Class

 * IPv4 ๊ธฐ์ค€

172.16.0.0

 


๐Ÿ“ CIDR : Classless Inter-Domain Routing : ์‚ฌ์ด๋”

  - ํด๋ž˜์Šค ์—†๋Š” ๋„๋ฉ”์ธ ๊ฐ„ ๋ผ์šฐํŒ… ๊ธฐ๋ฒ•

  - ๊ตญ์ œ ํ‘œ์ค€์˜ IP ์ฃผ์†Œ ํ• ๋‹น ๋ฐฉ๋ฒ•์œผ๋กœ IP ํด๋ž˜์Šค ๋ฐฉ์‹์„ ๋Œ€์ฒดํ•œ ๋ฐฉ์‹

  - ๊ธฐ์กด์—๋Š” ํด๋ž˜์Šค์— ๋”ฐ๋ผ ์ •ํ•ด์ง„ Network Address์™€ Host Address๋ฅผ ์‚ฌ์šฉํ•ด์•ผ ํ–ˆ์Œ

    → CIDR์€ ์›ํ•˜๋Š” ๋ธ”๋ก๋งŒํผ Network Address๋ฅผ ์ง€์ •ํ•˜์—ฌ ์‚ฌ์šฉ ๊ฐ€๋Šฅ

172.16.0.0 / 16

  - ๋’ค์— ๋ถ™์€ /16์€ ์ฒซ 16๋น„ํŠธ๋ฅผ Network Address๋กœ ์‚ฌ์šฉํ•œ๋‹ค๋Š” ์˜๋ฏธ


๐Ÿ“ Subnet : ์„œ๋ธŒ๋„ท

  - ์„œ๋ธŒ ๋„คํŠธ์›Œํฌ์˜ ์ค„์ž„๋ง

  - IP ๋„คํŠธ์›Œํฌ์˜ ๋…ผ๋ฆฌ์ ์ธ ํ•˜์œ„ ๋ถ€๋ถ„์„ ๊ฐ€๋ฆฌํ‚ด

  - ์„œ๋ธŒ๋„ท์„ ํ†ตํ•ด ํ•˜๋‚˜์˜ ๋„คํŠธ์›Œํฌ๋ฅผ ์—ฌ๋Ÿฌ ๊ฐœ๋กœ ๋‚˜๋ˆŒ ์ˆ˜ ์žˆ์Œ

  - VPC์˜ CIDR ๋ธ”๋ก์„ ์ด์šฉํ•˜์—ฌ ์ •์˜๋˜๋ฉฐ ์ตœ์†Œ ํฌ๊ธฐ์˜ ์„œ๋ธŒ๋„ท์€ /28

     → ์„œ๋ธŒ๋„ท์€ AZ๋‹น ์ตœ์†Œ ํ•˜๋‚˜๋ฅผ ์‚ฌ์šฉํ•  ์ˆ˜ ์žˆ๊ณ  ์—ฌ๋Ÿฌ ๊ฐœ์˜ AZ์— ์—ฐ๊ฒฐ๋˜๋Š” ์„œ๋ธŒ๋„ท์€ ๋งŒ๋“ค ์ˆ˜ ์—†์Œ

  โ‘  ํผ๋ธ”๋ฆญ ์„œ๋ธŒ๋„ท : ์ธํ„ฐ๋„ท์„ ํ†ตํ•ด ์—ฐ๊ฒฐํ•  ์ˆ˜ ์žˆ๋Š” ์„œ๋ธŒ๋„ท

  โ‘ก ํ”„๋ผ์ด๋น— ์„œ๋ธŒ๋„ท : ์ธํ„ฐ๋„ท์„ ์—ฐ๊ฒฐํ•˜์ง€ ์•Š๊ณ  ๋ณด์•ˆ์„ ์œ ์ง€ํ•˜๋Š” ๋ฐฐํƒ€์ ์ธ ์„œ๋ธŒ๋„ท

  โ‘ข VPN only ์„œ๋ธŒ๋„ท : ๊ธฐ์—… ๋ฐ์ดํ„ฐ ์„ผํ„ฐ์™€ VPC๋ฅผ ์—ฐ๊ฒฐํ•˜๋Š” ์„œ๋ธŒ๋„ท


๐Ÿ“ Routing Table : ๋ผ์šฐํŒ… ํ…Œ์ด๋ธ”

  - ํŠธ๋ž˜ํ”ฝ์˜ ์ „์†ก ๋ฐฉํ–ฅ์„ ๊ฒฐ์ •ํ•˜๋Š” ๋ผ์šฐํŠธ์™€ ๊ด€๋ จ๋œ ๊ทœ์น™์„ ๋‹ด์€ ํ…Œ์ด๋ธ”

  - ๋ชฉ์ ์ง€๋ฅผ ํ–ฅํ•œ ์ตœ์ ์˜ ๊ฒฝ๋กœ๋กœ ๋ฐ์ดํ„ฐ ํŒจํ‚ท์„ ์ „์†กํ•˜๊ธฐ ์œ„ํ•œ ๋ชจ๋“  ์ •๋ณด๋ฅผ ๋‹ด๊ณ  ์žˆ์Œ

  - ํ•˜๋‚˜์˜ ์ง€์ ์—์„œ ๋˜ ๋‹ค๋ฅธ ์ง€์ ์œผ๋กœ ๊ฐ€๊ธฐ ์œ„ํ•œ ๋ชจ๋“  ์ •๋ณด๋ฅผ ์ œ๊ณตํ•˜๋Š” ํ…Œ์ด๋ธ”

  - ๋ชจ๋“  ์„œ๋ธŒ๋„ท์€ ๋ผ์šฐํŒ… ํ…Œ์ด๋ธ”์„ ์ง€๋‹˜

  - ๊ฐ๊ฐ์˜ ์„œ๋ธŒ๋„ท์€ ํ•ญ์ƒ ๋ผ์šฐํŒ… ํ…Œ์ด๋ธ”์„ ๊ฐ€์ง€๊ณ  ์žˆ์–ด์•ผ ํ•˜๋ฉฐ ํ•˜๋‚˜์˜ ๋ผ์šฐํŒ… ํ…Œ์ด๋ธ” ๊ทœ์น™์„ ์—ฌ๋Ÿฌ ๊ฐœ์˜ ์„œ๋ธŒ๋„ท ์—ฐ๊ฒฐ ๊ฐ€๋Šฅ