전체 글 (17) 썸네일형 리스트형 전자 지갑 시스템 - 1 안녕하세요.이번 글에서는 전자 지갑 시스템를 구현하기 위한 내용을 학습한 것에 대해서 정리하도록 하겠습니다. 참고 했던 블로그 글은 아래와 같습니다.https://jm-baek.tistory.com/339 12장. 전자 지갑결제 플랫폼은 일반적으로 고객에게 전자 지갑 서비스를 제공하여 고객으로 하여금 지갑에 돈을 넣어 두고 필요할 때 사용할 수 있도록 한다. 예를 들어, 은행 카드에서 전자 지갑에 돈을 이체jm-baek.tistory.com 전자 지갑 시스템을 구현하기 위한 핵심 요구사항은 아래와 같다고 파악했습니다.데이터베이스 선택 : 전자 지갑 시스템은 대규모 트래픽의 잔액 이체 서비스를 수용하기 위해 적절한 분산 DB를 채택해야 한다.트랜잭션 처리 방안 : 이체 서비스란 서로 다른 사용자가 잔고를.. 결제 시스템 개발 프로젝트 - 1 안녕하세요.이번 글에서는 결제 시스템 개발을 위해 관련된 주제에 대해 학습하고 내용을 정리하였습니다.학습을 위해 참고한 링크는 아래와 같습니다. 결제 시스템에 대한 전체적인 프로세스와 네이버 페이에서 제공하는 결제 시스템에 대해서 정리한 내용을 설명하도록 하겠습니다. 11장. 결제 시스템결제 시스템이란?위키백과에 따르면 "금전적 가치의 이전을 통해 금융 거래를 정산하는데 사용되는 모든 시스템"이다.1단계: 설계 범위1. 기능 요구사항대금 수신(pay-in) 흐름: 결제 시스템이 판jm-baek.tistory.com 네이버페이 개발자센터응답 예 Response HTTP/1.1 200 OK { "code": "Success", "message": "", "body": { "businessNo": "220.. @Transactional Deep Dive 안녕하세요.이번 글에서는 스프링에서 제공하는 @Transactional 어노테이션에 대해서 탐구한 내용에 대해서 정리하고자 합니다. 메소드에 @Transactional 어노테이션을 붙이는 이유는 메소드 내의 서비스에 특정 트랜잭션 정책을 적용하기 위함입니다. 또한, isolation, propagation 등의 세부적인 설정을 통해서 트랜잭션 정책을 설정할 수 있습니다. 간단하게 어노테이션을 붙임으로써 복잡한 트랜잭션 설정을 할 수 있다는 점이 흥미롭다고 판단되었고, 자주 사용하는 어노테이션인 만큼 자세한 동작 원리와 적용된 기술 등에 대해서 깊게 파악하고자 했습니다. 1. AOP를 활용한 프록시 생성@Transactional에 사용된 첫번째 기술은 AOP입니다. Pointcut을 이용하여 @Transa.. Java Annotation 안녕하세요.이번 글에서는 자바의 어노테이션에 대해서 분석한 내용을 정리해보고자 합니다. 순서는 아래와 같습니다.Annotation의 동작 및 속성@Transactional이 인식되는 과정어노테이션의 기본 속성 및 주요 예시인 @Transactional 어노테이션의 인식 과정에 대해서 정리하였습니다. 1. Annotation의 동작 및 속성어노테이션은 클래스, 생성자, 메소드 등 특정 위치에 정의될 수 있으며, 정책에 따라서 컴파일 타임에 적용되거나 리플렉션 활용하여 런타임에 접근될 수 있습니다. 예시는 아래와 같습니다.@Target({ElementType.TYPE})@Retention(RetentionPolicy.RUNTIME)@Documented@Componentpublic @interface Conf.. Java ObjectMapper (Feat. RedisTemplate) 안녕하세요.이번 포스팅에서는 Java의 ObjectMapper에 대해서 분석한 내용을 공유하고자 합니다. ObjectMapper는 객체의 직렬화 및 역직렬화를 위해 사용되는 클래스입니다.Redis에 객체 저장을 시도하다가 LocalDateTime 직렬화에 실패하는 문제를 만나 ObjectMapper의 registerModule과 activateDefaultTyping 메소드를 활용하여 문제를 해결한 경험도 있고, ObjectMapper를 자주 사용하고 있기 때문에해당 기술이 어떻게 동작하기에 객체들을 자동으로 직렬화 및 역직렬화하는지 확인하고자 했습니다. 1. ObjectMapper의 동작 흐름ObjectMapper 클래스의 writeValueAsBytes 직렬화 메소드를 정리해보면, 아래와 같이 진행됩.. 스프링 Kafka Consumer Deep Dive - 1 안녕하세요.이번 글에서는 스프링에서 제공하는 Kafka Consumer에 대해서 분석한 내용을 소개하도록 하겠습니다. 아래 프로젝트를 진행하며 Kafka Consumer를 사용하였고, 그 과정에서 스프링에서 제공하는 Kafka Consumer의 종류와 동작 방식에 대한 호기심을 해결하기 위해서 소스와 공식문서를 분석하게 되었습니다.https://okkkk-aanng.tistory.com/38 HTTP 요청 순차 처리 솔루션 개발 프로젝트 - 1안녕하세요.이번 글에서는 HTTP 요청을 순차 처리하기 위한 솔루션을 개발한 개인 프로젝트에 대해서 소개하고자 합니다.이번 1편에서는 구현한 프로그램의 개요, 전체적인 구조 및 동작 방식,okkkk-aanng.tistory.com Spring 공식 문서에서는 Ka.. HTTP 요청 순차 처리 솔루션 개발 프로젝트 - 3 안녕하세요.이번 편에서는 프로그램 테스트 결과에 대해서 소개하도록 하겠습니다. 테스트 예제로는 1편에서 소개한 '아이템 주문' 서비스를 사용했습니다. '아이템 주문' 서비스의 흐름은 아래와 같았습니다. 아이템 주문 서비스를 아래와 같이 2가지 방법으로 구현하였습니다.방법 1. 비관적 락을 활용한 구현재고와 포인트에 Race Condition이 발생할 수 있으므로 이를 방지하기 위해 비관적 락을 사용함방법 2. 순차 처리 솔루션을 활용한 구현아이템 주문 요청을 하나의 이벤트 메세지로 간주하고, 이를 Kafka Partition에 발행하여 순차적으로 처리될 수 있도록 구현함 500명의 서로 다른 사용자가 동일한 상품을 1초에 3회 구매하며, 이를 10번 반복하는 것을 테스트한 결과는 아래와 같습니다. 표본.. HTTP 요청 순차 처리 솔루션 개발 프로젝트 - 2 안녕하세요.이번 글에서는 프로그램 동작 방식, 그리고 사용 방법에 대해서 소개하도록 하겠습니다.1. 프로그램 동작 방식각 인스턴스와 구성요소에 대한 설명은 아래와 같습니다.ServiceQueuingManager(A) : 클라이언트 요청의 순차 처리를 위한 매니저 인스턴스DeferredServiceQueuingEventHolder(A-1) : 클라이언트 요청에 비동기 응답을 위한 임시 객체 저장하는 인스턴스ServiceQueuingEventProducer(A-2) : 클라이언트 요청을 이벤트 스트림에 발행하는 것을 담당하는 인스턴스ServiceQueuingEventResultListener(A-3) : 클라이언트가 요청한 서비스의 결과 응답을 기다리는 인스턴스ServiceQueuingEventSubscri.. 이전 1 2 3 다음