2024/11/23 3

환율 변동과 환전 시스템 구현 (Redis 캐싱으로 성능 개선)

새로 추가한 시스템은 환율 시스템​게임중에 얻는 리소스 아이템중에 뭐 청나라에서 유입된 마재은이나 달러, 파운드화를 환전하는 시스템을 구현했음.​은전을 사용하면 사라지면서 폭죽과 함께 이쁘게 얼마 환전했는지 알려줌. 근데 웹서버가 닫혀있는 상태면 환전 자체가 되지 않음...​위 사진은 웹서버에서의 관리자 페이지. 실시간으로 환율을 통제하고 확인함ㅇㅇ 각 재화마다 다른 변동비를 가지고 있으며 정각을 기준으로 매일마다 크거나 작게 변동이 생김.​실시간으로 화폐 환율을 볼 수 있는 패널을 제공해서 보고 비싼 녀석 팔 수 있도록 의도했슴컴맹이라 이쁜 이펙트랑 이런거 스샷 못찍어서 그냥 로그창 보여주는걸로 만족ㅠㅠㅠ​​나중에는 은화를 불법으로 찍어내는 등 근대경제사에 있어서 흥미로운 조선의 혐성질에 대해서 이야기..

project/resistance 2024.11.23

Spring의 비동기 프로그래밍 @Async에 대해 알아보자

@EnableAsync, @Async 는 Spring에서 비동기로 작업을 처리하도록 쉽게 도와주는 어노테이션이다.​왜 ThreadPoolTaskExecutor를 등록해야 할까?Spring의 기본 비동기 처리 Executor는 매번 새로운 쓰레드를 생성하기에, 쓰레드풀을 만들어두면 성능 개선​​@EnableAsync 어노테이션을 들어가보자.​org.springframework.core.task.SimpleAsyncTaskExecutor 빈을 찾는다.does not reuse threads즉, 재사용하지 않고 매번 쓰레드를 생성한다.​​​쓰레드를 생성하는 작업은 매우 비용이 많이 드는 작업이라 쓰레드풀로 성능을 개선해보자​CPU Bound 작업보단 IO bound가 대부분인 애플리케이션 로직​​Java의 E..

backend 2024.11.23

Axon와 Kafka는 어떻게 다른가?

작업하는 프로젝트에서 CQRS 패턴을 이용하고자 EDA를 고민하던 차에, Axon Server를 두지 않고 기존에 운용하던 Kafka를 통해 이벤트를 전달하도록 하기 위해 axon-kafka를 공부했다. ​Axon Server는 메시지 브로커로 CQRS 패턴이나 이벤트 소싱 기반 아키텍처 구현을 지원하는 플랫폼이다. 얼핏 보면 Kafka와 비슷한 역할로 보이는데, 이벤트 소싱(Event Sourcing)을 중심으로 알아보자.​Event-Driven Architecture이벤트 생성 및 처리를 중심으로 애플리케이션 구축을 지지한다. 이는 주로 실시간, 분산 및 확장성에서 반응성이 있어야 하는 최신 서비스에 따라 주도되어 왔다.​ Event SourcingDDD(Domain-Driven Design)에서 시..

backend 2024.11.23