์ ํฌ๋ธ ๋๋ํ ๊ฐ๋ฐ์๋ ๊ฐ์ ๋ณต์ต ๋ฐ ์ ๋ฆฌ๋ฅผ ์ํ ๊ธ
- WAS, JVM ๊ทธ๋ฆฌ๊ณ RESTful API

๋๋์ ํฌ๋ธ
JVM์ ๊ดํ์ฌ
CPU์์ ๋ชจ๋ ์ฐ์ฐ์ ์ํ ํ ์ปค๋์ธต์์ CPU๊ฐ ์ฌ์ฉ์ ์ ํ๋ ์ผ์ด์
์ฝ๋๋ฅผ ์คํํด์ผํ๋๋ฐ,
์ปค๋ ์ธต์๋ ์ด์ ์ฒด์ ๊ฐ ์๊ณ , ์ด์ ์ฒด์ ๋ฅผ ํตํด์๋ง CPU ์ ๊ทผ์ด ๊ฐ๋ฅํ๋ค.
๋ฐ๋ผ์ ํด๋น ๊ณ์ธต ๊ตฌ์กฐ์ ๋ฐ๋ฅด๋ฉด,
์ฝ๋ ์คํ์ ์ด์ ์ฒด์ ์ ์ํฅ์ ๋ฐ์ ์ ๋ฐ๊ฒ ์๊ฒ ์๋ ์ํฉ์ด ๋ฐ์ํ๊ฒ ๋๋ค.
ํ์ง๋ง, ์ด์ ์ฒด์ ๋ง๋ค ๋ค ๋ฐ๋ก ๋ด๋ถ๋ก์ง์ ๊ฐ๋ฐํ๋ ๊ฒ์ ๋๋ฌด๋๋ ํผ๊ณคํ ์ผ..
๊ทธ๋์ JAVA๋ CPU๋ฅผ USER ๋ชจ๋ ๋จ์ผ๋ก ์ฎ๊ฒจ, ์ด์์ฒด์ ์ ์ํฅ๋ ฅ์์ ๋ฒ์ด๋๊ณ ์ ํ๋ค.
๊ทธ๋์ ์๊ฒจ๋ ๊ฒ์ด ๋ฐ๋ก JVM
JVM : Java Virtual Machine USER ์ธต์์ CPU๋ฅผ ๊ฐ์์ผ๋ก ๋ง๋ ๊ฒ
Java Byte Code์ JVM (Java Virtual Machine)
Java๋ก ์์ฑ๋ ์ฝ๋๋ ์ปดํ์ผ๋ฌ์ ์ํด ๋ฐ์ดํธ ์ฝ๋(๊ธฐ๊ณ์ด) ๋ก ๋ณํ๋๊ณ ๋ฐ์ดํธ ์ฝ๋๋ JVM์์ ์คํ๋๋ค.
JVM์ ์ด์์ฒด์ ์ ํ๋์จ์ด์ ์ข
์๋์ง ์๊ณ ๋ฐ์ดํธ ์ฝ๋๋ฅผ ์คํํ ์ ์๋ค.
Framework
๋ฐฑ์ค๋ ๊ฐ๋ฐ์๋ S/W ๋ถ๋ถ์์ NODE.JS ๋ฑ์ ์ด์ฉํด์ ๊ฐ๋ฐ์ ํ๋๋ฐ, ๊ทธ๊ฒ ๊ฐ๋ฐ์๋ง๋ค ์ทจํฅ๊ฒ ๊ฐ๋ฐํ๊ฒ ํ๊ธฐ ๋ณด๋ค๋
๊ทธ๋๋ ์ด๋์ ๋ ํ์ ์ก์์ ๊ฐ๋ฐํ ์ ์๊ณ , ๊ฐ๋ฐ์ ์์ด์ ํธ๋ฆฌ์ฑ์ ์ฃผ๊ธฐ ์ํด
ํ์ ์ฌ์ฉํ๋๋ฐ, ๊ทธ๊ฒ ๋ฐ๋ก Framework (Spring Boot)์ด๋ค.
Framework (Spring Boot)
- ํ๋ ์์ํฌ๋ ์ ํ๋ฆฌ์ผ์ด์
๊ฐ๋ฐ์ ๊ฐํธํ๊ฒ ํด์ฃผ๋ ๋๊ตฌ ๋ชจ์ / Spring Boot๋ Java ๊ธฐ๋ฐ์ ํ๋ ์์ํฌ๋ก, ๋น ๋ฅด๊ณ ์ฝ๊ฒ ์คํ๋ง ์ ํ๋ฆฌ์ผ์ด์
์ ๊ตฌ์ฑํ๊ณ ๋ฐฐํฌํ ์ ์๊ฒ ๋์์ค
- ํ๋ ์์ํฌ๋ ์๋ฒ ์ฌ์ด๋ ์ ํ๋ฆฌ์ผ์ด์
์ ๊ตฌ์กฐ๋ฅผ ์ก์์ฃผ๊ณ , ๊ณตํต์ ์ธ ๊ธฐ๋ฅ๋ค์ ์ ๊ณต
๋ฏธ๋ค์จ์ด (Middleware)
- ๋ฏธ๋ค์จ์ด๋ WAS๊ฐ ๋ค์ํ ์๋ฒ ์ฌ์ด๋ ์ธ์ด๋ฅผ ์คํํ๊ณ , ํด๋ผ์ด์ธํธ ์์ฒญ์ ์ฒ๋ฆฌํ๋ฉฐ, ๋ฐ์ดํฐ๋ฒ ์ด์ค์ ์ํธ์์ฉํ๋ ๊ณผ์ ์์ ์ค์ํ ์ญํ ์ ํจ
- ๋ฏธ๋ค์จ์ด๋ ํด๋ผ์ด์ธํธ์ ์๋ฒ ์ฌ์ด์ ํต์ ์ ๊ด๋ฆฌํ๊ณ , ๋ก๋ ๋ฐธ๋ฐ์ฑ, ์ธ์
๊ด๋ฆฌ, ๋ณด์ ๋ฑ์ ๊ธฐ๋ฅ์ ์ ๊ณต
๋ฏธ๋ค์จ์ด์ ์ญํ ๊ณผ ๊ธฐ๋ฅ
-
ํต์ ๊ด๋ฆฌ
- ๋ฏธ๋ค์จ์ด๋ ํด๋ผ์ด์ธํธ์ ์๋ฒ ๊ฐ์ ๋ฐ์ดํฐ ํต์ ์ ๊ด๋ฆฌํฉ๋๋ค. ์์ฒญ๊ณผ ์๋ต์ ์ ์ ํ ๋ผ์ฐํ
ํ๊ณ , ๋ฐ์ดํฐ ํ์์ ๋ณํํ์ฌ ์์ชฝ์ด ์ํํ๊ฒ ์ํธ์์ฉ ๋์
- ์: HTTP ์์ฒญ/์๋ต, SOAP, RESTful API
-
๋ฐ์ดํฐ ๊ด๋ฆฌ
- ๋ฐ์ดํฐ๋ฒ ์ด์ค์์ ์ฐ๊ฒฐ์ ๊ด๋ฆฌํ๊ณ , ๋ฐ์ดํฐ ์ก์ธ์ค ๋ก์ง์ ์ฒ๋ฆฌํฉ๋๋ค. ์ด๋ ๋ฐ์ดํฐ๋ฒ ์ด์ค ์ฐ๊ฒฐ ํ๋ง, ํธ๋์ญ์
๊ด๋ฆฌ ๋ฑ์ ํฌํจ
- ์: JDBC, Hibernate
-
์ ํ๋ฆฌ์ผ์ด์
์๋ฒ ๊ธฐ๋ฅ
- WAS(Web Application Server)์ฒ๋ผ ๋์ํ์ฌ ์น ์ ํ๋ฆฌ์ผ์ด์
์ ์คํํ๊ณ , ์ฌ๋ฌ ์ฌ์ฉ์ ์์ฒญ์ ๋์์ ์ฒ๋ฆฌํ ์ ์์
- ์: Tomcat, JBoss, WebSphere
-
์๋น์ค ํตํฉ
- ์๋ก ๋ค๋ฅธ ์ ํ๋ฆฌ์ผ์ด์
๊ฐ์ ์ํธ์์ฉ์ ๊ฐ๋ฅํ๊ฒ ํฉ๋๋ค. ์ด๋ ๋ฉ์์ง ํ, ์๋น์ค ๋ฒ์ค ๋ฑ์ ํตํด ์ด๋ฃจ์ด์ง
- ์: RabbitMQ, Apache Kafka
-
๋ณด์ ๊ด๋ฆฌ
- ์ธ์ฆ(Authentication)๊ณผ ์ธ๊ฐ(Authorization)๋ฅผ ๊ด๋ฆฌํ์ฌ, ์ฌ์ฉ์์ ์์คํ
์ ์์ ํ ์ ๊ทผ์ ๋ณด์ฅ
- ์: OAuth, JWT, SSL/TLS
-
๋ก๋ ๋ฐธ๋ฐ์ฑ
- ๋ค์ด์ค๋ ํธ๋ํฝ์ ์ฌ๋ฌ ์๋ฒ์ ๋ถ์ฐ์์ผ ์์คํ
์ ๋ถํ๋ฅผ ๊ท ํ ์๊ฒ ์ ์งํ๊ณ , ์ฑ๋ฅ์ ํฅ์
- ์: Nginx, HAProxy
-
์ธ์
๊ด๋ฆฌ
- ์ฌ์ฉ์์ ์ธ์
์ ๊ด๋ฆฌํ์ฌ, ์ง์์ ์ธ ์ฌ์ฉ์ ์ํ๋ฅผ ์ ์ง
- ์: Redis, Memcached
-
๋ชจ๋ํฐ๋ง ๋ฐ ๋ก๊น
- ์์คํ
์ ์ํ๋ฅผ ๋ชจ๋ํฐ๋งํ๊ณ , ๋ก๊ทธ๋ฅผ ๊ธฐ๋กํ์ฌ ๋ฌธ์ ๋ฅผ ๋ถ์ํ๊ณ ํด๊ฒฐํ ์ ์๊ฒ ํจ
- ์: ELK Stack (Elasticsearch, Logstash, Kibana), Prometheus, Grafana
๋ฏธ๋ค์จ์ด์ ์์
-
์ ํ๋ฆฌ์ผ์ด์
์๋ฒ
- Apache Tomcat: Java ์๋ธ๋ฆฟ๊ณผ JSP ์คํ์ ์ํ ์น ์๋ฒ
- JBoss EAP: Java EE ์ ํ๋ฆฌ์ผ์ด์
์ ์ํ ์๋ฒ
-
๋ฉ์์ง ๋ธ๋ก์ปค
- RabbitMQ: AMQP ๊ธฐ๋ฐ์ ๋ฉ์์ง ๋ธ๋ก์ปค
- Apache Kafka: ๋ถ์ฐ ์คํธ๋ฆฌ๋ฐ ํ๋ซํผ
-
API ๊ฒ์ดํธ์จ์ด
- Kong: ํด๋ผ์ฐ๋ ๋ค์ดํฐ๋ธ API ๊ฒ์ดํธ์จ์ด
- API Gateway (AWS): AWS์ ๊ด๋ฆฌํ API ๊ฒ์ดํธ์จ์ด
-
๋ฐ์ดํฐ ํตํฉ ํ๋ซํผ
- Apache Camel: ๋ค์ํ ํ๋กํ ์ฝ๊ณผ ๊ธฐ์ ๊ฐ์ ๋ผ์ฐํ
๊ณผ ์ค์ฌ๋ฅผ ์ ๊ณตํ๋ ํตํฉ ํ๋ ์์ํฌ
- MuleSoft: API์ ์ ํ๋ฆฌ์ผ์ด์
ํตํฉ์ ์ํ ํ๋ซํผ
์ถ๊ฐ
Node.js, JSP, PHP, ASP
- ์ด๋ค์ ์๋ฒ ์ฌ์ด๋ ์ธ์ด ๋๋ ํ๋ซํผ
๊ฐ๊ฐ JavaScript(Node.js), Java(JSP), PHP, Microsoft์ ๊ธฐ์ (ASP)์ ์ฌ์ฉํ์ฌ ์๋ฒ์์ ๋์ํ๋ ์ฝ๋๋ฅผ ์์ฑ
- Node.js๋ JavaScript ๋ฐํ์์ผ๋ก, ์๋ฒ ์ฌ์ด๋์์ ๋น๋๊ธฐ ์ด๋ฒคํธ ๊ธฐ๋ฐ์ ํ๋ก๊ทธ๋๋ฐ์ด ๊ฐ๋ฅ
- JSP๋ Java ๊ธฐ๋ฐ์ ์๋ฒ ์ฌ์ด๋ ์คํฌ๋ฆฝํ
๊ธฐ์ ๋ก, ๋์ ์ผ๋ก ์น ํ์ด์ง๋ฅผ ์์ฑ
- PHP๋ ์๋ฒ ์ฌ์ด๋ ์คํฌ๋ฆฝํ
์ธ์ด๋ก, ์ฃผ๋ก ์น ๊ฐ๋ฐ์ ์ฌ์ฉ
- ASP๋ Microsoft์ ์๋ฒ ์ฌ์ด๋ ๊ธฐ์