์ ์ฒด ๊ธ
-
[NGINX] Nginx์ ๋ํด์Backend 2023. 12. 28. 14:46
Nginx๋ ๋์ ์ฑ๋ฅ๊ณผ ์์ ์ฑ, ๊ทธ๋ฆฌ๊ณ ํ์ฌ ๊ฐ์ฅ ๋ง์ด ์ฌ์ฉ๋๊ณ ์๋ ์น ์๋ฒ์ด๋ค. Apache๊ฐ์ ์น ์๋ฒ์ ๋น๊ตํ๋ฉด ๋ ๋น ๋ฅด๊ณ ๊ฐ๋ณ, ๋๊ท๋ชจ ์ดํ๋ฆฌ์ผ์ด์ ์ ์ ํฉํ๋ค๋ ์ฅ์ ์ด ์๋ค. ์น์๋ฒ์ ๋ํด ์์๋ณด๊ณ , Apache์ ๋น๊ตํ๋ฉฐ Nginx์ ๋ํด ์์๋ณด์! ์น ์๋ฒ๋? ์น ์๋น์ค์ ๊ตฌ์ฑ์์๋ก๋ ํด๋ผ์ด์ธํธ, ์น์๋ฒ, WAS, DB๋ฅผ ๋ค ์ ์๋ค. ํด๋ผ์ด์ธํธ ์๋น์ค๋ฅผ ์ด์ฉํ๊ธฐ ์ํด ๋คํธ์ํฌ๋ฅผ ํตํด ์์ฒญ์ ๋ณด๋ด๋ ์ฃผ์ฒด ์น ๊ฐ๋ฐ ์์ญ์์ ํด๋ผ์ด์ธํธ๋ ๋ณดํต ์น ๋ธ๋ผ์ฐ์ ์น ์๋ฒ ํด๋ผ์ด์ธํธ ์์ฒญ์ ๋ฐ๋ผ ์ ์ ํ์ผ(HTML, CSS, JS, ์ด๋ฏธ์ง ๋ฑ)์ ์๋ตํ์ฌ ์ ๊ณตํ๋ ์ํํธ์จ์ด HTTP ํ๋กํ ์ฝ์ ์ฌ์ฉํ์ฌ ํด๋ผ์ด์ธํธ์ ํต์ Nginx, Apache, Node.js ๋ฑ WAS(Web Application S..
-
[Java] Record Class๋?Programming Language/Java 2023. 12. 20. 03:21
Record๋ ๋ฐ์ดํฐ ํด๋์ค๋ก Java 14์ ์ถ๊ฐ๋์ด Java 16์ ์ ์์ผ๋ก ํฌํจ๋์๋ค. Record ํด๋์ค๋ฅผ ์ฌ์ฉํ๊ธฐ ์ด์ ์๋ ๋ณ๊ฒฝ ๋ถ๊ฐ๋ฅํ ๋จ์ ๋ฐ์ดํฐ ํด๋์ค๋ฅผ ํํํ๊ณ ์ ํ ๋ ๋ถํธํจ์ด ์์๋ค. ๋ถ๋ณ ๋ฐ์ดํฐ ๊ฐ์ฒด User๊ฐ ์๋ค๊ณ ํด๋ณด์. public class User{ private final String name; private final String gender; public Person(String name, String gender) { this.name = name; this.gender= gender; } @Override public int hashCode() { return Objects.hash(name, gender); } @Override public boolean equ..
-
[Kafka] ์ํ์น ์นดํ์นด(Apache Kafka)์ ๋ํด์Computer Science/Database 2023. 12. 20. 01:49
์ดํ๋ฆฌ์ผ์ด์ ์ ์ฌ์ฉ์๊ฐ ๋ง์์ง๋ฉฐ ํธ๋ํฝ์ด ์ฆ๊ฐํ๊ณ , ์์ฒญ์ ๋ํ ์ถ๊ฐ์์ ์ด ๋ง์์ง ๋ ๋น ๋ฅธ ์๋ต๊ณผ ์ฑ๋ฅ์ ์ํด ๋ฉ์์ง ํ๋ฅผ ์ฌ์ฉํ ์ ์๋ค. ๋ฉ์์งํ๋ Producer์ Consumer ์ฌ์ด์์ ๋ฉ์์ง๋ฅผ ์ ์ฅํ๊ณ ์ ๋ฌํ๋ ์ค๊ฐ ์ฅ์น๋ก์, ๋น๋๊ธฐ์ ์ผ๋ก ์๋ํ๋ฉฐ ํ์ ๋ด๊ธด ๋ฉ์์ง๋ฅผ ์ฒ๋ฆฌํ๋ค. ๋ฉ์์งํ๋ฅผ ํฌํจํ๋ ๋ฉ์์ง ๋ธ๋ก์ปค๋ก๋ RabbitMQ, Redis, ActiveMQ, Kafka ๋ฑ์ด ์๋ค. ๊ทธ ์ค Kafka์ ๋ํด ์์๋ณด์! (๋ฉ์์ง ํ๋ฅผ ๋ชจ๋ฅธ๋ค๋ฉด ์ฌ๊ธฐ๋ก) Kafka๋ ์ ์๊ฒผ์๊น? Kafka(์นดํ์นด)๋ ๋ฏธ๊ตญ์ ๋ํ์ ์ธ ๋น์ฆ๋์ค ์ธ๋งฅ ์์ ๋คํธ์ํฌ ์๋น์ค์ธ ๋งํฌ๋์ธ(LinkedIn)์์ ์ฒ์ ์ถ๋ฐํ ๊ธฐ์ ์ด๋ค. ๋งํฌ๋์ธ ์ฌ์ดํธ๊ฐ ์ฑ์ฅํ๋ฉด์ ๋ฐ์ํ๋ ์ฌ๋ฌ ์ด์๋ค์ ํด๊ฒฐํ๊ธฐ ์ํด ๊ฐ๋ฐ๋์๋ค. ๊ธฐ์กด์ ๋งํฌ..
-
[๋ฉ์์ง ํ] ๋ฉ์์ง ํ์ ๋ํด์ (๋ฉ์์ง ํ, MOM, ํน์ง, ์ด์ ๋ฑ)Computer Science/Database 2023. 12. 10. 21:18
MOM (Message Oriented Middleware) MOM์ ๋ฉ์์ง ์งํฅ ๋ฏธ๋ค ์จ์ด๋ก์ ์ดํ๋ฆฌ์ผ์ด์ ์ ๋ฉ์์ง๋ฅผ ์ค๊ฐ์์ ๊ด๋ฆฌํด์ฃผ๋ ์์คํ ์ด๋ค. ์ฌ๊ธฐ์ ๋ฏธ๋ค์จ์ด๋ ๋ฌด์์ผ๊น? ๊ฐ๋ ์ ์ผ๋ก ๋ฏธ๋ค์จ์ด๋ ์์ฉํ๋ก๊ทธ๋จ๊ณผ ์ด์์ฒด์ ์ฌ์ด์์ ๋ ์์๊ฐ ์ฐจ์ด์ ์๊ด์์ด ํต์ ์ ๊ฐ๋ฅํ๊ฒ ํด์ฃผ๋ ๊ณ์ธต์ ๋งํ๋ค. ๋ถ์ฐ ์ปดํจํ ํ๊ฒฝ์์ ๋ฏธ๋ค์จ์ด๋ ๋ถ์ฐ ๋คํธ์ํฌ์์ ์ ํ๋ฆฌ์ผ์ด์ ๋๋ ์ ํ๋ฆฌ์ผ์ด์ ๊ตฌ์ฑ์์ ๊ฐ์ ํต์ ์ ๊ฐ๋ฅํ๊ฒ ํ๋ ์ํํธ์จ์ด๋ผ๊ณ ํ๋ค. ๋ฏธ๋ค์จ์ด๋ ๋ค์๊ณผ ๊ฐ์ ๋ฒ์ฃผ๋ก ๋๋ ์ ์๋ค. RPC(Remote Procedure Call) ๊ธฐ๋ฐ ๋ฏธ๋ค์จ์ด ORB(Object Request Broker) ๊ธฐ๋ฐ ๋ฏธ๋ค์จ์ด MOM(Message Oriented Middleware) ๊ธฐ๋ฐ ๋ฏธ๋ค์จ์ด ์ด ์ค MOM์ ๋ถ์ฐ ์์ฉ ํ..
-
[Redis] Redis์ ๋ํด์ (Redis๋, ํน์ง, ์์์ฑ, ์๋ฃ๊ตฌ์กฐ, ์ํคํ ์ฒ)Computer Science/Database 2023. 12. 10. 20:15
๋ฐ์ดํฐ์ ํธ๋ํฝ์ ์์ด ๊ธฐํ๊ธ์์ ์ผ๋ก ์ฆ๊ฐํ๋ฉด์ ํ๋์ ๊ด๊ณํ ๋ฐ์ดํฐ๋ฒ ์ด์ค๋ฅผ ์ฌ์ฉํ๋ ๊ฒ์ ํฐ ๋น์ฉ์ด ๋ ๋ค. ์ด๋ฐ ์ํฉ์์ NoSQL์ ์ฌ๋ฌ ๋์ ์ปดํจํฐ์ ๋ฐ์ดํฐ๋ฅผ ๋ถ์ฐํ์ฌ ์ ์ฅํ๋ ๊ฒ์ ๋ชฉํ๋ก ๋ฑ์ฅํ๋ค. NoSQL ๋ฐ์ดํฐ๋ฒ ์ด์ค ์ค ํ๋์ธ Redis๋ key-value ํํ๋ก ์ ์ฅํ๋ ์ธ๋ฉ๋ชจ๋ฆฌ ๋ฐ์ดํฐ ๋ฒ ์ด์ค๋ก์ ๋ฐ์ดํฐ๋ฒ ์ด์ค ๋ฟ๋ง ์๋๋ผ ์บ์, ๋ฉ์์ง ๋ธ๋ก์ปค ๋ฐ ์คํธ๋ฆฌ๋ฐ ์์ง ๋ฑ ๋ค์ํ ์ฉ๋๋ก ์ฌ์ฉ๋๋ ์คํ์์ค์ด๋ค. Redis์ ๋ํด์ ์์ธํ ์์๋ณด์! ๐ Redis๋? Redis๋ Remote Dictionary Server์ ์ฝ์๋ก ์ธ๋ถ ๋์ ๋๋ฆฌ(key-value) ํํ์ ์๋ฒ์ด๋ค. NoSQL ๋ฐ์ดํฐ๋ฒ ์ด์ค ์ค ํ๋๋ก ๊ณ ๊ธ ํค-๊ฐ ์ ์ฅ์์ด๋ค. In-Memory ๋ฐ์ดํฐ ๋ฒ ์ด์ค๋ก์ memcached์ ์ ์ฌํ..