이 페이지의 스니펫

"List를 Map으로 바꾸는 Stream이 뭐였지?", "BigDecimal 나눗셈 반올림은?" — 알지만 매번 검색하는 Java 정형 코드를 모았습니다. 각 카드에는 실무에서 자주 겪는 함정을 담은 주의점이 붙어 있어, 복사 후 겪을 시행착오를 줄입니다.

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

갈래별 구성

갈래담긴 것
반복·컬렉션·Streamfor/for-each, List·Map 생성과 순회, 그룹핑·정렬·중복 제거 같은 가공
형변환VO ↔ Map ↔ JSON(Jackson) — 계층 간 데이터 옮기기
숫자·날짜BigDecimal 계산(부동소수점 함정 회피), LocalDate/LocalDateTime 포맷·계산
HTTPJDK 11+ java.net.http와 JDK 8 HttpURLConnection 두 세대 + 내장 서버 — 폐쇄망 레거시까지 커버
테스트JUnit 4↔5 대응, Mockito, MockMvc
파일·예외·스케줄MultipartFile 처리, try-with-resources, @Scheduled

왜 HTTP가 두 세대인가

폐쇄망 SI 현장에는 JDK 8 프로젝트가 여전히 많습니다. 최신 답(java.net.http)만 있으면 "우리 환경에선 안 되는" 답이 됩니다 — 그래서 같은 작업을 JDK 11+와 JDK 8 방식으로 나란히 제공합니다. 카드의 기준 환경(stack) 라벨을 보고 프로젝트에 맞는 쪽을 고르세요.

활용 예 — 이런 순간에

카드 활용 팁

사용 순서

자주 찾는 카드 미리보기

상황해당 카드
List에서 조건에 맞는 것만Stream filter + collect
List를 key 기준 Map으로toMap — 키 중복 merge 처리 포함
금액 계산이 0.1 오차BigDecimal — scale·RoundingMode 명시
날짜 문자열 ↔ LocalDateDateTimeFormatter 패턴 카드
외부 API 호출JDK 11+ HttpClient / JDK 8 HttpURLConnection

스니펫을 팀 표준으로

같은 작업을 팀원마다 다르게 짜면 리뷰 비용이 늘어납니다 — toMap의 중복 처리를 누구는 하고 누구는 빠뜨리는 식입니다. 검증된 형태의 스니펫을 출발점으로 공유하면 코드의 기본 품질이 상향 평준화됩니다. 카드의 주의점은 그 형태가 왜 그렇게 생겼는지의 근거이므로, 리뷰 코멘트 대신 카드 링크를 다는 것도 방법입니다.

폐쇄망 환경이라면 크롬 확장판(같은 내용의 오프라인 패키지)을 반입해 두는 것으로 검색 없는 환경에서도 같은 카드를 쓸 수 있습니다.

폐쇄망에서의 가치

인터넷 검색이 안 되는 자리에서 "그 문법이 뭐였지"는 작업 중단을 뜻합니다 — 이 카드들이 폐쇄망 반입용 확장판으로도 제공되는 이유입니다. 검색 가능한 환경에서도, 검증된 형태를 바로 얻는 것과 검색 결과를 걸러 읽는 것의 시간 차이는 하루로 쌓으면 큽니다.

자주 묻는 질문

채운 값이 서버로 가나요?
아니요. 채우기·복사 전부 브라우저 안에서 끝납니다.
스니펫 코드는 어떤 기준인가요?
기준 환경 라벨(stack)에 적힌 버전·프레임워크 기준의 일반 실무 예제입니다 — 프로젝트 버전에 맞게 다듬어 쓰라는 전제입니다.
상업 프로젝트에 써도 되나요?
흔히 쓰이는 정형 패턴으로 자유롭게 참고·사용하도록 제공합니다 — 요구사항에 맞는 검토·수정은 사용자의 몫입니다.
스니펫 전체 목록을 한 번에 볼 수 있나요?
레퍼런스 페이지(/ref/java)가 전량을 한 페이지로 보여줍니다 — 인쇄·통독용입니다.
원하는 스니펫이 없으면요?
카테고리 칩을 훑어보고, 없으면 유사 카드의 주의점이 방향을 알려주는 경우가 많습니다.
카드 코드의 저작권은요?
흔한 정형 패턴을 자체 작성한 예제라 자유롭게 사용해도 됩니다 — 프로젝트 규정 검토는 사용자 몫입니다.

함께 보는 페이지

전량 덤프는 Java 레퍼런스에서 봅니다. DB 쿼리는 DB 스니펫, API 호출 테스트 파일은 .http 스니펫, 프론트 연동은 JS/TS 스니펫으로 이어집니다.

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자 쿠키가 사용될 수 있습니다. 자세한 내용은 페이지 하단 "개인정보 안내"에서 확인할 수 있습니다.

스니펫 레퍼런스