๋ฐฑ์๋32 Entity ์์ ์กฐ๊ฑด์ ์๋์ผ๋ก ๋ถ์ฌ์ฃผ๋ ๋ฐฉ๋ฒ๋ค (@SQLRestriction, @Where, @Filter) Repository์์ ๊ฐ์ ๊ฐ์ ธ์ฌ๋, JPA์ ์ง์ IsDeletedFalse ์ด๋ฐ์์ผ๋ก ๋ถ์ฌ์ฃผ๊ฒ ๋๋ฉด ์ค์๊ฐ ๋ฐ์ํ ์ ์๋ ์ํ์ด ์กด์ฌํ๋ค. ๋ฐ๋ผ์ ์๋์ ๊ฐ์ด ์ง์ ์์ฑํ์ง ์๊ณ , ์กฐ๊ฑด๋ค์ ๋ถ์ฌ์ฃผ๋ ๋ฐฉ๋ฒ์ ๋น๊ตํด๋ณด์๋ค. 1. @SQLRestriction@SQLRestriction("deleted_at IS NULL") SQL๋ ๋ฒจ ์กฐ๊ฑดHibernate๊ฐ ์ค์ SQL์ ์์ฑํ ๋ ์ง์ ์กฐ๊ฑด์ ๋ถ์but, sql ์ ์ง์ ์ฝ์ ๋์ด DBMS ์์กด์ ์ผ ์ ์์ 2. @Where@Where(clause = "deleted_at IS NULL")HQL ๋ ๋ฒจ์์๋ง ์กฐ๊ฑด๋ถ์ฌํด๋น ์ํฐํฐ์ ๋ํ ๋ชจ๋ ์กฐํ ์ฟผ๋ฆฌ์ ์๋์ผ๋ก Where์ ์ถ๊ฐ๋ ผ๋ฆฌ ์ญ์ ๊ฐ์ ๋จ์ ์กฐ๊ฑด ํํฐ์ ์ข์ํ๋ผ๋ฏธํฐ ๋ฐ์ธ๋ฉ์ด ๋ถ๊ฐํ๊ณ , ์กฐ๊ฑด์ด ๊ณ .. 2025. 4. 14. Feign Client ํธ์ถ ์๋ต Dto์ ํ๋๋ช ์ด ๋ค๋ฅผ๋ Feign Client ํธ์ถ์ ์๋ต dto์ ํ๋๋ช ์ด ๋ค๋ฅด๋ฉด ๊ฐ์ ์ ๋๋ก ๋ฐ์์ค์ง ๋ชปํฉ๋๋ค. ์๋ฅผ ๋ค๋ฉด Product์์ ProductReadResponse๋ฅผ ์๋ตํด์ฃผ๊ณ ,๊ทธ๊ฑธ LimitedProduct์์ ๋ฐ์์ค๋ ค๊ณ ํ ๋,ProductReadResponse ์๋ productId์ ํ๋๋ช ์ด id๋ก ๋์ด ์๋๊ฒฝ์ฐ์๋ฌ๋ฅผ ๋ฑ์ด๋ ๋๋ค. ์ด๋ฌํ ์๋ฌ๋ฅผ ๋ฐฉ์งํ๊ธฐ ์ํด @JsonProperty ์ด๋ ธํ ์ด์ ์ผ๋ก ์ด๋ค ํ๋์ ๋งคํํด์ฃผ๋์ง ๋ช ์ํด์ฃผ๋ฉด ๊น๋ํ๊ฒ Dto๋ฅผ ๋ฐ์์ฌ ์ ์์ต๋๋ค! package com.sparta.limited.limited_service.limited_product.infrastructure.feign.dto;import com.fasterxml.jackson.annotation.JsonPrope.. 2025. 4. 14. Git hub Issue template ๋ง๋ค๊ธฐ API ๋จ์๋ณ๋ก Issue๋ฅผ ๊ด๋ฆฌํ๋ฉดํด๋น API ๊ธฐ๋ฅ์ ๋ํด Todo List๋ฅผ ๊ด๋ฆฌํ๊ธฐ ์ข๊ณ , ๋ธ๋์น๋ฅผ ์ด์ ๋ฒํธ๋ก ๊ด๋ฆฌํ๋ฉฐ ์ฒด๊ณ์ ์ธ ๊ฐ๋ฐํ๊ฒฝ์ ๊ตฌ์ถํ๊ธฐ ์ข๋ค.๊ทธ๋์ ๊ทธ๋ฐ git hub issue๋ฅผ ์์ฑํ ๋ ์ฐ๊ธฐ ์ข์ ํ ํ๋ฆฟ ๋ง๋๋ ๋ฒ์ ์ ๋ฆฌํด๋ณด์๋ค. ๋จผ์ git hub์์ repository ์ ์ ํ settings๋ฅผ ํด๋ฆฐํ๋ค.settings์ ๋ค์ด์์ ์คํฌ๋กค์ ์กฐ๊ธ๋ง ๋ด๋ฆฌ๋ฉด Set up templates ๋ฅผ ๋ณผ ์ ์๊ณ , ํด๋น ๋ฒํผ์ ํด๋ฆญํ๋ค. ํด๋ฆญํ๋ฉด ์๋์ ๊ฐ์ด Add Template : select ํด๋ฆญ ํ Custom issue template ๋ฅผ ํด๋ฆญํ๋ฉด ์๋์ ๊ฐ์ด ํ ํ๋ฆฟ์ ๋ง๋ค ์ ์๋ ๊ณต๊ฐ์ด ์๊ธด๋ค. ์ ์ฐํ ๋ชจ์์ ํธ์ง ๋ฒํผ์ ๋๋ฌ์ ๋ง๋ค์ด๋ ํ ํ๋ฆฟ์ ๋ฃ์ด์ฃผ๋ฉด ๋๋ค! ์ด๋ ์ฃผ์ํ ์ .. 2025. 4. 11. ๋คํธ์ํฌ ์ธํฐํ์ด์ค ์ญ์ ๊ฐ ์๋๋ ๋ฌธ์ ํด๊ฒฐํ๊ธฐ VPC ๋์๋ณด๋์์ ๋คํธ์ํฌ ์ธํฐํ์ด์ค ๋๋ฌธ์ VPC ์ญ์ ๊ฐ ์๋๋ ๋ฌธ์ ๊ฐ ์๊ฒผ๋ค. EC2 ์ ๋คํธ์ํฌ ๋ฐ ๋ณด์ -> ๋คํธ์ํฌ ๋ฐฉํ๋ฒฝ ๋ฆฌ์์ค ๊ทธ๋ฃน์์ํด๋นํ๋ ๋คํธ์ํฌ ์ธํฐํ์ด์ค๋ฅผ ์ญ์ ํ๋ ค๊ณ ํ์ผ๋, ์ฐ๊ฒฐ๋ ๋ฆฌ์์ค๊ฐ ์กด์ฌํ๋ค๋ ์ด์ ๋ก ๋คํธ์ํฌ ์ธํฐํ์ด์ค ์ญ์ ๊ฐ ๋ถ๊ฐํ๋ค. ํด๋น ๋คํธ์ํฌ ์ธํฐํ์ด์ค ์ ๋ณด๋ฅผ ์ฐพ์๋ณด๋ ์ค๋ช : **RDSNetworkInterface**์์ฒญ์ ID: amazon-rds์์ฒญ์ ๊ด๋ฆฌํ: ์ (YES)์ฐ๊ฒฐ ๋์: ์์ (์ง์ ์ธ์คํด์ค ID๊ฐ ์๊ณ , RDS๊ฐ ๊ด๋ฆฌ ์ค) ์ธ ๊ฒ์ ํ์ธ. ์ด ENI๋ ์๋์ผ๋ก ์ญ์ ํ ์ ์๊ธฐ ๋๋ฌธ์ ์ฐ๊ฒฐ๋ RDS์ธ์คํด์ค๋ ํด๋ฌ์คํฐ๋ฅผ ์ญ์ ํ์ง ์์ผ๋ฉด ์ ๊ฑฐ๊ฐ ๋ถ๊ฐ๋ฅํ๋ค.๋ฐ๋ผ์ RDS ์ธ์คํด์ค๋ฅผ ์ญ์ ํ๋ฉด, ENI๋ ์๋์ผ๋ก ์ญ์ ๋๋ค. ํน์ ํด๋น ๋ฐ์ดํฐ๋ฒ ์ด์ค ์์.. 2025. 3. 28. Spring Boot์์ Bean ์๋ช ์ฃผ๊ธฐ์ ์ด๊ธฐํ ๋ฐ ์๋ฉธ ๊ณผ์ ๋ชฉ์ฐจ๋น ์๋ช ์ฃผ๊ธฐ์ ์ฃผ์๋จ๊ณBean ์ด๊ธฐํ ๋ฐฉ๋ฒBean ์๋ฉธ ๊ณผ์ โ ๋น ์๋ช ์ฃผ๊ธฐ์ ์ฃผ์ ๋จ๊ณ๊ฐ์ฒด ์์ฑ -> @Component, @Bean๋ฑ์ ํตํด Bean ์์ฑ์์กด์ฑ ์ฃผ์ (DI, Dependency Injection) -> ํ์ํ ์์กด์ฑ์ด ์ฃผ์ ๋จ์ด๊ธฐํ ๊ณผ์ -> @PostConstruct, InitializingBean, init-method ๋ฑ์ ์ฌ์ฉํ์ฌ ์ด๊ธฐ ์ค์ ์ํ์ฌ์ฉ(Usage) -> ์ ์์ ์ผ๋ก ๋น์ด ์ฌ์ฉ๋จ์๋ฉธ(Destruction) -> @PreDestroy, DisposableBean, destroy-method ๋ฑ์ ์ฌ์ฉํ์ฌ ์ ๋ฆฌ ์์ ์ํGarbage Collection -> Spring ์ปจํ ์ด๋์์ ๋ ์ด์ ๊ด๋ฆฌํ์ง ์์ผ๋ฉด GC๋์์ด ๋จ โ Bean ์ด๊ธฐํ ๋ฐฉ๋ฒ1๏ธโฃ @PostCon.. 2025. 3. 10. API Gateway ์ Kafka โ API Gateway vs Kafka API Gatewayํด๋ผ์ด์ธํธ ์์ฒญ์ ์ ์ ํ ์๋น์ค๋ก ๋ผ์ฐํ ์ปจํธ๋กค๋ฌ ๋จ (HTTP ์์ฒญ์ ๋ฐ์์ ์๋น์ค๋ก ์ ๋ฌ)ํด๋ผ์ด์ธํธ๊ฐ ์ฌ๋ฌ ์๋น์ค์ ์ง์ ํต์ ํ๋ ๋ถ๋ด์ ์ค์ผ ๋Kafka (์ด๋ฒคํธ ๊ธฐ๋ฐ ํต์ )์๋น์ค ๊ฐ ์ง์ ํธ์ถ ์์ด ๋ฉ์์ง๋ฅผ ์ฃผ๊ณ ๋ฐ์์๋น์ค ๋จ (๋น์ฆ๋์ค ๋ก์ง ์ํ ํ ๋ฉ์์ง ์ ๋ฌ)๋น๋๊ธฐ ์ด๋ฒคํธ ์ฒ๋ฆฌ, ์๋น์ค ๊ฐ ๊ฐํ ๊ฒฐํฉ์ ์ค์ผ ๋ ๐ ๋ ๊ฐ์ง ๊ธฐ์ ์ ํจ๊ป ์ฌ์ฉํด๋ผ์ด์ธํธ๋ API Gateway๋ฅผ ํตํด ๋จ์ผ ์ํธ๋ฆฌํฌ์ธํธ์์ ์ ๊ทผ๋ด๋ถ ์๋น์ค ๊ฐ์๋ Kafka๋ฅผ ํ์ฉํ์ฌ ๋น๋๊ธฐ ํต์ (์: ์ฃผ๋ฌธ์ด ์๋ฃ๋๋ฉด order-service๊ฐ user-service์ ์๋ฆผ์ ๋ณด๋)์ฆ, Gateway + Kafka ์กฐํฉ์ ์๋ฒฝํ ๋ชจ๋ํ๋ฅผ ์ํ ์กฐํฉ! ๐ ์์ ํด๋ผ์ด์ธํธ๊ฐ .. 2025. 2. 26. ์ด์ 1 2 3 4 5 6 ๋ค์