Spring Boot18 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. 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. Spring Boot ๋ฌด์ค๋จ ๋ฐฐํฌํ๊ธฐ (AWS ec2 + Nginx + Github self -hosted runner) ๋ค์ด๊ฐ๋ฉฐ ์ค๋ฌด์ ์ ์ฉํ๋ ํ๋ก์ ํธ๊ฐ ์๋ ๊ฐ๋จํ ์ฌ์ด๋ ํ๋ก์ ํธ๋ฅผ ๋ฐฐํฌํ๋ ๊ฒฝ์ฐ์๋ ๋ค์ํ ๋ฐฉ์์ ์ฌ์ฉํ ์ ์๋ค. ๊ฐ์ฅ ๊ฐ๋จํ ๋ฐฐํฌ ๋ฐฉ์์ Github Action์ ์ด์ฉํด ๋ธ๋์น๊ฐ ํธ์๋๋ฉด ๊ธฐ์กด ํ๋ก๊ทธ๋จ์ ์ข ๋ฃํ๊ณ ์๋ก์ด ํ๋ก๊ทธ๋จ์ ๋ค์ ๋์ฐ๋ ๋ฐฉ์์ผ ๊ฒ์ด๋ค. ํ์ง๋ง ๊ธฐ์กด ํ๋ก๊ทธ๋จ์ด ์ข ๋ฃ๋๊ณ ์๋ก์ด ํ๋ก๊ทธ๋จ์ ๋์ฐ๋ ์ฌ์ด์ ์๋น์ค๊ฐ ์ค๋จ๋๊ธฐ ๋๋ฌธ์, ์ด๋ฌํ ์ค๋จ ์์ด ๋ฐฐํฌํ ์ ์๋ ๋ฌด์ค๋จ ๋ฐฐํฌ ๋ฅผ ํ๊ณ ์ ํ๋ค. ๋ฌด์ค๋จ ๋ฐฐํฌ๋ฅผ ์งํํ๊ธฐ ์ํด Blue/Green ๋ฐฐํฌ ๋ฐฉ์์ ์ฌ์ฉํ๊ณ ์ ํ๋ค. Blue/Green ๋ฐฐํฌ ๋ฐฉ์์ ์๋ ๋ฒ์ ์ผ๋ก ์คํ์ค์ธ WAS๊ฐ ์กด์ฌํ๋ค๋ฉด ํด๋น WAS๋ฅผ ์ข ๋ฃ์ํค์ง ์์ ์ฑ ์๋ก์ด ๋ฒ์ ์ WAS๋ฅผ ๊ตฌ๋์ํจ๋ค. ์ฑ๊ณต์ ์ผ๋ก ๊ตฌ๋๋์๋ค๋ฉด Nginx๊ฐ ์๋ก์ด ๋ฒ์ ์ WAS๋ฅผ ๋ฐ๋ผ๋ณด๊ฒ .. 2024. 3. 11. 6์ฅ: AWS ์๋ฒ ํ๊ฒฝ ๋ง๋ค๊ธฐ Table of Contents ํด๋ผ์ฐ๋ ํด๋ผ์ฐ๋ ์๋น์ค ํด๋ผ์ฐ๋๋ฅผ ํตํด ์๋ฒ, ์คํ ๋ฆฌ์ง, ๋ฐ์ดํฐ๋ฒ ์ด์ค, ๋คํธ์ํฌ, ์ํํธ์จ์ด, ๋ชจ๋ํฐ๋ง ๋ฑ ์ปดํจํ ์๋น์ค๋ฅผ ์ ๊ณตํ๋ ๊ฒ ํด๋ผ์ฐ๋ ํํ IaaS (Infrastructure as a Service) ๊ธฐ์กด ๋ฌผ๋ฆฌ ์ฅ๋น๋ฅผ ๋ฏธ๋ค์จ์ด์ ํจ๊ป ๋ฌถ์ด IT ์ธํ๋ผ๋ฅผ ๋์ฌํด์ฃผ๋ ์ถ์ํ ์๋น์ค AWS EC2, S3๋ฑ์ด ํด๋น๋จ PaaS (Platform as a Service) IaaS๋ฅผ ํ๋ฒ ๋ ์ถ์ํํ์ฌ ๋ง์ ๊ธฐ๋ฅ์ด ์๋ํ๋ ์๋น์ค Beanstalk, Heroku๋ฑ์ด ํด๋น๋จ Saas (Software as a Service) ์ํํธ์จ์ด ์๋น์ค ๊ตฌ๊ธ ๋๋ผ์ด๋ธ, ๋๋๋ฐ์ค ๋ฑ์ด ํด๋น๋จ EC2 ์ธ์คํด์ค ๋ง๋ค๊ธฐ AWS์์ ์ ๊ณตํ๋ ์ฑ๋ฅ, ์ฉ๋ ๋ฑ์ ์ ๋์ ์ผ๋ก ์ฌ์ฉํ ์ ์๋ ์๋ฒ .. 2022. 6. 27. 3์ฅ: JPA๋ก ๋ฐ์ดํฐ๋ฒ ์ด์ค ๋ค๋ฃจ๊ธฐ (2) Table of Contents API ๋ง๋ค๊ธฐ API๋ฅผ ๋ง๋ค์ด๋ณด๋ฉฐ ๊ตฌ์กฐ ์ดํดํ๊ธฐ ํ์ํ ํด๋์ค - Request ๋ฐ์ดํฐ ๋ฐ์ Dto - API ์์ฒญ ๋ฐ์ Controller - ํธ๋์ญ์ , ๋๋ฉ์ธ ๊ธฐ๋ฅ ๊ฐ ์์๋ฅผ ๋ณด์ฅํ๋ Service (๋น์ง๋์ค ๋ก์ง์ ์ฒ๋ฆฌํ์ง๋ ์์) Spring ์น ๊ณ์ธต Web Layer - ์ปจํธ๋กค๋ฌ์ JSP๋ฑ์ ๋ทฐ ํ ํ๋ฆฟ ์์ญ - Filter, ์ธํฐ์ ํธ, ControllerAdvice ๋ฑ ์ธ๋ถ ์์ฒญ๊ณผ ์๋ต์ ๋ํ ์ ๋ฐ์ ์ธ ์์ญ Service Layer - @Service์ ์ฌ์ฉ๋๋ ์์ญ - Controller์ Dao ์ค๊ฐ์์ ์ฌ์ฉ๋จ - @Transactional์ด ์ฌ์ฉ๋์ด์ผ ํจ Repository Layer - ๋ฐ์ดํฐ ์ ์ฅ์์ ์ ๊ทผํ๋ ์์ญ DTOs - Data Transfer O.. 2022. 6. 15. 3์ฅ: JPA๋ก ๋ฐ์ดํฐ๋ฒ ์ด์ค ๋ค๋ฃจ๊ธฐ (1) Table of Contents JPA JPA์ Spring Data JPA ๊ฐ๋ ์ ์ดํดํ๋ค. ORM vs. SQL Mapper - ORM์ ๊ฐ์ฒด๋ฅผ ๋งคํํ๋ ๊ฒ, ๋ํ์ ์ธ ๊ธฐ์ ๋ก๋ JPA๊ฐ ์์ - SQL Mapper๋ ์ฟผ๋ฆฌ๋ฅผ ๋งคํํ๋ ๊ฒ, ๋ํ์ ์ธ ๊ธฐ์ ๋ก๋ MyBatis๊ฐ ์์ ํจ๋ฌ๋ค์์ ๋ถ์ผ์น ๊ด๊ณํ ๋ฐ์ดํฐ๋ฒ ์ด์ค๋ ์ด๋ป๊ฒ ๋ฐ์ดํฐ๋ฅผ ์ ์ฅํ ์ง ์ด์ ์ ๋ง์ถ์ง๋ง ๊ฐ์ฒด์งํฅ ํ๋ก๊ทธ๋๋ฐ ์ธ์ด๋ ๋ฉ์์ง๋ฅผ ๊ธฐ๋ฐ์ผ๋ก ๊ธฐ๋ฅ๊ณผ ์์ฑ์ ํ ๊ณณ์์ ๊ด๋ฆฌํ๋ ๊ฒ์ด ์ค์ฌ JPA๋ ํจ๋ฌ๋ค์์ ๋ถ์ผ์น๋ฅผ ํด๊ฒฐํ๊ธฐ ์ํด ๊ฐ์ฒด์งํฅ์ ์ผ๋ก ํ๋ก๊ทธ๋๋ฐํ ์ฝ๋๋ฅผ ๊ธฐ๋ฐ์ผ๋ก SQL์ ์์ฑํด ์คํํด์ฃผ๋ฏ๋ก SQL์ ์ข ์์ ์ผ๋ก ๊ฐ๋ฐํ์ง ์์๋ ๋จ Spring Data JPA - JPA๋ ์ธํฐํ์ด์ค, ์๋ฐ ํ์ค ๋ช ์ธ์์ด๋ฏ๋ก ๊ตฌํ์ฒด๊ฐ ํ์ํจ. ๊ตฌํ์ฒด๋ก๋ .. 2022. 6. 15. ์ด์ 1 2 3 ๋ค์