본문 바로가기
반응형

DB설계2

CHAR vs VARCHAR 차이점 정리 SQL Server에서 테이블을 설계할 때, 데이터 타입을 신중하게 설정하는 것이 얼마나 중요한지 직접 체감한 경험이 있어 이를 공유해 봅니다.최근 제가 생성한 테이블에서 이상한 현상이 하나 발생했습니다.Code라는 컬럼에 "00001" 값을 넣었는데, 값을 조회하면 "00001 "처럼 뒤에 공백이 붙어 나타나는 것이었습니다. 문제 상황CREATE TABLE SampleTable ( Code CHAR(8), ...); 위와 같이 Code 컬럼을 CHAR(8)로 정의한 상태에서 "00001" 값을 입력하면, 조회 시 아래처럼 출력됩니다.00001 총 8자리 중 나머지 3자리를 공백으로 채워 보여주고 있었던 거죠. 원인 분석문제의 원인은 바로 CHAR 타입의 고정 길이 특성에 있습니다.CHAR(n).. 2025. 5. 16.
MyBatis에서 selectKey 사용은 왜 조심해야 할까? 서비스를 개발하다 보면 종종 DB의 PK 값을 직접 생성해야 하는 상황이 생긴다. 예를 들어 오라클에서는 sequence.nextval을 통해 유일한 값을 뽑아 쓰는 방식이 흔하다. MyBatis에서도 이런 요구를 처리하기 위해 태그를 제공한다. 하지만 사용량이 많아질수록 selectKey 방식은 심각한 문제를 일으킬 수 있다는 사실을 경험하면서, 이 글을 정리해 본다. 🔧 selectKey란?MyBatis의 는 insert 쿼리 실행 전에 별도의 쿼리를 먼저 실행해, 생성된 키 값을 객체에 세팅하는 방식이다. 예를 들면 다음과 같다. SELECT USER_SEQ.NEXTVAL FROM DUAL INSERT INTO USERS (ID, NAME, EMAIL) VALUES (#{id},.. 2025. 5. 8.
반응형