์ ์ฒด ๊ธ251 ์ฝํ๋ฆฐ ์ ๊ทผ์ ์ด์์ ์๋ฐ ์ ๊ทผ ์ ์ด์ ์ฐจ์ด ์ฝํ๋ฆฐ๊ณผ ์๋ฐ์ ์ ๊ทผ ์ ์ด์๋ ๊ธฐ๋ณธ์ ์ผ๋ก ๋น์ทํ ๊ฐ๋ ์ ๊ณต์ ํ์ง๋ง, ์ธ๋ถ์ ์ผ๋ก๋ ์ฐจ์ด์ ์ด ์๋ค.Kotlin ๊ณผ Java ์ ๊ทผ ์ ์ด์๊ฐ ๋น์ฐํ ๊ฐ๋ค๊ณ ์๊ฐํ์ผ๋ฉด ์ด ๊ธ์ ๋ณด๊ณ ์ฐจ์ด์ ์ ์์๋ณด์ ์ ๊ทผ ์ ์ด์์ฝํ๋ฆฐ์๋ฐpublic ๊ธฐ๋ณธ ์ ๊ทผ ์ ์ด์ (๋ช ์ํ์ง ์์ผ๋ฉด public) ๋ชจ๋ ๊ณณ์์ ์ ๊ทผ ๊ฐ๋ฅ ๋ชจ๋ ๊ณณ์์ ์ ๊ทผ ๊ฐ๋ฅ internal ๊ฐ์ ๋ชจ๋ ๋ด์์๋ง ์ ๊ทผ ๊ฐ๋ฅ (internal์ ์ฝํ๋ฆฐ ๊ณ ์ ) ์์protected ์ ์ธ๋ ํด๋์ค ๋ฐ ํ์ ํด๋์ค์์ ์ ๊ทผ ๊ฐ๋ฅ ๋์ผํ ํจํค์ง ์์์ ์ ๊ทผ์ด ๊ฐ๋ฅ (ํ์ ํด๋์ค๋ฉด ๋ค๋ฅธ ํจํค์ง์์๋ ์ ๊ทผ ๊ฐ๋ฅ)default์์ ๊ธฐ๋ณธ ์ ๊ทผ ์ ์ด์ (๋ช ์ํ์ง ์์ผ๋ฉด default ) ๋์ผํ ํจํค์ง ์์์๋ง ์ ๊ทผ์ด ๊ฐ๋ฅ private ์ ์ธ๋ ํด๋์ค ๋ด๋ถ์์๋ง ์ ๊ทผ ๊ฐ๋ฅ .. Kotlin Programming 2024. 11. 27. ๋์์ฑ ๋ฌธ์ ๋ฅผ ํด๊ฒฐํ๋ ์ฌ๋ฌ๊ฐ์ง ๋ฐฉ๋ฒ ์ํํธ์จ์ด ๊ฐ๋ฐ์์ ๋์์ฑ ๋ฌธ์ ๋ ๋ฐ์ดํฐ ์ผ๊ด์ฑ๊ณผ ์์คํ ์์ ์ฑ์ ์ํด ๋ฐ๋์ ๊ณ ๋ คํด์ผ ํ๋ ์์๋ค. ํนํ, ๋ฐ์ดํฐ๋ฒ ์ด์ค๋ฅผ ๋ค๋ฃจ๋ ์ ํ๋ฆฌ์ผ์ด์ ์์๋ ์ฌ๋ฌ ์ฌ์ฉ์์ ์์ฒญ์ ๋์์ ์ฒ๋ฆฌํ๋ฉด์๋ ๋ฐ์ดํฐ์ ์ ํ์ฑ์ ์ ์งํ๋ ๊ฒ์ด ํต์ฌ์ด๋ค. ์ ์ฐฉ์ ์ด๋ฒคํธ๋ ์ฌ๊ณ ์ฒ๋ฆฌ๋ ๋์์ฑ(Concurrency) ๋ฌธ์ ๊ฐ ๋ฐ์ํ๊ธฐ ์ฌ์ด ์์ญ์ผ๋ก, ๋ค์์ ์์ฒญ์ด ๋์์ ์ฒ๋ฆฌ๋ ๋ ์ ํ์ฑ๊ณผ ์ผ๊ด์ฑ์ ์ ์งํด์ผ ํ๋ค. ์ด๋ฅผ ํด๊ฒฐํ๊ธฐ ์ํด ๋ค์ํ ๋์์ฑ ์ ์ด ๋ฐฉ๋ฒ์ ์ฌ์ฉํ ์ ์์ผ๋ฉฐ, ์์คํ ์ ์๊ตฌ ์ฌํญ๊ณผ ํธ๋ํฝ์ ๋ฐ๋ผ ์ ํฉํ ๋ฐฉ๋ฒ์ ์ ํํด์ผ ํ๋ค. 1. ๋ฐ์ดํฐ๋ฒ ์ด์ค ๋ ๋ฒจ์์ ๋์์ฑ ์ ์ด ํธ๋์ญ์ & ๋ฝ๋ฐ์ดํฐ๋ฒ ์ด์ค ํธ๋์ญ์ ์ ์ฌ์ฉํ์ฌ SELECT ... FOR UPDATE๋ก ์ฌ๊ณ ๋ฅผ ์กฐํํ๊ณ ์ ๋ฐ์ดํธ ์ ๋ฝ์ ๊ฑธ์ด ๋์์ฑ์ ์ ์ด. .. System Design 2024. 11. 25. Kafka ์ RabbitMQ ์ ์ฐจ์ด์ Kafka ์ RabbitMQ ๋ ์คํธ๋ฆผ ์ฒ๋ฆฌ์ ์ฌ์ฉํ ์ ์๋ ๋ฉ์์ง ํ ์์คํ ์ด๋ค. ๋ฐ์ดํฐ ์คํธ๋ฆผ์ ๊ณ ์ ์ฒ๋ฆฌ๊ฐ ํ์ํ ๋์ฉ๋์ ์ฐ์๋ ๋ฐ์ดํฐ๋ค์ด๋ค. RabbitMQ ๋ ์ฌ๋ฌ ์์ค์์ ์คํธ๋ฆฌ๋ฐ ๋ฐ์ดํฐ๋ฅผ ์์งํ๊ณ ์ฒ๋ฆฌ๋ฅผ ์ํด ๋ค๋ฅธ ๋์์ผ๋ก ๋ผ์ฐํ ํ๋ ๋ถ์ฐ ๋ฉ์์ง ๋ธ๋ก์ปค์ด๋ค. Apache Kafka๋ ์ค์๊ฐ ๋ฐ์ดํฐ ํ์ดํ๋ผ์ธ ๋ฐ ์คํธ๋ฆฌ๋ฐ ์ ํ๋ฆฌ์ผ์ด์ ์ ๊ตฌ์ถํ๋ ๋ฐ ์ฌ์ฉ๋๋ ์คํธ๋ฆฌ๋ฐ ํ๋ซํผ์ด๋ค. Kafka๋ ๋ฐ์ด๋ ํ์ฅ์ฑ๊ณผ ๋ด๊ฒฐํจ์ฑ, ๋ด๊ตฌ์ฑ์ด ๋ฐ์ด๋ ๋ฉ์์ง ์์คํ ์ ์ ๊ณตํ๋ค.์นดํ์นด์ ๋๋น์ ํ ๊ฐ์ ๋ฉ์์ง ํ ์์คํ ๋๋ถ์ MSA ํ๊ฒฝ์ด๋ ๋ถ์ฐ ์์คํ ์์ ๋ฎ์ ๊ฒฐํฉ๋๋ฅผ ์ ์งํ๋ ๋ฐ ์ค์ํ ์ญํ ์ ํ๋ค. ์ผ๋ฐ์ ์ผ๋ก API ํต์ ์ ํ๊ฒ ๋๋ฉด ํธ์ถ๋ ์๋น์ค๊ฐ ํธ์ถํ ์๋น์ค์ ์ํฅ์ ์ฃผ๊ฒ ๋๋๋ฐ, ๋น๋๊ธฐ ๋ฉ์์ง ํจ.. Message Queue 2024. 11. 20. MSA ํ๊ฒฝ์์ ๋ชจ๋ํฐ๋ง ๋ชจ๋๋ฆฌ์ ์ํคํ ์ฒ์์ MSA ๋ก ๋ณํ๋๋ฉด์ ๋ฌ๋ผ์ง ๊ฒ๋ค์ด ๋ง์ ๋ฐ ๊ทธ ์ค ํ๋๊ฐ ํต์ ๋ฐฉ๋ฒ์ด๋ค. ๋ชจ๋๋ฆฌ์์์ ๊ทธ์ ํจ์ ํธ์ถ์ ํ๋ฉด ๋ฐ์ดํฐ๋ฅผ ์ฃผ๊ณ ๋ฐ์ ์ ์์ง๋ง, MSA ์์ ์๋น์ค๊ฐ ๋ถ๋ฆฌ ๋์๊ธฐ ๋๋ฌธ์ ์๋น์ค ์ฆ ํ๋ก์ธ์ค ๊ฐ ํต์ ์ ํ๊ฒ ๋๋ค. ๋ชจ๋๋ฆฌ์์์ ์๋ฒ์ DB์ ์ํ๋ง ํ์ธํ๋ฉด ๋๋๋ฐ ์๋น์ค๊ฐ ๋ถ๋ฆฌ ๋๋ฉด์ IPC ํต์ ์ ๋ํ ์ง์ฐ์จ์ด๋ Call ์ฆ๊ฐ ํ์ธ, ๋ถ๋ฆฌ๋ ์๋น์ค์ ์ํ ํ์ธ, ๋ฏธ๋ค ์จ์ด ์ํ ๋ฑ ๋ง์ ๋ถ๋ถ ์ ๊ฒฝ ์จ์ผํ ๊ฒ ๋ง์์ก๋ค.Hop ์ด ๋์ด๋จ์ ๋ฐ๋ผ ์ด๋์ ์ด๋ค ์์ฒญ์ ๋ํ ๋ฌธ์ ๊ฐ ๋ฐ์ํ๋์ง ๋๋ฒ๊น ์ด ์ด๋ ค์์ก๊ณ , ๋ก๊ทธ ์์ง์ ์ํ ๋ณ๋์ ์ธํ๋ผ๊ฐ ํ์ํด์ง๊ฒ ๋๋ค.๋ ์ด๋ ์๋ฒ์์ ์ด๋ ์๋น์ค๋ก ํธ์ถ์ด ๋์ด์ผ ํ๋์ง ์๋น์ค๊ฐ ํธ์ถ ์ํ๊ฐ ์ ์ฐ์ธ์ง๋ ํ์ ํด์ผ ํ๋ค.MSA ํ๊ฒฝ์์ .. Observability 2024. 11. 14. ์ฟผ๋ฆฌ ํ๋ - ๋์ฉ๋ ๋ฐ์ดํฐ๋ฅผ ํฌํจํ๋ ํน์ ์ปฌ๋ผ ์ ์ธํ๊ณ ์กฐํ ๊ฐ์Spring Data JPA ๋ฅผ ์ฌ์ฉํด์ DB ๋ฅผ ์กฐํํ๋ฉด ์ง์ฐ ๋ก๋ฉ์ผ๋ก ์ค์ ๋์ด ์๋ ์ฐ๊ด ๊ด๊ณ ๋ฐ์ดํฐ๋ฅผ ์ ์ธํ๊ณ ์ฒ์๋ถํฐ ๋ชจ๋ ๋ฐ์ดํฐ ์ปฌ๋ผ ๊ฐ๋ค์ ๋ถ๋ฌ์จ๋ค. JPA ํน์ ์ ์ฒ์์ ๋ชจ๋ ๊ฐ๋ค์ ์ด๊ธฐํ ์ํค๊ณ ์ค๋ ์ต์ ๊ธฐ์ค์ผ๋ก ๋ํฐ ์ฒดํน์ ํด์ผํ๊ธฐ ๋๋ฌธ์ด๋ค. ํ์ง๋ง readOnly = true์ผ ๊ฒฝ์ฐ๋ ๋ํฐ์ฒดํน์ ํ ํ์๊ฐ ์๊ณ ์ํ๋ ๊ฐ๋ง ์ป์ผ๋ฉด ๋๊ธฐ ๋๋ฌธ์ ๋ชจ๋ ๊ฐ์ ์ด๊ธฐํํด์ ์ป์ ํ์๋ ์๋ค.์๋ฅผ ๋ค์ด DocumentDB ์ ๊ฐ์ NoSQL์ ์ฌ์ฉํ์ง ์๊ณ , RDB๋ก ์ํฐํด ์ ๋ณด๋ฅผ ์ ์ฅํ๋ค๊ณ ์น์. @Entitypublic class Article { @Id @GeneratedValue private Long id; private String title; @Col.. Database 2024. 11. 13. ์ด๋ฒคํธ ๋๋ฆฌ๋ธ ์ํคํ ์ฒ(EDA) ์ด๋ฒคํธ ๋๋ฆฌ๋ธ ์ํคํ ์ฒ ๋๋ ์ด๋ฒคํธ ์ฃผ๋ ์ํคํ ์ฒ๋ ์ด๋ฒคํธ๋ฅผ ์์ฑ, ์ ๋ฌ, ์ฒ๋ฆฌ, ์๋นํ๋ ๋ฐฉ์์ผ๋ก ์์คํ ์ ๊ตฌ์ฑ ์์๊ฐ ํต์ ์ด ์ด๋ฃจ์ด์ง๋ ํ๋์ ์ธ ์ํคํ ์ฒ ์คํ์ผ์ด๋ค. ์ค๋๋ ๋๊ท๋ชจ ํธ๋ํฝ์ด๋ ๋๊ท๋ชจ ๋ฐ์ดํฐ๋ฅผ ์ฒ๋ฆฌํ ๋ ๋ง์ด ์ฐ์ธ๋ค. MSA, ์ค์๊ฐ ๋ฐ์ดํฐ ์ฒ๋ฆฌ, ์ด๋ฒคํธ ์์ฑ๊ณผ ๊ฐ์ ๋ค์ํ ์๋๋ฆฌ์ค์์ ํ์ฉ๋๋ค. ๊ทธ ์ด์ ๋ ์ด๋ฒคํธ ๋ธ๋ก์ปค๋ฅผ ํ์ฉํด ๋น๋๊ธฐ์ ์ผ๋ก ์ด๋ฒคํธ๋ฅผ ์ฒ๋ฆฌํ ์ ์๊ณ , ํ๋ก์ธ์ค ๊ฐ ๋์จํ ๊ฒฐํฉ์ ๊ฐ๋ฅํ๊ฒ ํ๋ฉฐ, ๋์ ๊ฐ์ฉ์ฑ์ ๊ฐ๊ธฐ ๋๋ฌธ์ด๋ค. ์์คํ ๋ด์์ ํน์ ์์ ์ด๋ ์ํ ๋ณํ๊ฐ ๋ฐ์ํ ๋ ์ด๋ฅผ ์ด๋ฒคํธ๋ก ํํํ๊ณ ํด๋น ์ด๋ฒคํธ๋ฅผ ๊ธฐ๋ฐ์ผ๋ก ๋น๋๊ธฐ์ ์ผ๋ก ํ์ ์์ ์ด ์งํ๋๋ค. ์ด๋ฒคํธ์์คํ ๋ด์์ ๋ฐ์ํ๋ ์ํ ๋ณํ๋ ํ๋์ ๋ํ๋ธ๋ค.์์: ์ฃผ๋ฌธ ์์ฑ, ๊ฒฐ์ ์๋ฃ, ์ฌ์ฉ์ ๊ฐ์ ๋ฑ ์ด๋ฒคํธ .. Architecture 2024. 11. 4. IPC ํจํด (Sync ํต์ vs Async ํต์ ) MSA ์์ ์๋น์ค๊ฐ ํต์ ์ ํ๊ฒ ๋๋ฉด ๋คํธ์ํฌ ํต์ ์ ํ๊ฒ ๋๋ค. ์ฆ ํ๋ก์ธ์ค๊ฐ ํต์ ์ ํ๊ฒ ๋๋๋ฐ ์ด๋ฅผ IPC( Inter-Process Communication ) ๋ผ๊ณ ํ๋ค. IPC๋ ๋จ์ผ ์์คํ ๋ด์ ํ๋ก์ธ์ค ๊ฐ์ด๋ , ๋ถ์ฐ ์์คํ ์ ์๋ก ๋ค๋ฅธ ๋ ธ๋ ๊ฐ์ด๋ , ๋๊ธฐ(Synchronous)์ ๋น๋๊ธฐ(Asynchronous) ํต์ ํจํด์ ์ง์ํ๋ค. ์์คํ ์ค๊ณ์ ๊ธฐ๋ฅ์ ์๊ตฌ์ฌํญ์ ๋ง๊ฒ ๊ฐ๊ฐ์ ํจํด์ ๊ณ ๋ คํด์ ์ฌ์ฉํด์ผ ํ๋ค. ์ฌ์ฉ์๊ฐ ๊ธฐ๋ฅ์ ๊ฒฐ๊ณผ๋ฅผ ์ฆ๊ฐ์ ์ผ๋ก ๋ฐ์๋ด์ผํ๋ ๊ฒฝ์ฐ๋ ๋๊ธฐํจํด์ ์ฌ์ฉํ๊ณ ์ฆ๊ฐ์ ์ด์ง ์๊ณ ์คํ ํ ๋ค ๋์ค์ ์๋ฃ ์๋ฆผ์ ๋ฐ๋ ๊ฒฝ์ฐ๋ผ๋ฉด ๋น๋๊ธฐ ํต์ ์ ๊ณ ๋ คํ ์ ์์ ๊ฒ์ด๋ค.๋๊ธฐ ๋ฐฉ์์ ๊ธฐ๋ณธ์ผ๋ก ์ฌ์ฉํ์ง๋ง, ํน์ ์์ (์: ๋๊ท๋ชจ ๋ฐ์ดํฐ ์ฒ๋ฆฌ, ์ฅ์๊ฐ ์์ )์ ๋น๋๊ธฐ ์์ ์ผ๋ก ์ฒ๋ฆฌํ .. Computer Science/Network 2024. 10. 26. ๊ฒฐ์ ์์คํ ๊ตฌ์กฐ์ ๊ฐํธ ๊ฒฐ์ ์์คํ ์ํคํ ์ฒ์์ ๊ณ ๋ คํด์ผ ํ๋ ์ ๊ฒฐ์ ์๋น์ค๋ ๋ชจ๋ ๋น์ฆ๋์ค ๋๋ฉ์ธ์์ ์ค์ํ ์๋น์ค๋ผ๊ณ ์๊ฐํ๋ค. ์ผ๋ฐ์ ์ธ ๊ฒฐ์ ๋ ๋๊ฐ์ง ๋ถ๋ฅ๋ก ๋๋ ์ ์๋ค. ์ฒซ ๋ฒ์งธ๋ก ์คํ๋ผ์ธ ๊ฒฐ์ , ๋ ๋ฒ์งธ๋ก ์จ๋ผ์ธ ๊ฒฐ์ "๋จ์ํ ์จ๋ผ์ธ์์ ๊ฒฐ์ ํ๋ ๋ฐฉ์์ ๋ชจ๋ฐ์ผ ๊ธฐ๊ธฐ๋ ์น์์ ํ๋ ๊ฑฐ ์๋์ผ?" ๋ผ๊ณ ์๊ฐํ ์ ์์ง๋ง ์กฐ๊ธ ๋ค๋ฅธ ๋ถ๋ถ์ด ์๋ค.์จ์คํ๋ผ์ธ ๊ฒฐ์ ๋ํด์ ์๋ ค๋ฉด VAN์ฌ์ PG์ฌ์ ๋ํด์ ์์ธํ ์์์ผํ๋ค. VAN์ฐ๋ฆฌ๊ฐ ๋งค์ฅ์ ๊ฐ์ ์ท์ ์ฌ๊ฑฐ๋ ์๋น์ด๋ ์นดํ์์ ๊ฒฐ์ ๋ฅผ ํ ๋ ์นด๋๋ก ๊ฒฐ์ ๋ฅผ ํ๋ค. ์ด๋ ์นด๋๋ฅผ ๊ฝ๊ฑฐ๋ ๊ธ์ด์ ๊ฒฐ์ ๋ฅผ ํ๊ฒ ๋๋๋ฐ, ๊ทธ ๊ณผ์ ์์ ํต์ ์ ์ํํ๋ ๊ฒ์ด VAN์ด๋ผ๊ณ ํ๋ค.VAN ์ Value Added Network ์ ์ฝ์๋ก ๋ถ๊ฐ๊ฐ์นํต์ ๋ง์ ๋งํ๋ค. ์คํ๋ผ์ธ ๊ฒฐ์ ์ ํต์ฌ์ธ ๋ถ๊ฐ๊ฐ์นํต์ ๋ง์ ๊ฐ๋งน์ ๊ณผ ์นด๋์ฌ๋ฅผ ์ด์ด์ฃผ๋ ํต์ ๋ง์ด๋ค.. Architecture 2024. 10. 14. ์๋ฐ Math ํด๋์ค ์ฌ๋ฆผ, ๋ฒ๋ฆผ, ๋ฐ์ฌ๋ฆผ ceil, floor, round ์ ์ฐ๋ ๊ฟํ ์ฝ๋ฉํ ์คํธ๋ฅผ ํ๋ ์ฌ๋ฆผ์ ํด์ผํ ์ผ์ด ์์ด์, Math.ceil() ํจ์๋ฅผ ์ฌ์ฉํ๋๋ฐ, ์๋ชป์ฌ์ฉํด์ ํ๋ ธ๊ธฐ ๋๋ฌธ์ ๋ฆฌ๋ง์ธ๋ ๊ฒธ ๊ธ์ ์ด๋ค.์ผ๋จ ์ฌ๋ฆผ, ๋ฒ๋ฆผ, ๋ฐ์ฌ๋ฆผํ ๋ ํ๋ผ๋ฏธํฐ์ ์ค์ํ์ ๋ฃ์ด์ผํ๋๋ฐ, ์ ์ํ์ ๋ฃ์ด์ ์๋ชป ๋์ค๊ธฐ ๋๋ฌธ์ด๋ค. ์ฒ์์ ์๊ทธ๋ฌ์ง ํ๋ค๊ฐ ์ ์ถ 3๋ถ ์ ์ ์์์ฐจ๋ฆฌ๊ณ ๋คํ์ด ๋ง์ถ ์ ์์๋ค. ์ฌ๋ฆผ์ด๋ ๋ฐ์ฌ๋ฆผ์์ ์ ์ํ์ ๋ฃ์ด ๋ฒ๋ฆฌ๋ฉด ์ ๋๋ก ๋์ํ์ง ์๋๋ค. ๋จผ์ 10 / 4 ๋ฅผ ์๋ก ๋ค์์ ๋ 10 / 4 ๋ ์ ์ํ ๋ชซ๋ง ์๊ธฐ๊ธฐ ๋๋ฌธ์ 2๊ฐ ๋๊ณ ํจ์ ๋ด์์ ์บ์คํ ๋์ด 2.0 ์ด ๋๊ณ ์ฌ๋ฆผ์ด๋ ๋ฐ์ฌ๋ฆผ์ 2.5๊ฐ ์๋๊ธฐ ๋๋ฌธ์ 2.0์ผ๋ก ๋์จ๋ค.๊ทธ๋์ ๊ผญ ์ค์ํ์ผ๋ก ์บ์คํ ์ ํด์ฃผ๊ณ ์ฐ์ฐ์ ํด ํ๋ผ๋ฏธํฐ์ ๋ฃ์ด์ฃผ์ด์ผํ๋ค. ์ฌ๋ฆผ์ ์๊ฐ์ ๋ฃ์ด์ ์ฐ์ฐํด์ฃผ๊ณ ์ถ์ผ๋ฉด ์๋์ ๊ฐ์ด ์บ์คํ ์ ํด.. Java Programming 2024. 10. 7. CAP ์ด๋ก - ๋ฐ์ดํฐ๋ฒ ์ด์ค์ ๋ถ์ฐ ์์คํ ์ด๋ก ์์คํ ์ํคํ ์ฒ๋ฅผ ๊ณต๋ถํ๋ค๋ณด๋ ๋ฐ์ดํฐ๋ฒ ์ด์ค์ ๋ถ์ฐ์์คํ ์ ๊ณต๋ถํ๊ฒ ๋๋ ์ผ์ด ์๊ฒผ๋ค. ๊ทธ๋ CAP ์ด๋ก ์ด๋ผ๋ ๋จ์ด๋ฅผ ์ฒ์ ๋ดค๋๋ฐ, Capability ์ ์๊ธ์๋ฅผ ๋ฐ์ ๋ถ์ฐ ์์คํ ์์ ๋ฐ์ดํฐ ๋ฒ ์ด์ค ๊ฐ์ฉ ๋ฅ๋ ฅ์ด๋ ๋ฐ์ดํฐ ๋ฒ ์ด์ค ์ฑ๋ฅ์ ๊ด๋ จ๋ ์ด๋ก ์ธ์ค ์์๋ค.ํ์ง๋ง ๊ณต๋ถํด๋ณด๋ ์ ํ ๋ค๋ฅธ ๊ฐ๋ ์ด์๊ณ , CAP ์ด๋ก ์ ๋ถ์ฐ ์์คํ ์ DB ํ๊ฒฝ์์ ๋คํธ์ํฌ ๋ถํ ์ด ๋ฐ์ํ๋ฉด ์์คํ ์ ์ผ๊ด์ฑ๊ณผ ๊ฐ์ฉ์ฑ ์ค ํ๋๋ฅผ ์ ํํด์ผ ํ๋ฉฐ, ๋ ๋ค๋ฅผ ๋์์ ์๋ฒฝํ๊ฒ ๋ณด์ฅํ ์ ์๋ค๋ ์ด๋ก ์ด์๋ค. ๋๊ฒ ์ค์ํ ๊ฐ๋ ์ธ ๊ฒ ๊ฐ์์ ๊ธฐ๋ก์ผ๋ก ๋จ๊ฒจ๋๋ ค๊ณ ํ๋ค.๊ฐ๋ ๋จผ์ ๊ฐ๋ ์ ๋งํ์๋ฉด ๋ค์๊ณผ ๊ฐ๋ค.CAP ์ด๋ก (CAP theorem)์ ๋ถ์ฐ ์์คํ ์์ ์ธ ๊ฐ์ง ์ฃผ์ ํน์ฑ์ธ ์ผ๊ด์ฑ(Consistency), ๊ฐ์ฉ์ฑ(Availability), ๊ทธ๋ฆฌ.. Database 2024. 9. 28. ๋ค์ต์คํธ๋ผ , ๋ฒจ๋ง-ํฌ๋, ํ๋ก์ด๋-์์ฌ ์๊ณ ๋ฆฌ์ฆ ์ฐจ์ด ๊ทธ๋ํ ์๊ณ ๋ฆฌ์ฆ์ ์ฃผ์ด์ง ๊ทธ๋ํ์ ์ ์ (Vertex)๊ณผ ๊ฐ์ (Edge)์ ์ฒ๋ฆฌํ์ฌ ๋ค์ํ ๋ฌธ์ ๋ฅผ ํด๊ฒฐํ๋ ์๊ณ ๋ฆฌ์ฆ์ ๋๋ค. ๊ฐ์ฅ ๋๋ฆฌ ์ฐ์ด๋ ์๊ณ ๋ฆฌ์ฆ์ผ๋ก BFS ์ DFS ๊ฐ ์์ต๋๋ค. ๊ทธ ์ค ์ต๋จ ๊ฒฝ๋ก๋ฅผ ์ฐพ๋ ์๊ณ ๋ฆฌ์ฆ์ผ๋ก BFS ์๊ณ ๋ฆฌ์ฆ์ ์ฌ์ฉํฉ๋๋ค. ํ์ง๋ง BFS ์๊ณ ๋ฆฌ์ฆ์ ๊ฐ์ ์ ๊ฐ์ค์น๊ฐ ํญ์ ์ผ์ ํ ๋ ์ฌ์ฉํ ์ ์์ต๋๋ค.๊ฐ์ ์ ๊ฐ์ค์น๊ฐ ๋ค๋ฅธ ๊ฒฝ์ฐ ์ต์ ์ ๊ฒฝ๋ก๋ฅผ ์ฐพ๋ ์๊ณ ๋ฆฌ์ฆ์ผ๋ก๋ ๋ค์ต์คํธ๋ผ , ๋ฒจ๋ง-ํฌ๋, ํ๋ก์ด๋-์์ฌ ์๊ณ ๋ฆฌ์ฆ์ด ์์ต๋๋ค.๊ฐ๊ฐ์ ์ฐจ์ด๋ ๋ค์๊ณผ ๊ฐ์ต๋๋ค. ๋ค์ต์คํธ๋ผ ์๊ณ ๋ฆฌ์ฆ (Dijkstra's Algorithm) ์ฃผ์ด์ง ์์ ์ ์ ์์ ๋ค๋ฅธ ๋ชจ๋ ์ ์ ๊น์ง์ ์ต๋จ ๊ฒฝ๋ก๋ฅผ ์ฐพ์ต๋๋ค.์ผ๋ฐ์ ์ผ๋ก ์ฐ์ ์์ ํ๋ฅผ ์ฌ์ฉํด์ ๊ตฌํํฉ๋๋ค.๊ฐ์ค์น๊ฐ ๋ชจ๋ ์์์ธ ๊ฒฝ์ฐ ์ฌ์ฉ ๊ฐ๋ฅํฉ๋๋ค. ์๊ฐ ๋ณต์ก๋:.. Algorithm 2024. 9. 20. ์ฝํ๋ฆฐ ๊ณต๋ถ๋ฅผ ์์ํ๋ฉฐ... Spring ์ ์ฌ์ฉํ๋ ๋ง์ IT ํ์ฌ์์ ์๋ฐ์ ์ฝํ๋ฆฐ์ ๊ฒธ์ฉ์ผ๋ก ์ฌ์ฉํ๋ ์ถ์ธ์ธ ๊ฑธ ๋ณผ ์ ์์ต๋๋ค. ๊ทธ ์ด์ ๋ฅผ ์ฐพ์๋ณด๋ ์ฝํ๋ฆฐ์ ์๋ฐ์ JVM์์ ํธํ๋๋ฉฐ, ์๋ฐ์ ์ฅ์ ์ ์ ์งํ๋ฉด์๋ ํ๋์ ์ธ ์ธ์ด ์ค๊ณ๋ฅผ ๋ฐ์ํ์ฌ ๊ฐ๋ฐ ์์ฐ์ฑ์ ๋์ฌ์ฃผ๊ธฐ ๋๋ฌธ์ ๋ง์ด ์ฑํ๋๊ณ ์๋ค๋ ๊ฑธ ์์์ต๋๋ค.์ ๋ ์ฝํ๋ฆฐ์ผ๋ก Lv1 ์ฝ๋ฉํ ์คํธ๋ฅผ ๋ฌธ์ ๋ฅผ ํ๊ณ , ์ฌ์ด๋ ํ๋ก์ ํธ๋ฅผ ์งํํ๋ฉด์ ์๋ฐ์ ๋นํด ์ข์ ์ ๊ณผ ์ฐจ์ด์ ์ ํ์ตํ ์ ์์์ต๋๋ค. ์ฒซ ๋ฒ์งธ๋ก ์ฝํ๋ฆฐ์ ์๋ฐ๋ณด๋ค ๋ ๊ฐ๊ฒฐํ๊ณ ๊ฐ๋ ์ฑ์ด ๋ฐ์ด๋ฌ์ต๋๋ค. ์๋ฐ๋ ํจ์ํ ํ๋ก๊ทธ๋๋ฐ์ ์ง์ํ์ง๋ง, ์ฝํ๋ฆฐ์ ๋ฌธ๋ฒ์ด ์กฐ๊ธ ๋ ์งง๊ณ ๊ฐ๊ฒฐํฉ๋๋ค. ์๋ฐ์์ ๊ธธ๊ฒ ํํํ๋ ๋ฌธ๋ฒ๋ค์ ์กฐ๊ธ์ฉ ํจ์ถํด์ ์ ๋๋ค๋ ๋๋์ ๋ฐ์์ต๋๋ค.์ฝํ๋ฆฐ์ data class ๋ ์๋ฐ์ record ์ ๋งค์ฐ ๋น์ทํ๋ค.. Kotlin Programming 2024. 9. 17. ์ด์ 1 2 3 4 5 6 ยทยทยท 21 ๋ค์