2024/11 2

mariadb 쿼리 성능 개선 및 MSA 환경에서의 트랜잭션

현재 항해에서 진행중인 E-커머스 프로젝트에서 대용량 트래픽 & 데이터 처리를 위해 아래와 같은 작업을 진행하려 합니다. 자주 사용되거나 복잡한 쿼리에 인덱스 적용트랜잭션 범위 대한 이해와 서비스 확장 및 분리시의 트랜잭션의 한계 파악기존 로직에 영향도를 주지 않고 이벤트기반 메시지 발행  쿼리 성능 테스트 현재 제 프로젝트는 아주 간단한 기능만이 구현되어 있어 복잡한 쿼리는 없고 자주 사용되더라도 그 데이터의 양이 적어 의미있는 성능개선 지표를 얻기가 힘든 상태이기에 테스트를 위한 더미 데이터를 삽입하여 진행하겠습니다. 대용량까지는 아니지만 유의미한 성능 측정은 가능한 1건의 더미 상품 정보를 생성하였습니다.DELIMITER //CREATE PROCEDURE insert_products()BEGIN ..

개발/항해99 2024.11.15

[Spring, Redis, Cache] @Cacheable 적용

Cache애플리케이션을 개발하다 보면 자주 "쓰지는" 않지만 자주 "읽는" 데이터들이 있습니다. 어차피 변하지 않는 값이니 정적 리소스처럼 DB 조회나 기타 연산을 하지 않고 그냥 갖고 있는 값을 보여주면 안 될까?라는 생각을 한 번씩은 하게 됩니다. 작은 토이 프로젝트라면 몰라도 수많은 사람들이 사용하는 B2C 서비스일수록 서버에 대한 부하 때문에 더 느끼곤 하죠. 이럴 때 캐시는 아주 유용하게 사용할 수 있습니다.  Spring CacheSpring에서는 3.1 버전부터 이 캐시를 쉽게 사용할 수 있도록 캐시 관련 어노테이션을 지원합니다. 해당 어노테이션 붙은 메서드는 Java 메서드에 캐싱을 적용하여 이후 호출에서는 실제 메서드는 실행하지 않고 캐시 된 결과만 반환합니다.  단, 다중 스레드나 다중..

개발/항해99 2024.11.07