Skip to content

TaehoLEEKR/BANK_SERVER_API

Repository files navigation

BANK_SERVER_API


DDL

create table account
(
    ulid           varchar(26)                              not null
        primary key,
    user_ulid      varchar(26)                              not null,
    balance        decimal(15, 2) default 0.00              not null,
    account_number varchar(100)                             not null,
    is_deleted     tinyint(1)     default 0                 not null,
    created_at     timestamp      default CURRENT_TIMESTAMP null,
    updated_at     timestamp      default CURRENT_TIMESTAMP null on update CURRENT_TIMESTAMP,
    deleted_at     timestamp                                null,
    constraint account_number
        unique (account_number)
);

create table user
(
    ulid         varchar(26)                         not null
        primary key,
    username     varchar(50)                         not null,
    access_token varchar(255)                        null,
    created_at   timestamp default CURRENT_TIMESTAMP null,
    constraint username
        unique (username)
)

동시성 Redis 사용

Transaction 관리

  • Spring Boot 에서는 @Transactional 을 사용하여 트랜잭션 처리가 가능하다
  • 스프링부트 @Transactional 은 한 클래스에서 다른 클래스에 트랜잭션을 처리할때 자기순회 문제가 발생 할 수 있음.

장점 :

트랜잭션 추상화: 비즈니스 로직과 트랜잭션 로직을 분리하여 관심사를 명확히 분리할 수 있음.

명시적인 역할 구분: run()은 쓰기 트랜잭션, readOnly()는 읽기 전용 트랜잭션으로 구분되어 의도를 명확하게 표현할 수 있음.

확장성: 트랜잭션 실행 전/후에 로깅, 모니터링 등의 공통 기능을 손쉽게 삽입 가능.

유연한 전략 교체: JPA 외에 다른 트랜잭션 매커니즘으로의 교체가 쉬워짐 .

AOP 사용

About

은행 서버 API 연습

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

 
 
 

Contributors