"List를 Map으로 바꾸는 Stream이 뭐였지?", "BigDecimal 나눗셈 반올림은?" — 알지만 매번 검색하는 Java 정형 코드를 모았습니다. 각 카드에는 실무에서 자주 겪는 함정을 담은 주의점이 붙어 있어, 복사 후 겪을 시행착오를 줄입니다.
스니펫은 빈칸 채우기 폼으로 제공됩니다 — 변수명·값처럼 바뀌는 부분이 입력칸으로 표시되고, 채우면 코드에 실시간 반영돼 완성본을 복사합니다. 채운 값은 브라우저 안에서만 쓰이고 외부로 전송되지 않습니다.
| 갈래 | 담긴 것 |
|---|---|
| 반복·컬렉션·Stream | for/for-each, List·Map 생성과 순회, 그룹핑·정렬·중복 제거 같은 가공 |
| 형변환 | VO ↔ Map ↔ JSON(Jackson) — 계층 간 데이터 옮기기 |
| 숫자·날짜 | BigDecimal 계산(부동소수점 함정 회피), LocalDate/LocalDateTime 포맷·계산 |
| HTTP | JDK 11+ java.net.http와 JDK 8 HttpURLConnection 두 세대 + 내장 서버 — 폐쇄망 레거시까지 커버 |
| 테스트 | JUnit 4↔5 대응, Mockito, MockMvc |
| 파일·예외·스케줄 | MultipartFile 처리, try-with-resources, @Scheduled |
폐쇄망 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 명시 |
| 날짜 문자열 ↔ LocalDate | DateTimeFormatter 패턴 카드 |
| 외부 API 호출 | JDK 11+ HttpClient / JDK 8 HttpURLConnection |
같은 작업을 팀원마다 다르게 짜면 리뷰 비용이 늘어납니다 — toMap의 중복 처리를 누구는 하고 누구는 빠뜨리는 식입니다. 검증된 형태의 스니펫을 출발점으로 공유하면 코드의 기본 품질이 상향 평준화됩니다. 카드의 주의점은 그 형태가 왜 그렇게 생겼는지의 근거이므로, 리뷰 코멘트 대신 카드 링크를 다는 것도 방법입니다.
폐쇄망 환경이라면 크롬 확장판(같은 내용의 오프라인 패키지)을 반입해 두는 것으로 검색 없는 환경에서도 같은 카드를 쓸 수 있습니다.
인터넷 검색이 안 되는 자리에서 "그 문법이 뭐였지"는 작업 중단을 뜻합니다 — 이 카드들이 폐쇄망 반입용 확장판으로도 제공되는 이유입니다. 검색 가능한 환경에서도, 검증된 형태를 바로 얻는 것과 검색 결과를 걸러 읽는 것의 시간 차이는 하루로 쌓으면 큽니다.
전량 덤프는 Java 레퍼런스에서 봅니다. DB 쿼리는 DB 스니펫, API 호출 테스트 파일은 .http 스니펫, 프론트 연동은 JS/TS 스니펫으로 이어집니다.
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를 함께 제공합니다.
네, 모든 스니펫을 무료로 쓸 수 있습니다. 운영 비용은 페이지에 표시되는 광고로 충당합니다.
아니요. 브라우저로 페이지를 열면 바로 쓸 수 있고, 로그인이나 프로그램 설치가 필요 없습니다.
아니요. 빈칸 채우기와 구문 색칠은 접속한 기기의 브라우저 안에서 처리되며, 입력한 값은 외부 서버로 전송되지 않습니다.
스니펫은 흔히 쓰이는 정형 코드 패턴으로, 자유롭게 참고·사용할 수 있도록 제공합니다. 다만 프로젝트에 넣을 때는 실제 요구사항과 라이선스에 맞게 검토·수정해 사용하세요.
테마·언어 토글 같은 화면 설정과 즐겨찾기·최근 사용한 스니펫 목록(스니펫 이름표만)이 브라우저 localStorage에 저장됩니다. 채운 값 자체는 저장하지 않습니다.
Google 애드센스 광고가 표시될 수 있으며 광고 목적의 제3자 쿠키가 사용될 수 있습니다. 자세한 내용은 페이지 하단 "개인정보 안내"에서 확인할 수 있습니다.