본문 바로가기

Programming & Platform/SQL4

멱등(Idempotent) 처리와 UPSERT - 중복 요청에도 안전한 데이터 쓰기 완성 온라인 결제 버튼을 한 번만 눌렀다고 생각했는데, 인터넷이 끊겨 다시 눌러야 했던 경험이 있습니다. 그런데 영수증은 하나만 나와야 합니다. 이렇게 “같은 요청이 여러 번 들어와도 결과는 한 번 수행한 것과 같아야 한다”는 원리를 멱등이라 합니다. 개발에서는 이 멱등을 데이터베이스의 UPSERT(존재하면 업데이트, 없으면 삽입)와 결합해 중복 결제, 중복 주문, 중복 포인트 적립을 막습니다. 이 글은 비전공자도 이해할 수 있는 비유부터 시작해, 개발자가 바로 적용할 수 있는 SQL 패턴과 시스템 설계 팁까지 한 번에 정리합니다. 멱등(Idempotent) 처리와 UPSERT - 중복 요청에도 안전한 데이터 쓰기 완성 멱등은 왜 중요한가 실생활 비유로 이해하는 멱등엘리베이터 호출 버튼을 여러 번 눌러도 엘리.. 2025. 12. 14.
ORA-12838 오류 해결법 - 병렬 작업 후 SELECT 오류? 이 한 줄이면 해결됩니다 Oracle에서 병렬 DELETE나 UPDATE 후 바로 SELECT 문을 실행했더니 `ORA-12838: 병렬로 수정한 후 객체를 읽거나 수정할 수 없습니다` 오류가 발생했다면, 너무 놀라지 마세요. 이 오류는 데이터베이스가 망가졌거나 쿼리 문법이 잘못된 게 아니라, 병렬 작업 후 커밋을 생략한 경우에 자주 나타나는 전형적인 상황입니다. 이 글에서는 그 원인과 해결법, 그리고 자주 묻는 질문까지 모두 정리해드립니다. ORA-12838 오류 해결법 - 병렬 작업 후 SELECT 오류? 이 한 줄이면 해결됩니다 ORA-12838 오류란 무엇인가? 병렬 작업 후 COMMIT 없이 테이블을 다시 조회하면 발생`ORA-12838`은 병렬로 DML(데이터 수정) 작업을 수행한 후 트랜잭션을 커밋하지 않고 같은 .. 2025. 5. 19.
SQL 쿼리로 상품 정보 조회하기 - 실전 가이드 SQL 쿼리로 상품 정보 조회하기 - 실전 가이드여러분의 소비 습관, 특히 최신 기술과 생활의 편리함을 추구하는 여러분의 마음을 잘 알고 있습니다. 제품을 선택할 때, 가격과 기능을 비교하며 가장 합리적인 선택을 하고 싶어하죠. 저도 그런 고민을 매번 하며, 여러분과 같은 선택의 어려움을 겪고 있습니다. 그래서 오늘은 여러분이 원하는 정보를 쉽고 빠르게 찾을 수 있도록 SQL 쿼리를 통해 상품 테이블을 조회하는 방법을 소개하겠습니다. 이 글을 통해 여러분의 고민을 조금이라도 덜어드릴 수 있길 바랍니다. 자, 그럼 시작해볼까요? SQL 쿼리로 상품 정보 조회하기  여러분이 구매하고 싶은 상품들의 정보가 있는 products(상품) 테이블이 아래에 있습니다.  idproduct_namepricecategor.. 2024. 6. 6.
MySQL 저장된 시간이 JavaScript에서 조회한 시간 다를 때 해결 방법 MySQL 저장된 시간이 JavaScript에서 조회한 시간과 다를 때 해결 방법 MySQL에 저장한 시간을 JavaScript에서 조회할 때 다르게 나타는 문제가 발생하였습니다. 이번 글에서는 MySQL에 저장된 시간과 JavaScript 시간대가 다른 이유와 해결 방법에 대해 소개하겠습니다. MySQL시간 JavaScript에서도 맞추려면 문제 상황 MySQL 데이터에는 Fri Dec 29 2023 00:00:00 GMT+0900 (한국 표준시)와 같이 저장되어 있지만 JavaScript에서 이를 조회하면 2023-12-28T15:00:00.000Z와 같이 시간이 변경된다는 문제가 발생합니다. 이는 MySQL과 JavaScript 간의 시간대 차이 때문에 발생하는 문제입니다. 문제 해결 방법 이러한 .. 2024. 1. 3.