์ ์ฒด ๊ธ48 ๋ทํ๋ฆญ์ค์์ ์๋ฐ๋ฅผ ์ฌ์ฉํ๋ ๋ฐฉ๋ฒ ๋ทํ๋ฆญ์ค์ ์น ์๋ฒ ๊ตฌ์กฐํ๋์ GraphQL ์ฟผ๋ฆฌ๋ฅผ ์ ๋ ฅ๋ฐ์ ์ฌ๋ฌ ์๋น์ค๋ก ๋ถ์ฐ ์ฟผ๋ฆฌํ์ฌ ๊ฒฐ๊ณผ๋ฅผ ๋ชจ์ผ๋ ๊ฒ์ดํธ์จ์ด๋ฅผ ์ฌ์ฉํ๊ณ ์๋ค. ์คํธ๋ฆผ ํ๋ก์ธ์ฑ์ ๋น๋กฏํ ๋ชจ๋ ๋ฐฑ์๋ ์๋น์ค๋ ์๋ฐ๋ก ๊ตฌํ๋์ด ์๋ค. ๋ชจ๋ ์๋น์ค๋ ์คํ๋ง ๋ถํธ + JDK 17+๋ก ๊ตฌํ๋์ด ์์ผ๋ฉฐ RPS ๊ฐ ๋์ ์๋น์ค๋ JDK 23์ ํตํด ์ต์ ๋ฒ์ ์ GC๋ฅผ ์ฌ์ฉํ๊ณ ์๋ค. JDK 21 ์ดํ์์ ์ ๊ณต๋๋ ZGC๋ generation ๋ณ๋ก ์ํ๋๋ฉฐ pause time์ด ๊ฑฐ์ ๋ฐ์ํ์ง ์๋๋ค. ๋ฐ๋ผ์ G1GC → ZGC ๊ต์ฒด ํ ํ์์์์ด ๋ง์ด ์ค์๋ค. ๊ฐ์ ์ค๋ ๋๋ฅผ ์ฌ์ฉํ๋ฉด ์ด๋ค ์ค๋ ๋ํ์์ ์ด๋ค ๋ฉ์๋๋ฅผ ์ํํด์ผ ํ๋์ง, ์ด๋ค ํ์ ์ Future๋ฅผ ์ด๋ป๊ฒ ์ฌ์ฉํ ์ง ์๊ฐํ์ง ์์๋ ๋๋ค. ๋ด ์๊ฐ์ธ๋ถ API๋ GraphQL๋ก ์ ๊ณตํ๊ณ .. 2026. 1. 24. Spring Data Cassandra๋ก ScyllaDB์์ ํ์ด์ง๋ค์ด์ ํ๊ธฐ ScyllaDB๋ Cassandra์ csql๊ณผ ํธํ๋๋๋ก ๋ง๋ค์ด์ก๊ธฐ ๋๋ฌธ์ Cassandra ํด๋ผ์ด์ธํธ๋ฅผ ์ฌ์ฉํด ํต์ ๊ฐ๋ฅํ๋ค. ์ด๋ฒ ๊ธ์์๋ Spring Data Cassandra๋ฅผ ํตํด ScyllaDB์ ๋ฐ์ดํฐ๋ฅผ ์ปค์ ๊ธฐ๋ฐ์ผ๋ก ํ์ด์งํ๋ ๋ฐฉ๋ฒ์ ์์๋ณธ๋ค.๊ฐ๋ Cassandra๋ OFFSET ๊ธฐ๋ฅ์ ์ง์ํ์ง ์๊ณ , LIMIT๊ณผ PagingState๋ฅผ ํ์ฉํ Cursor-based Pagination์ ์ ๊ณตํ๋ค. ์ด ๋ Cursor ์ญํ ์ ํ๋ ๋ฐ์ดํฐ๋ฅผ PagingState๋ผ๊ณ ๋ถ๋ฅธ๋ค. Cassandra๋ ํ์ฌ๊น์ง ์ฝ์ ์์น ์ ๋ณด๋ฅผ ๋ด์ PagingState๋ฅผ ํด๋ผ์ด์ธํธ์๊ฒ ๋๊ธด๋ค. ํด๋ผ์ด์ธํธ๋ ๋ค์ ํ์ด์ง๋ฅผ ์์ฒญํ ๋ PagingState๋ฅผ page size์ ํจ๊ป ๋ณด๋ด ์ด์ ์ ์ฝ์ ์์น ์ดํ๋ถํฐ ๋ฐ์ด.. 2025. 6. 21. 2024 ํ๊ณ & 2025 ๋ชฉํ ๊ฐ๋ฐ ๊ณต๋ถ์ ๋ํ ์ด์ ์ ๊พธ์คํ ์ ์งํ๋ ๊ฒ ์ฝ์ง ์๋ค. ๋๋ ๊ด์ฌ์ฌ๊ฐ ์๊ณ ๋๊ฒ ํฌ์ง๋์ด ์์ด์ ๋ ์ฌํ ๊ฒ ๊ฐ๋ค.. (์ด์ฐ๋ณด๋ฉด ์ฝํ ADHD์ผ์๋ ..) ์๊ฐ ํ๊ณ ๋ฅผ ๊พธ์คํ ์์ฑํด๋ณด๋ ค๊ณ ํ์์ง๋ง ํด๊ทผํ๊ณ ์ด๋๊ฐ๊ณ ๋งค์ผ 9์๊ฐ ์๋ค๋ณด๋ ์๊ฐ์ด ๋๋ฌด ์์ด์ ๋์์ ์ ๋๋์๋ณผ ๊ธฐํ๊ฐ ์์๋ค.์ด๋ฒ ํ๊ณ ๋ฅผ ํตํด์ ์๋ ์ ์ด๋ป๊ฒ ๊ฐ๋ฐ ๊ณต๋ถ๋ฅผ ์งํํ๋์ง์ ์ฌํด ์ด๋ป๊ฒ ๊ฐ๋ฐ์๋ก์จ ๋ ์ฑ์ฅํ ์ง ๊ณํ์ ์ฃผ์ ์ฃผ์ ์์ฑํด๋ณด๊ณ ์ ํ๋ค. 2024 ํ๊ณ 2024๋ ๋์ ํ๋ณด์ ๋ํด ํ ๋ฌธ์ฅ์ผ๋ก ๋ํ๋ด๋ณด์๋ฉด, ๋๋ฆฟ๋๋ฆฟ ๊พธ์คํ ๋ฐฐ์๋ผ๊ณ ํํํ ์ ์๊ฒ ๋ค.์ดํ์.. "์ด์์์ด ๋ฌ๋ ค์ค๊ธด ํ์ผ๋ ์ด๊ฒ ์ต์ ์ผ๊น, ๋ค๋ฅธ ์ฌ๋๋ค์ ํจ์ฌ ๊ฐํ๋ฅด๊ฒ ์ฑ์ฅํ๋๋ฐ ๋๋ ๋๋ฌด ์๋งํ๊ฒ ์๋๊น" ๋ผ๊ณ ํ๊ฒ ๋ค. ์ฌํด ์ํ ์ ์ ์ก์์ฑ์ผ๋ก ๊ณต๋ถํด๋ฌ์ ๋์ค์ .. 2025. 1. 1. Spring Cacheable์ ๋์ ์๋ฆฌ Cacheable ์ด๋Spring์์๋ ๊ฐ๋จํ๊ฒ ์ด๋ ธํ ์ด์ ์ ๊ธฐ๋ฐ์ผ๋ก ์บ์ฑ ์ ๋ต์ ์ฌ์ฉํ ์ ์๋ ๊ธฐ๋ฅ์ ์ ๊ณตํ๋ค.๊ฐ ์บ์ ๋ฒค๋์ฌ์์ ์ ๊ณตํ๋ CacheManager๋ฅผ ๋น์ผ๋ก ๋ฑ๋กํ๊ณ ์ํ๋ ๋ฉ์๋์ ์ด๋ ธํ ์ด์ ์ ๋ฌ๋ฉด ๋ค์ํ ์บ์ ์ ์ฅ์๋ฅผ ๋์ผํ ์ธํฐํ์ด์ค๋ฅผ ํตํด ์ฌ์ฉํ ์ ์๋ค.๊ฐ๋จํ ์ฌ์ฉ ๋ฐฉ๋ฒRedis๋ฅผ ์ฌ์ฉํ๋ ๊ฐ๋จํ ์ฌ์ฉ ๋ฐฉ๋ฒ์ ์๊ฐํ๋ค. ๋จผ์ , Spring Data Redis์ ๋ํ ์์กด์ฑ์ ์ถ๊ฐํ๋ค.implementation 'org.springframework.boot:spring-boot-starter-data-redis' ๊ทธ๋ฆฌ๊ณ ์๋์ ๊ฐ์ด Configuration์ Redis์ ์ฐ๊ฒฐ์ ์ํ RedisConnectionFactory์ RedisCacheManager์ ๋น์ ๋ฑ๋กํ๋ค.@Co.. 2024. 9. 22. [Slash 23] MSA ์ ํ๊ธฐ๋ฅผ ๋ณด๊ณ ๋์ https://youtu.be/amTJyIE1wO0?si=0n8WlzfYEt5wAto9 ํ์ฌ ๊ตฌ์ฑ๋ ๋๋ถ๋ถ์ ์ํ ์์คํ ์ ์๋์ ๊ฐ์ ์์๋ก ๊ฐ์ ๋์ด ์๋ค. ๊ธ์ต๊ถ ์ทจ์ ์ ์ํด์๋ Oracle, Java, C ๊ณต๋ถ๊ฐ ํ์ํ๋ค๋ ์ฌ์ค์ ์ตํ ์๊ณ ์๋ ์ฌ์ค์ด๋ค. ์ด๋ฌํ ์์คํ ์ด ๊ณ์๋์ด ์จ ์ด์ ๋ ์ค๋ ๊ธฐ๊ฐ ์ ์ง๋์๊ธฐ ๋๋ฌธ์ ์์ ์ฑ์ด ๋๊ณ ๊ฐ๋ฐ์๋ค์ด ๋น ๋ฅด๊ฒ ์ ์ ๊ฐ๋ฅํ๊ธฐ ๋๋ฌธ์ด๋ค. ํ ์ค์์๋ ์ด๋ฌํ ์ฐจ์ธ๋ ์์คํ ์์ ํ๋ฐ์ง ๋์๊ฐ ์ผ๋ถ ์์คํ ์ MSA๋ก ๋ถ๋ฆฌํด๋ธ ์ด์ผ๊ธฐ๋ฅผ ๋ค๋ ค์ค๋ค. ์ํ๊ถ ๊ฐ๋ฐ์์๋ ์ฑ๋๊ณ, ๊ณ์ ๊ณ ๋ฑ ๊ด๋ จ ์ง์ ์ข ์ฌ์๊ฐ ์๋ ์ผ๋ฐ์ธ์ด ๋ค์ผ๋ฉด ์ฝ๊ฒ ์ดํดํ๊ธฐ ์ด๋ ค์ด ๋ถ๋ฅ ์ฉ์ด๊ฐ ์ฐ์ธ๋ค. ๊ณ์ ๊ณ๋ ์ค์ ๋ก ์ฌ์ฉ์์ ๋์ ๋ค๋ฃจ๋ฉฐ ์๋ณธ ๋ฐ์ดํฐ๊ฐ ์ ์ฅ๋๋ ์์ญ์ด๋ค. ์๋ฒ์ DB๊ฐ ํ๋์ด๋ฏ๋ก ๋คํธ์ํฌ.. 2024. 9. 14. Spring Boot ๋ฌด์ค๋จ ๋ฐฐํฌํ๊ธฐ (AWS ec2 + Nginx + Github self -hosted runner) ๋ค์ด๊ฐ๋ฉฐ ์ค๋ฌด์ ์ ์ฉํ๋ ํ๋ก์ ํธ๊ฐ ์๋ ๊ฐ๋จํ ์ฌ์ด๋ ํ๋ก์ ํธ๋ฅผ ๋ฐฐํฌํ๋ ๊ฒฝ์ฐ์๋ ๋ค์ํ ๋ฐฉ์์ ์ฌ์ฉํ ์ ์๋ค. ๊ฐ์ฅ ๊ฐ๋จํ ๋ฐฐํฌ ๋ฐฉ์์ Github Action์ ์ด์ฉํด ๋ธ๋์น๊ฐ ํธ์๋๋ฉด ๊ธฐ์กด ํ๋ก๊ทธ๋จ์ ์ข ๋ฃํ๊ณ ์๋ก์ด ํ๋ก๊ทธ๋จ์ ๋ค์ ๋์ฐ๋ ๋ฐฉ์์ผ ๊ฒ์ด๋ค. ํ์ง๋ง ๊ธฐ์กด ํ๋ก๊ทธ๋จ์ด ์ข ๋ฃ๋๊ณ ์๋ก์ด ํ๋ก๊ทธ๋จ์ ๋์ฐ๋ ์ฌ์ด์ ์๋น์ค๊ฐ ์ค๋จ๋๊ธฐ ๋๋ฌธ์, ์ด๋ฌํ ์ค๋จ ์์ด ๋ฐฐํฌํ ์ ์๋ ๋ฌด์ค๋จ ๋ฐฐํฌ ๋ฅผ ํ๊ณ ์ ํ๋ค. ๋ฌด์ค๋จ ๋ฐฐํฌ๋ฅผ ์งํํ๊ธฐ ์ํด Blue/Green ๋ฐฐํฌ ๋ฐฉ์์ ์ฌ์ฉํ๊ณ ์ ํ๋ค. Blue/Green ๋ฐฐํฌ ๋ฐฉ์์ ์๋ ๋ฒ์ ์ผ๋ก ์คํ์ค์ธ WAS๊ฐ ์กด์ฌํ๋ค๋ฉด ํด๋น WAS๋ฅผ ์ข ๋ฃ์ํค์ง ์์ ์ฑ ์๋ก์ด ๋ฒ์ ์ WAS๋ฅผ ๊ตฌ๋์ํจ๋ค. ์ฑ๊ณต์ ์ผ๋ก ๊ตฌ๋๋์๋ค๋ฉด Nginx๊ฐ ์๋ก์ด ๋ฒ์ ์ WAS๋ฅผ ๋ฐ๋ผ๋ณด๊ฒ .. 2024. 3. 11. QueryDSL์ transform์ ์ฌ์ฉํด ๋ฆฌ๋ทฐ ํต๊ณ ์ ๋ณด ๋ฐํํ๊ธฐ ์๊ตฌ์ฌํญ ํฅ์ ๋ฆฌ๋ทฐ ํ๋ก์ ํธ๋ฅผ ์งํํ๋ฉฐ, ํฅ์ ๋ฆฌ๋ทฐ ๋ฐ์ดํฐ ๊ธฐ๋ฐ์ผ๋ก ํต๊ณ๋ฅผ percentage๋ก ๋ด์ด ๋ฐํํ๋ ์๊ตฌ์ฌํญ์ด ์์๋ค. ์๋ ๊ทธ๋ฆผ๊ณผ ๊ฐ์ด ํน์ ํฅ์์ ๋ํด ์ฌ๋๋ค์ด ๋ฆฌ๋ทฐํ ๋ฌด๊ฒ๊ฐ ์ ๋, ์ง์๋ ฅ, ๊ณ์ , ํ์ฐ๋ ฅ ์ ๋, ์ฌ์ฉ์์ ์ฑ๋ณ์ ๊ธฐ๋ฐ์ผ๋ก ์ค๊ฐํ์ ๋ํ๋ด์ด์ผ ํ๋ค. ์ด๋ฅผ ์ํด ํน์ ํฅ์์ ๋ํ ๋ฆฌ๋ทฐ ๋ฐ์ดํฐ๋ฅผ ์กฐํํด ๊ฐ๊ฐ์ ๋ฆฌ๋ทฐ ์์๋ง๋ค ๋น์จ์ ๊ณ์ฐํด ์กฐํํ๊ณ ์ ํ๋ค. ๋น์ฐํ ๋ง์ด์ง๋ง ๊ฐ๊ฐ์ Percentage๋ฅผ ๋ชจ๋ ํฉํ๋ฉด 100์ด ๋์ด์ผ ํ๋ค. ํ๋ก์ ํธ์ ๋ฆฌ๋ทฐ ํ ์ด๋ธ๊ณผ ์ ์ ํ ์ด๋ธ ๊ตฌ์กฐ๋ฅผ ๊ฐ๋จํ๊ฒ ์ดํด๋ณด๋ฉด ์๋์ ๊ฐ๋ค. (์ผ๋ถ ํ์์๋ ๋ฐ์ดํฐ๋ ์๋ตํ๋ค.) ํด๋ผ์ด์ธํธ์๊ฒ๋ ๋ฆฌ๋ทฐ ๋ฐ์ดํฐ์ ๋ฆฌ๋ทฐ๋ฅผ ์์ฑํ ์ฌ์ฉ์์ ๋ฐ์ดํฐ๋ฅผ ์กฐํํด ์๋์ ๊ฐ์ด ๋ฆฌ๋ทฐ ์์๋ง๋ค percentage๋ฅผ ๊ณ์ฐํ์ฌ ๋ฐํํด .. 2024. 1. 14. 2023 ์ธํ์ฝ ํ๊ธฐ ์ดํ ๋ฐฑ์๋ ๊ฐ๋ฐ์๋ก ์ผํ๋ฉด์ ์ฒ์์ผ๋ก ์ธํ์ฝ์ ๋ค๋ ์๋ค. ์ด๋ ๊ฒ ํฌ๊ณ ํ์ฑํ๋ ๊ฐ๋ฐ ์ปจํผ๋ฐ์ค๊ฐ ์ฒ์์ด์ ๊ธฐ๋๋ ๋ง์ด ํ๊ณ , ๊ทธ ๊ธฐ๋๋ฅผ ์ถฉ์กฑํ ๋งํผ ์ฆ๊ฑฐ์ ๋ค. ๊ฐ์ ์ค๊ฐ์ค๊ฐ 20๋ถ๊ฐ ์ฌ๋ ์๊ฐ์ด ์์๋๋ฐ ์ด ์๊ฐ๋์ ๊ตฟ์ฆ๋ฅผ ๋ฐ์ผ๋ฌ ์ค์๊ณ , ๊ฐ์ ์๊ฐ์ด ๋๋ฉด ๋ค์ ๊ฐ์๋ฅผ ๋ค์ผ๋ฌ ๊ฐ๋ค. ์ผ๋จ์ ์ฌ์ฌ๊ฐ๋๋ด์ ๋์ฑ๋, ์ํ๋๊ณผ ํ ๋น๋ ์ธ์ ์ ๋ค์๊ณ , ์จ๋ผ์ธ์ผ๋ก๋ ๋์ฌ ๊ฒ์ ๊ฐ์ํด ์ฃผ์ ๊ฐ ํฅ๋ฏธ๋ก์๋ณด์ด๋ ์ธ์ ์ ๋ค์๋ค.ใ ใ ๋ง์ง๋ง์ ์งํ๋๋ ๋คํธ์ํน ํํฐ๋ ๋ค๋ ์๋๋ฐ.. ๊ธฐ์ ๋ถ์ค๋ ์ง๋ฌธ์๋ต ํํ์๊ณ , ๋คํธ์ํน ๋งค์นญ์ผ๋ก ํ ํฌํ๋ ๊ฑฐ๋ ์๋ก ๋ช๋ ์ฐจ์ธ์ง.. ํ์ฌ ์ํ์ ์ด๋ค์ง.. ๋ฑ ์ค๋ชฐํ ํฌ์๋ค. ์ฌ๋ฐ์๋๋ฐ ๋๊น์ง ๋จ์ง ๋ชปํด ์์ฌ์ ๋ค ใ ๋ค์์ผ๋ก๋ ๋์ค์ ๊ธฐ์ตํด๋๊ณ ์ ๊ฐ ์ธ์ ์์ ์ป์ ์ธ์ฌ์ดํธ๋ฅผ ์ ๋ฆฌํด๋ณด์๋ค! ๐ 12:.. 2023. 8. 16. CentOS7์์ MySQL 8 ๋ฒ์ ์ค์นํ๊ธฐ 1. yum์ ์ฌ์ฉํด install ํด์ฃผ๊ธฐ $ yum install https://dev.mysql.com/get/mysql80-community-release-el7-7.noarch.rpm $ yum install mysql-server 2. ์ ์ค์น๋์๋์ง ํ์ธ $ mysql --version 3. mysql์ ์์ ๋ฐ ๋ถํ ์ ์๋์ผ๋ก ์คํ๋๋๋ก ์ค์ (์๋๋ค๋ฉด sudo ๊ถํ ์ฌ์ฉ) systemctl start mysqld systemctl enable mysqld 4. ์ด๊ธฐ ๋น๋ฐ๋ฒํธ๋ฅผ grep ์ฌ์ฉํด ์ป์ ํ mysql ์ ์ (grep ์ด ์๋๋ค๋ฉด sudo ๊ถํ ์ฌ์ฉ) $ grep 'temporary password' /var/log/mysqld.log $ mysql -u root -p 5. ๋น๋ฐ๋ฒ.. 2023. 4. 20. ์ด์ 1 2 3 4 ยทยทยท 6 ๋ค์