목록전체 글 (287)
개발자는 기록이 답이다
![](http://i1.daumcdn.net/thumb/C150x150.fwebp.q85/?fname=https://blog.kakaocdn.net/dn/5gx3A/btsFwCdY0i8/kkxzi3sCPLj2pvPD6dLDKK/img.png)
2024.02.29 - [Spring/트러블 슈팅] - 쿠폰 발급에 대한 동시성 처리 (1) - synchronized, pessimisti Lock, optimistic Lock 쿠폰 발급에 대한 동시성 처리 (1) - synchronized, pessimisti Lock, optimistic Lock1. 데이터 모델링 쿠폰 발행 기능을 구현하기 위해 Coupon 테이블에 지금까지 발행된 쿠폰 개수(issued_quantity)를 반정규화하는 방식을 사용했습니다. CREATE TABLE coupon ( id BIGINT UNSIGNED AUTO_INCREMENT PRIMARYstrong-park.tistory.com 지난 시간에 이어서 동시성 제어하는 방법에 대한 다른 방법들을 알아보겠습니다. 레코드 ..
![](http://i1.daumcdn.net/thumb/C150x150.fwebp.q85/?fname=https://blog.kakaocdn.net/dn/ZPfxE/btsFsos2D7Z/ySHoZTO3PorlOsF31gzzsk/img.png)
Spring WebFlux의 Functional Endpoints Spring WebFlux는 함수형 엔드포인트(Functional Endpoints)를 통해 간결하고 유연한 방식으로 웹 애플리케이션을 개발할 수 있는 기능을 제공합니다. 이러한 함수형 엔드포인트는 기존의 어노테이션 기반 컨트롤러 대신 함수형 스타일로 HTTP 엔드포인트를 정의하는 방법입니다. 1. 함수형 엔드포인트의 장점 선언적인 라우팅: 함수형 엔드포인트를 사용하면 라우팅 규칙을 코드로 선언적으로 정의할 수 있습니다. URL 패턴 및 HTTP 메서드에 대한 규칙을 명시적으로 정의하므로 가독성이 뛰어나며 라우팅이 어떻게 이루어지는지 쉽게 이해할 수 있습니다. 컴파일 타임 검증: 함수형 엔드포인트는 컴파일 타임에 라우팅 규칙이나 핸들러에 ..
![](http://i1.daumcdn.net/thumb/C150x150.fwebp.q85/?fname=https://blog.kakaocdn.net/dn/bShpgc/btsFr9v1WdO/2LUt0m0bou0Fts4ABdiw0k/img.png)
DispatcherHandler는 Spring WebFlux에서 중요한 역할을 하는 핸들러 중 하나입니다. 이는 HTTP 요청을 처리하고 적절한 핸들러(Handler)로 라우팅하는 역할을 수행합니다. 주로 DispatcherHandler는 프레임워크 내부에서 사용되며, 직접적으로 사용하기보다는 라우터 및 핸들러 매핑과 함께 사용됩니다. DispatcherHandler의 주요 역할 라우팅 및 핸들러 매핑: DispatcherHandler는 URL 패턴 및 HTTP 메서드와 관련된 핸들러 매핑을 처리합니다. 요청이 들어오면 해당 요청을 처리할 핸들러를 찾아 라우팅합니다. 핸들러 실행: 라우팅된 핸들러를 실행하여 실제로 요청을 처리하고 응답을 생성합니다. 핸들러는 주로 WebHandler나 HandlerFun..
![](http://i1.daumcdn.net/thumb/C150x150.fwebp.q85/?fname=https://blog.kakaocdn.net/dn/dfNrjh/btsFm8kbeMH/qG0mpNMUwHwzW2cNJOUKJ1/img.png)
1. 데이터 모델링쿠폰 발행 기능을 구현하기 위해 Coupon 테이블에 지금까지 발행된 쿠폰 개수(issued_quantity)를 반정규화하는 방식을 사용했습니다.CREATE TABLE coupon( id BIGINT UNSIGNED AUTO_INCREMENT PRIMARY KEY COMMENT '쿠폰 식별자', event_id BIGINT UNSIGNED NOT NULL COMMENT '이벤트 식별자', discount_type VARCHAR(40) NOT NULL COMMENT '정액, 정률 등', discount_rate BIGINT UNSIGNED NULL COMMENT '정률 할인', d..