이 페이지의 스니펫

"DO 블록 문법이 뭐였지?", "윈도우 함수로 그룹 내 최신 행만?" — 손에 안 붙는 SQL 패턴을 모았습니다. PostgreSQL을 중심으로, 함수·프로시저 같은 저장 로직부터 데이터 이관 실무 3종 세트까지 — 검색보다 빠르게 시작점을 제공합니다.

스니펫은 빈칸 채우기 폼으로 제공됩니다 — 변수명·값처럼 바뀌는 부분이 입력칸으로 표시되고, 채우면 코드에 실시간 반영돼 완성본을 복사합니다. 채운 값은 브라우저 안에서만 쓰이고 외부로 전송되지 않습니다.

갈래별 구성

갈래담긴 것
저장 로직함수·프로시저·익명 블록(DO $ … $) — 임시 배치·점검 스크립트
조회 패턴윈도우 함수(그룹 내 순위·최신 행), 재귀 CTE(계층 조회), 데이터 변경 CTE
데이터 이관트랜잭션+TEMP TABLE 매핑 → 이관 DML → 사전 점검 3종 — 실수하면 못 돌리는 작업의 안전 골격
배열 컬럼추가/제거·중복 정리·NULL 안전 처리·ANY/@> 검색
대량 처리다건 INSERT, ON CONFLICT DO NOTHING, INSERT SELECT
DDL테이블·인덱스·코멘트 정형 문

이관 3종 — 왜 세트인가

데이터 이관은 "실행 후 되돌릴 수 없는" 작업입니다. 그래서 이 세트는 순서가 설계입니다: ① 사전 점검으로 매핑 누락·유니크 충돌 예정을 먼저 세고 ② 트랜잭션 안에서 TEMP TABLE로 매핑을 구체화한 뒤 ③ 매핑 조인으로 이관 DML을 실행합니다. 각 카드의 주의점에 "세미콜론 하나로 전체 행 UPDATE" 같은 실제 사고 패턴이 적혀 있습니다.

활용 예 — 이런 순간에

카드 활용 팁

사용 순서

자주 찾는 카드 미리보기

상황해당 카드
그룹별 최신 1건만ROW_NUMBER() OVER (PARTITION BY …)
조직도·메뉴 트리 조회재귀 CTE
있으면 무시하고 넣기INSERT … ON CONFLICT DO NOTHING
배열 컬럼에 값 추가·검색배열 연산 3종 카드
이관 전 안전 점검매핑 누락·유니크 충돌 사전 점검

스니펫과 실행 사이의 거리

SQL 스니펫은 복사가 끝이 아니라 시작입니다 — 우리 스키마의 컬럼명, 데이터 분포, 인덱스 상황에 맞춰 조정하는 단계가 반드시 남습니다. 특히 윈도우 함수·재귀 CTE는 데이터가 커질 때의 동작이 환경마다 달라, 개발 DB에서 실행 계획을 확인하는 습관이 안전합니다. 카드는 문법 검색 시간을 없애주고, 성능 검증 시간은 원래 자리에 남겨 둡니다.

이관 3종 세트는 순서 자체가 안전장치입니다 — 사전 점검을 건너뛰고 DML부터 실행하고 싶은 급한 날일수록, 점검 쿼리 두 개가 잡아주는 사고의 크기를 기억하세요.

폐쇄망에서의 가치

DB 문법은 유독 "검색하면 바로 나오는" 지식이라 폐쇄망에서 가장 아쉬운 영역입니다 — 이 카드들이 반입용 확장판으로도 제공되는 이유입니다. 윈도우 함수·CTE처럼 구조가 손에 안 붙는 문법일수록, 검증된 뼈대에서 시작하는 것과 백지에서 짜는 것의 차이가 큽니다.

자주 묻는 질문

채운 테이블명·값이 전송되나요?
아니요. 채우기는 브라우저 안에서만 이루어집니다.
Oracle·MySQL 카드도 있나요?
중심은 PostgreSQL이고, 방언 차이는 주의점에 표기합니다 — 타 DB는 문법 확인 후 쓰세요.
이관 스니펫을 그대로 실행해도 되나요?
아니요 — 테이블명·조건을 채운 뒤 사전 점검 카드부터 순서대로, 가능하면 개발 DB에서 먼저 돌리세요.
MyBatis 매퍼에 넣을 때는요?
동적 SQL 태그가 필요한 형태는 HTML·XML 토글의 MyBatis 카드가 담당합니다.
전량 목록은 어디서 보나요?
레퍼런스 페이지(/ref/sql)에 전체가 있습니다.
실행 계획 보는 법도 알려주나요?
카드 범위는 SQL 문형까지입니다 — 실행 계획 해석은 DB 문서·팀 시니어의 영역으로 남겨 둡니다.

함께 보는 페이지

