Spring

Spring에 관한 정보들을 공유합니

[Spring Webflux:2편] R2DBC

최근 Spring WebFlux와 R2DBC의 조합이 많은 주목을 받고 있다. 이들은 MVC와 JDBC의 전통적인 조합을 넘어서, 현대적인 리액티브 프로그래밍 환경에서 훨씬 우수한 성능을 발휘한다고 알려져 있다. 그렇다면 R2DBC란 정확히 무엇이며, 왜 Spring WebFlux와 잘 맞는 것일까? R2DBC? R2DBC(Reactive Relational Database Connectivity)는 리액티브 프로그래밍을 지원하는 새로운 형태의 데이터베이스 연결 드라이버로, 논블록킹(non-blocking) 방식을 채택하고 있다. Reactive Relational Database […]

[Spring Webflux:1편] 비동기 프로그래밍과 리액터

Thread의 역할 Thread는 프로세스 내에서 실행되는 실행 단위이며, 프로그램 코드를 실행한다. 각 Thread는 동시에 실행될 수 있으며, 멀티태스킹 환경에서 다양한 작업을 동시에 처리할 수 있다. Thread는 할당받은 작업을 수행하고, 작업이 완료되면 결과를 반환하거나 다음 작업을 진행한다. 위 활성상태 정보에서 나타나다시피, 하나의 애플리케이션 내에서 여러 프로세스가 존재할 수 있고, Thread는 프로세스의 메모리와 자원을 공유하면서 독립적인 실행 […]

[Spring Batch:1편] Batch 프로세스 & Spring Batch

1. Batch란 무엇인가? 배치 처리(Batch Processing)는 데이터 처리 작업을 한 번에 모아서 일괄적으로 수행하는 컴퓨팅 기법이다. 초기 컴퓨터 시대에는 입력된 일련의 작업을 순차적으로 처리하기 위해 배치 처리 시스템이 개발되었다. 이 시스템들은 주로 대량의 데이터를 처리하는 데 사용되었으며, 컴퓨터 자원의 효율적 사용을 가능하게 했다. 시간이 지남에 따라 배치 처리 기술은 더욱 발전하여, 금융, 헬스케어, 소매 등 […]

Apache Kafka의 전반적인 이해와 데이터 관리 전략

Kafka? Apache Kafka가 등장하기 전에는 서비스 간 데이터 교환 방식이 상당히 복잡했다. 각 서비스나 시스템이 직접적으로 데이터를 교환하려면, 서로 다른 인터페이스와 데이터 포맷을 맞추는 등의 추가 작업이 필요했기 때문이다. 이러한 접근 방식은 시스템 간의 강한 결합도(strong coupling)를 초래했고, 결과적으로 시스템 확장성과 유지보수성에 부정적인 영향을 미쳤다. Kafka가 도입된 이후로 상황이 크게 개선되었다. Kafka는 서비스 간의 데이터 […]

@Transient를 이용한 Mapstruct 매핑 간소화

배경 소상공인 앱을 개발하며 다양한 언어로의 번역 작업은 필수적이었다. 이 과정에서, 특정 테이블의 세 개 필드에 걸쳐 번역이 추가되면서, Entity와 DTO 간의 매핑 작업이 복잡해졌다. 👉다국어 지원을 위한 데이터베이스 설계와 Spring Boot 구현 전략 처음에는 Translation Entity에서 번역 값을 가져오는 방식으로 작업했지만, 해당 값이 없을 경우 대체 언어로 전환하는 추가 작업이 필요했다. 이러한 과정이 비즈니스 […]

다국어 지원을 위한 데이터베이스 설계와 Spring Boot 구현 전략

배경 소상공인 예약을 위한 앱을 만들고 있는 중에, 번역 문제에 부딪혔다. 될 수 있으면 페이지 번역 기능을 활용해 프론트엔드에서 처리하려 했으나, 5개국 언어를 완벽하게 번역하는 데는 여러 어려움이 있었다. 제공하는 제품의 이름을 페이지 번역기로 돌렸을 때, 제품이 무엇인지 알아보기 힘들 정도로 번역이 잘 되지 않았으며, 추가적으로 매장 이름은 번역하지 않는 것이 좋겠다는 요청도 받았다. 이에 […]

Spring Entity 상속 전략 회고

🗣 JPA로 개발하는 대부분에서 조인은 거의 안씁니다. 단순 쿼리만 하거나 별도로 다른 것으로 조회합니다. DB가 물리적으로 나뉘어져 있어서 데이터 소스가 하나가 아니기 때문입니다. 대규모 쇼핑몰로 치면 상품 재고 팀이 있고 회원 팀이 있고 결제 팀이있다면 결제 시 상품 재고, 회원 팀의 API를 통해서 값을 가져와야하는데 분리된 DB에서 JOIN을 할 수 있을까요? 현재 테이블 상태를 살펴보면, […]

Scroll to top