오픈소스에 내이름 박기

2025. 7. 16. 21:53·김동훈

hypersistence-utils 오픈소스에 내 PR이 merge되었다.

hypersistenc-utils는 Vlad Mihalcea 가 관리하는 JPA(hibernate)을 사용하면서 겪는 불편함을 해소하기 위한 유틸리티 오픈소스이다. hibernate 6.x대와 7.x 대 모두 지원하고 있다. 그리고 hypersistence-optimizer도 운영중인데, hibernate을 사용할 때 여러 성능 이슈를 감지해주는 도구이다. 간단하게는 EAGER 로딩 전략을 감지해주기도 한다. Vlad Mihalcea는 자바 챔피언이자, hibernate 고수인데 이 분이 발간한 high-performance-java-persistence 라는 책이 있다. 구글에 서치 해보면 많은사람들이 이 책을 좋게 평가하고 있고, hibernate에 깊은 이해를 경험할 수 있다고 한다. 이번에 향로님이 인프런에 Vlad Mihalcea의 강의도 한국어 더빙판으로 제공하게 협업을 진행하셔서 최근 공부중인 테스트 코드와 TDD을 어느정도 마무리하면 high-performance-java-persistence책과 함께 수강해볼 예정이다. 기회가 된다면, 다음 스터디에서 진행해볼 듯 싶다.


오픈소스에 기여하게 된 이유

우선 내가 기여한 이슈를 간략히 설명하자면, @Tisd 은 @Id기반 컬럼에만 매핑되는 어노테이션이었다. (Tsid는 아래에서 설명하겠다) PrimaryKey외에 일반 컬럼에서도 @Tsid 을 적용하고 싶었고, 이에 대한 이슈가 이미 올라와있었다. 몇가지 확인을 한 뒤, ValueGenerationType 을 통해 구현하였다.

Tsid 란?

Time-Sorted Unique Identifiers 의 약자로 ULID와 Snowflake의 개념이 섞인 id생성 전략이다.
총 64비트를 사용하여 첫 42비트는 timestamp 값을, 하위 10비트는 node를 그리고 마지막 12비트는 counter값으로 사용하여 22비트의 random 비트를 사용하여 고유한 값을 제공한다. 물론 64비트를 사용하는 만큼 ULID보다는 충돌 가능성이 높다. 1ms 내에서 약 420만개(2^22)의 유일성을 보장한다. 자세한 설명과 사용법은 여기를 참고하거나, 구글 서치하면 많은 자료를 얻을 수 있다.

SnowFlake Id 나 Tsid 이 방식 모두 시간 역행에 대한 취약점?이 존재한다. 즉, 과거의 시간으로 id을 생성하게 되면 충돌이 발생하게 된다.
00-01-01 01 01 01
25-01-01T01:01:01.111111

오픈소스에 기여하며

'김동훈' 카테고리의 다른 글

돌연변이 테스팅  (0) 2025.09.15
[Line corp] Kotlin-jdsl commit 쪼개기-1  (0) 2025.08.31
[Effective Software Testing] chapter_2  (2) 2025.08.30
Springboot NamingStartegy  (2) 2025.06.25
3기 활동ㅋㅋ  (2) 2025.06.11
'김동훈' 카테고리의 다른 글
  • [Line corp] Kotlin-jdsl commit 쪼개기-1
  • [Effective Software Testing] chapter_2
  • Springboot NamingStartegy
  • 3기 활동ㅋㅋ
이제부터100도씨
이제부터100도씨
zglzgl 님의 블로그 입니다.
  • 이제부터100도씨
    지글지글
    이제부터100도씨
  • 전체
    오늘
    어제
    • 분류 전체보기 (22)
      • 김동훈 (6)
      • 김동주 (3)
      • 김보근 (6)
      • 임동윤 (1)
      • 임이삭 (4)
      • 오성찬 (2)
  • 블로그 메뉴

    • 홈
    • 태그
    • 방명록
    • 스터디 소개글
  • 링크

  • 공지사항

    • 지글지글 3기 공지사항
    • 지글지글 4기 공지사항
  • 인기 글

  • 태그

    rust
    ELB
    EC2
    coding
    스터디 3기
    zgl
    Gorilla
    개발
    Web
    selenium
    Editor
    Python
    웹크롤링
    in-dark
    IT
    cardgorilla
    Loading
    3기
    fix
    chat
    로드밸런서
    Younique
    bug
    cursor
    Tool
    AWS
    error
    AI
    Card
    js
  • 최근 댓글

  • 최근 글

  • hELLO· Designed By정상우.v4.10.3
이제부터100도씨
오픈소스에 내이름 박기
상단으로

티스토리툴바