전량 덤프는 DB 레퍼런스에서. MyBatis 동적 SQL은 HTML·XML 스니펫, 서버 코드 짝은 Java 스니펫이 잇습니다. 실행 SQL 재조립·IN절 생성은 자매 앱 DosqlKit이 전문입니다.

DoniKit(도니킷) — 자주 쓰는 코드를 채워서 바로 복사

DoniKit(도니킷)은 개발자가 자주 쓰는 코드 조각을 빈칸만 채워 바로 복사하는 스니펫 라이브러리입니다. 반복문·컬렉션·Stream·문자열·형변환·날짜·예외 처리부터 DB·HTTP·테스트·파일까지, Java·JavaScript·SQL·HTML 168종을 15개 카테고리로 정리했습니다. 외우기 애매한 정형 코드를 매번 검색하는 대신, 필요한 값만 채워 완성된 코드를 얻습니다.

언어 토글로 Java·JavaScript·SQL을 오가고, 실무 작업 영역인 .http 요청·Shell(PowerShell·cmd·Linux 서버·WSL) 명령·HTML·XML(MyBatis 매퍼 포함)도 전용 색칠로 제공합니다. 채우기·색칠은 모두 접속한 브라우저 안에서 처리되어 입력한 값이 외부 서버로 전송되지 않습니다. 아래에서 카테고리와 자주 묻는 질문을 정리했습니다.

주요 기능

사용법

빈칸 채우기 → 복사

원하는 스니펫을 고르면 변수명·타입·값처럼 바뀌는 부분이 입력칸으로 표시됩니다. 값을 채우면 코드에 실시간으로 반영되고, 복사 버튼으로 완성된 코드를 그대로 가져갑니다.

언어·작업 영역 토글

Java·JavaScript·SQL 토글로 같은 개념의 코드를 언어별로 오갑니다. .http·Shell·HTML·XML은 언어가 아닌 작업 영역 토글로, IntelliJ/VS Code의 .http 요청, PowerShell·cmd·Linux 서버 실무 명령, MyBatis 매퍼 XML과 HTML 문서를 각각 전용 색칠로 보여줍니다. Shell은 개발 PC(Windows)·배포 서버(Linux)·WSL(둘을 잇는 명령)을 한 토글에서 오갈 수 있도록 기준 환경 라벨로 구분했습니다. 파일을 이름·수정일·크기로 찾고 폴더 구조·용량을 확인하는 조회 명령을 Windows·Linux 양쪽에 갖췄습니다. PowerShell을 처음 쓴다면 "기초·문법" 카테고리에서 동사-명사 이름 규칙, ls·cat 같은 별칭이 유닉스 옵션(-al)까지 받아주지는 않는다는 점, 파이프라인으로 거르고 정렬하는 법, .ps1 실행이 막힐 때 푸는 순서를 먼저 확인할 수 있습니다.

실무 카테고리

SQL은 PostgreSQL 함수·프로시저·익명 블록(DO $ … END $)·윈도우 함수·재귀 CTE·DDL을, Java는 BigDecimal·MultipartFile·페이징·@Scheduled를, 테스트는 JUnit 4↔5·Mockito·MockMvc·Vitest를 담았습니다. 폐쇄망 레거시를 고려해 HTTP 클라이언트는 최신·구세대 API를 함께 제공합니다.

자주 묻는 질문

DoniKit은 무료인가요?

네, 모든 스니펫을 무료로 쓸 수 있습니다. 운영 비용은 페이지에 표시되는 광고로 충당합니다.

회원가입이나 설치가 필요한가요?

아니요. 브라우저로 페이지를 열면 바로 쓸 수 있고, 로그인이나 프로그램 설치가 필요 없습니다.

채운 값이 서버로 전송되나요?

아니요. 빈칸 채우기와 구문 색칠은 접속한 기기의 브라우저 안에서 처리되며, 입력한 값은 외부 서버로 전송되지 않습니다.

복사한 코드를 상업 프로젝트에 써도 되나요?

스니펫은 흔히 쓰이는 정형 코드 패턴으로, 자유롭게 참고·사용할 수 있도록 제공합니다. 다만 프로젝트에 넣을 때는 실제 요구사항과 라이선스에 맞게 검토·수정해 사용하세요.

어떤 정보가 저장되나요?

테마·언어 토글 같은 화면 설정과 즐겨찾기·최근 사용한 스니펫 목록(스니펫 이름표만)이 브라우저 localStorage에 저장됩니다. 채운 값 자체는 저장하지 않습니다.

광고와 쿠키는 어떻게 처리되나요?

Google 애드센스 광고가 표시될 수 있으며 광고 목적의 제3자 쿠키가 사용될 수 있습니다. 자세한 내용은 페이지 하단 "개인정보 안내"에서 확인할 수 있습니다.

스니펫 레퍼런스