본문으로 바로가기

Hello World

현재위치 :: HOME BLOG CATEGORY SEARCH ARCHIVE TAGS MEDIA LOCATION GUESTBOOK

네비게이션

  • 홈
  • 태그
  • 미디어로그
  • 위치로그
  • 방명록
관리자
  • 블로그 이미지
    honinbo

    링크추가
  • 글쓰기
  • 환경설정
  • 로그인
  • 로그아웃

콘서트 예약 서비스 트랜잭션 설계 전략

기존 로직의 문제점 및 관심사 분리 현재 콘서트 예약 서비스는 모놀로식 아키텍처 형태로 개발되어있고, 모든 도메인의 기능이 하나의 서버에 존재한다.만약 특정 서비스 메소드에서 다수의 도메인 트랜잭션 처리가 필요한 상황이라고 생각해보자. 일단 코드를 읽기 힘들뿐만 아니라메소드 Latency도 느려질 것이다. 그리고 예를 들어 아래와 같은 로직이 있을경우@Transactionalpublic void 상품주문() { 상품재고차감(); // 1 주문정보생성(); // 2 사용자포인트차감(); // 3 네이버페이결제();}만약 네이버페이결제 실행시 예외가 발생한다면 어떻게 될까? 네이버페이 같은 Third Party API 에서 알 수 없는 에러로 인해 예외를 발생시킨다면 1, 2, 3번 로직도 Rollback이..

항해플러스 2024. 5. 16. 01:21

조회수 카운트 동시성 이슈 정리

현회사 서비스에서 포스트라는 도메인이 존재한다. 포스트의 조회수는 유저별로 하나씩 더해진다. 유저의 포스트 조회 로그 관련 테이블은 아래와 같이 구성되어 있다. CREATE TABLE `user_view_creator_posts` ( `id` int(11) NOT NULL AUTO_INCREMENT, `user_id` int(11) NOT NULL, `creator_post_id` int(11) NOT NULL, `created_at` datetime NOT NULL, PRIMARY KEY (`id`), UNIQUE KEY `index_user_view_creator_posts_on_user_id_and_creator_post_id` (`user_id`,`creator_post_id`), KEY `ind..

백엔드/Java 2023. 11. 19. 00:37

MySQL Master, Slave Replication(feat. SpringBoot)

실제 현업에서는 Master, Slave로 이중화를 기본으로 세팅되어 있는걸 많이 보았다. Master는 Write용도, Slave는 Read용도로 써서 트래픽을 분산 처리하는 장점정도는 알고있지만, 상세한 내용에 대해서는 알지 못했다. 그래서 기존 토이 프로젝트에 MySQL Replication(복제) 공부도 할 겸 Master, Slave로 이중화 작업을 시도해보았다. 일단 MySQL Replication의 동작 원리에 대해서 우선 살펴보자. MySQL의 Replication은 비동기 복제 방식을 사용하고있다. - Master에서 변경이 있으면 이를 바이너리 로그에 저장하고 이를 비동기적으로 Slave에게 전송한다. - Slave에서는 이를 받아 릴레이 로그에 저장한 후 변경사항을 스토리지 엔진에 반..

백엔드/Spring 2023. 1. 11. 01:11
  • 이전
  • 1
  • 2
  • 3
  • 4
  • ···
  • 34
  • 다음

사이드바

NOTICE

  • 전체 보기
MORE+

CATEGORY

  • 분류 전체보기 (102)
    • 프론트엔드 (13)
      • HTML CSS (6)
      • Javascript (3)
      • Vue.js (3)
      • Ajax (1)
    • 백엔드 (40)
      • Java (5)
      • JSP (5)
      • Spring (23)
      • Nodejs (4)
      • Python (2)
      • JPA (1)
    • 데이터베이스 (6)
    • Linux (2)
    • Git (3)
    • 알고리즘&자료구조 (1)
    • 코딩테스트 (12)
    • 컴퓨터공학 (5)
    • 유용한 툴 및 사이트 (4)
    • 알짜지식 (3)
    • 주저리주저리 (0)
    • 삽질 정리 (10)
    • 회고 (1)
    • 항해플러스 (2)

RECENTLY

  • 최근 글
  • 최근 댓글

최근 글

최근댓글

Trackback

TAG

  • 취업
  • 이직
MORE+

ARCHIVE

CALENDAR

«   2026/09   »
일 월 화 수 목 금 토
1 2 3 4 5
6 7 8 9 10 11 12
13 14 15 16 17 18 19
20 21 22 23 24 25 26
27 28 29 30

LINK

VISITOR

오늘
어제
전체
  • 홈으로
  • 방명록
  • 로그인
  • 로그아웃
  • 맨위로
SKIN BY COPYCATZ COPYRIGHT Hello World, ALL RIGHT RESERVED.
Hello World
블로그 이미지 honinbo 님의 블로그
MENU
  • 홈
  • 태그
  • 미디어로그
  • 위치로그
  • 방명록
CATEGORY
  • 분류 전체보기 (102)
    • 프론트엔드 (13)
      • HTML CSS (6)
      • Javascript (3)
      • Vue.js (3)
      • Ajax (1)
    • 백엔드 (40)
      • Java (5)
      • JSP (5)
      • Spring (23)
      • Nodejs (4)
      • Python (2)
      • JPA (1)
    • 데이터베이스 (6)
    • Linux (2)
    • Git (3)
    • 알고리즘&자료구조 (1)
    • 코딩테스트 (12)
    • 컴퓨터공학 (5)
    • 유용한 툴 및 사이트 (4)
    • 알짜지식 (3)
    • 주저리주저리 (0)
    • 삽질 정리 (10)
    • 회고 (1)
    • 항해플러스 (2)
VISITOR 오늘 / 전체
  • 글쓰기
  • 환경설정
  • 로그인
  • 로그아웃
  • 취소

검색

티스토리툴바