개발 경험 기록/데이터베이스2 채용 과제 테스트 중 디지털 치료제 처방 코드 생성 시스템에서 팬텀 삽입 문제 해결하기 이번 글에서는 최근 채용 과제 테스트로 처방코드 생성 API 개발하던 도중 발견한 팬텀 삽입(Phantom Insert) 문제와 이를 데코레이터 패턴과 트랜잭션 격리 수준을 통해 해결한 경험을 공유하려고 합니다. [ 채용 과제 리포지토리 ] - https://github.com/shiniseong/BeyondTest문제 상황: 처방코드 중복 생성채용 과제로 진행한 프로젝트에서 의료진이 환자에게 처방코드를 발급하는 API를 개발하고 있었습니다.요구사항은 다음과 같았습니다.처방코드는 영문자 대문자 4자, 숫자 4자로 구성된 총 8자리 랜덤 코드처방코드는 중복되지 않아야 함발급 이력이 데이터베이스에 저장되어야 함처음에는 다음과 같이 간단하게 구현했습니다.override suspend fun createPres.. 2025. 3. 24. PRIMARY KEY, 칼럼의 속성일까 테이블의 속성일까? 최근 제가 개발한 DDL-DSL 라이브러리에 ALTER 문 지원을 추가하는 작업을 진행하면서, 어찌보면 당연히 알아야할 지식이지만, 부끄럽게도 PRIMARY KEY 제약조건에 이제야 좀 더 명확히 알게 된 부분이 있어 기록해봅니다.자칫 오해할 수 있는 PRIMARY KEY의 성격대부분 테이블을 생성할 때 다음과 같이 PRIMARY KEY를 지정합니다.CREATE TABLE users ( id INTEGER PRIMARY KEY, name VARCHAR(100), email VARCHAR(200));또는 복합키를 사용할 때는 이렇게 합니다.CREATE TABLE orders ( order_year INT, order_sequence INT, customer_id INT, .. 2025. 1. 17. 이전 1 다음 728x90