대머리개발자

평생 개발 공부를 해야하는 이유 본문

개발이야기/DataBase

평생 개발 공부를 해야하는 이유

대머리개발자 2024. 2. 19. 16:37
728x90

DB 컬럼의 타입도 ENUM을...와우...진작 이야기를 해줘야제..이미 한참 전에 있었겠지만 이제서야 알앗네..

create table if not exists Point
(
     id                      bigint                              AUTO_INCREMENT PRIMARY KEY comment 'ID',
     userId                  varchar(32)                                     not null comment '사용자 ID',
     amount                  INT NOT NULL,
     actionType              ENUM('EARN', 'REFUND', 'SPEND') NOT NULL,
     status                  ENUM('ACTIVE', 'EXPIRED') default 'ACTIVE'      not null comment 'point 상태',
     regDt                   datetime default current_timestamp()            not null comment '등록 일시'
);

 

너무 좋으다.!!

 

 

@Table("point")
data class Point(
    @Id
    var id: Long=0,
    @Column("userUid")
    var userUid: String="",
    @Column("actionType")
    var actionType: ActionType?=ActionType.EARN,
    var amount: Int=0,
    var status: EntityStatus?=EntityStatus.ACTIVE,
    @Column("regDt")
    var regDt: LocalDateTime?= null,
)  : Persistable<Long> {

    override fun getId(): Long {
      return id
    }

    override fun isNew(): Boolean {
        ...
    }
}

enum class ActionType {
    EARN, 'REFUND' , SPEND
}

enum class EntityStatus {
     ACTIVE , EXPIRED
}

 

값을 범위를 사전에 정하면 여러모로 아주 많이 편하다.!! 타입스크립트가 뜨는 이유가 다 있겠쥬.

미리 정한것이 아닌 것들이 오면 예외처리가 알아서 되고

어떤 값들이 들어가는지를 코드만 통해서 쉽게 파악 되고

유지보수가 쉽게 되고

... 되고

 

도태하지 말자!.. 익숙한 것들과의 결별하자.. 

고인물이 되지 말자!!

 

 

참고로 포인트 관련된 서비스를 만들고 있는데 핵심은 절대 업데이트는 없다는 것이다!!

Insert와 delete로 신뢰성을 높이자!

 

 

 

 

 

728x90

'개발이야기 > DataBase' 카테고리의 다른 글

DB 꽃은 튜닝이지!  (0) 2024.03.07
querydsl로 마이그레이션  (0) 2024.03.07
이벤트 참여자 무작위 추첨  (0) 2024.02.06
redisson 아직은...  (0) 2024.02.01
Mysql + R2DBC 쿼리 로그  (0) 2024.01.25