개발하다 보면 가장 김새는 순간이 언제인가요? 코드 한 줄 고치고 서버 재시작 버튼 누른 뒤, 멍하니 콘솔 창 올라가는 거 구경할 때가 아닐까 싶어요. 사실 이 부분이 가장 번거롭고 아까운 시간이죠. 1번 재시작에 10초만 걸려도 하루에 50번이면 거의 10분을 버리는 셈이니까요.
IntelliJ IDEA Ultimate 사용자라면 이미 최고의 도구를 손에 쥐고 계신 겁니다. 여기에 Spring Boot DevTools만 제대로 버무리면, 저장과 동시에 브라우저에 결과가 반영되는 마법 같은 경험을 할 수 있어요. 제가 직접 삽질하며 완성한 최적의 실전 워크플로를 가감 없이 공유해 드릴게요.
시작은 가볍게: 프로젝트 의존성 추가하기
먼저 프로젝트 설정부터 꼬이면 나중에 고생합니다. Spring Initializr에서 프로젝트를 생성할 때 Spring Boot DevTools를 반드시 체크해 주세요. 이미 진행 중인 프로젝트라면 build.gradle 파일에 아래 한 줄만 더하면 됩니다.
dependencies {
developmentOnly 'org.springframework.boot:spring-boot-starter-web'
developmentOnly 'org.springframework.boot:spring-boot-devtools'
}여기서 developmentOnly로 선언하는 게 핵심이에요. 실제 운영 환경(Production)으로 배포될 때는 DevTools가 포함되지 않도록 막아주거든요. 이건 모르면 나중에 운영 서버 성능에 영향을 줄 수도 있는 꿀팁인데, 설정 하나로 배포 파일을 깔끔하게 유지할 수 있답니다.
IntelliJ 숨은 설정 '삼박자' 맞추기
DevTools를 넣었는데도 자동 반영이 안 된다고 하시는 분들이 많아요. 저도 처음엔 이 부분에서 꽤 헷갈렸는데, IntelliJ는 기본적으로 '실행 중인 앱의 자동 빌드'를 막아두기 때문입니다. 아래 세 가지 설정을 마치 '세트 메뉴'처럼 처리해 보세요.
- 컴파일러 설정: Settings(Ctrl+Alt+S) -> Build, Execution, Deployment -> Compiler에서
Build project automatically체크 - 고급 설정: Advanced Settings 탭으로 이동해서
Allow auto-make to start even if developed application is currently running체크 - 런 구성 변경: Run/Debug Configuration에서
On 'Update' action과On frame deactivation을 모두 'Update classes and resources'로 변경
개인적으로 이 세 번째 설정이 가장 중요하다고 생각합니다. 코딩하다가 브라우저로 창만 옮겨도(Focus out) IntelliJ가 알아서 변경 사항을 감지하고 리로드 준비를 마치거든요.
| 설정 메뉴 | 항목명 | 설정 이유 |
| Compiler | Build project automatically | 코드 저장 시 즉시 컴파일 실행 |
| Advanced Settings | Allow auto-make... | 앱이 켜져 있어도 빌드 허용 |
| Registry | compiler.automake.allow.when.app.running | 구형 버전에서 자동 빌드 활성화 |
위 표를 보고 본인의 설정 화면과 하나씩 대조해 보시는 게 최적의 조건을 맞추는 가장 빠른 길입니다.
실전 개발에서의 리듬감 찾기
설정을 마쳤다면 이제 컨트롤러를 하나 수정해 보세요. return "Hello";를 return "Hello World!";로 바꾸고 Ctrl+S를 누르는 순간, 콘솔에 'Restarting...' 메시지가 뜨면서 순식간에 반영될 거예요.
이게 단순한 재시작보다 빠른 이유는 DevTools가 '두 개의 클래스 로더'를 쓰기 때문입니다. 우리가 만든 코드(Base)만 갈아끼우고, 변하지 않는 라이브러리(Restart)는 그대로 두는 방식이죠. 마치 자동차 엔진은 켜둔 채로 타이어만 빛의 속도로 갈아 끼우는 것과 비슷하다고 할까요? 솔직히 말씀드리면, 이 맛에 익숙해지면 예전의 느릿느릿한 환경으로는 절대 못 돌아갑니다.
주의해야 할 '핫 리로드'의 함정
하지만 모든 도구가 그렇듯 만능은 아닙니다. 오히려 어떤 상황에서는 이게 독이 되어 개발 리듬을 깰 수도 있어요. 예를 들어, 아주 큰 규모의 프로젝트에서 의존성이 복잡하게 얽혀 있다면 자동 재시작이 너무 자주 일어나서 오히려 IDE가 버벅거릴 수 있습니다.
- 정적 파일 캐시: Thymeleaf 같은 템플릿 엔진을 쓴다면
spring.thymeleaf.cache=false설정을 꼭 해주세요. 안 그러면 코드는 바뀌었는데 화면은 그대로인 현상을 겪게 됩니다. - 메모리 관리: 재시작이 반복되면 힙 메모리에 찌꺼기가 남을 수 있어요. 가끔은 '진짜 재시작' 버튼을 눌러 메모리를 청소해 주는 센스가 필요하죠.
- 구조적 변경: 새로운 라이브러리를 추가하거나
application.properties의 핵심 설정을 바꿀 때는 DevTools보다 수동 재시작이 훨씬 안전합니다.
혹시 여러분도 설정을 다 마쳤는데 특정 파일만 수정하면 앱이 멈추는 경험을 해보신 적 있나요?
2026년 기준, 더 스마트하게 쓰는 방법
최근에는 IntelliJ Ultimate의 'Spring Boot Dashboard'가 훨씬 강력해졌습니다. 단순 로그 확인을 넘어 빈(Bean)의 상태나 매핑된 URL 엔드포인트를 실시간으로 모니터링할 수 있죠. 이건 저만 아는 건데, 대시보드에서 각 서비스의 상태를 시각적으로 확인하며 DevTools를 병행하면 디버깅 속도가 압도적으로 빨라집니다.
또한, Docker 환경에서 개발하신다면 Remote DevTools 기능을 살펴보세요. 로컬의 코드 변경사항을 컨테이너 안에 즉시 꽂아 넣어주는 기능인데, 환경 일관성을 유지하면서도 속도를 챙길 수 있는 최신 대안으로 떠오르고 있습니다. 관련해서는 공식 문서의 최신 업데이트를 주기적으로 체크해보시는 것이 좋습니다.
결국 도구보다 중요한 것은
결국 핵심은 도구의 화려함이 아니라 나의 집중력을 얼마나 잘 유지하느냐인 것 같아요. 10초의 기다림이 별거 아닌 것 같아도, 그 사이에 스마트폰을 보거나 딴생각에 빠지는 게 진짜 무서운 거거든요. DevTools는 단순한 자동화 도구를 넘어, 개발자의 '몰입'을 지켜주는 방어선 역할을 해줍니다.
완벽하게 세팅된 환경에서 코드를 치는 즐거움은 개발자의 특권입니다. 오늘 알려드린 설정들이 여러분의 퇴근 시간을 30분이라도 앞당겨줄 수 있기를 진심으로 바랍니다. 지금 바로 IntelliJ를 켜고 설정창을 열어보시는 건 어떨까요? 제 생각에는 지금 당장 이 5분의 투자가 이번 주 전체의 효율을 결정지을 것 같아요.
IntelliJ 프로파일러 활용법, 내 프로그램이 왜 느린지 5분 만에 찾는 기술
코드를 다 짜고 실행했는데 이상하게 로컬에서만 느리거나, 서버에 올렸더니 갑자기 메모리 점유율이 치솟는 상황. 사실 이 부분이 가장 번거로우시죠? 어디가 문제인지 몰라 코드 곳곳에 시간
byteandbit.tistory.com
'개발 환경 & 생산성 도구' 카테고리의 다른 글
| WebStorm Pro와 Vite React 조합으로 프론트엔드 개발 속도 3배 이상 끌어올리는 실전 가이드 (0) | 2026.03.12 |
|---|---|
| Cursor AI Pro 실무 활용 가이드: 개발 속도 3배 높이는 실제 프로젝트 경험과 팁 (0) | 2026.03.12 |
| VSCode와 GitHub Codespaces Enterprise로 구축하는 팀 단위 실전 클라우드 개발환경 가이드 (0) | 2026.03.09 |
| VSCode Spring Boot 실시간 알림 구현: SSE로 끊김 없는 사용자 경험 만들기 (0) | 2026.03.06 |
| IntelliJ 프로파일러 활용법, 내 프로그램이 왜 느린지 5분 만에 찾는 기술 (0) | 2026.03.06 |