2. VDI 환경에서 테스트 실패 시 대처법 (Troubleshooting)
내 컴퓨터에선 됐는데 VDI에서 안 된다면, 90%는 '환경 설정(Infrastructure)' 문제입니다. 당황해서 로직을 건드리지 말고 아래 순서대로 체크하세요.
① DB / Redis 연결 오류 (가장 흔함)
- 증상: Connection Refused 또는 Timeout 에러.
- 원인: 도커 컨테이너가 안 떴거나, 포트 설정이 다름.
- 해결: * 터미널에 docker ps를 쳐서 mysql, redis가 떠 있는지 확인하세요.
- application.yml의 url이 localhost:6379(Redis), localhost:3306(MySQL)인지 확인하세요. (VDI 환경에 따라 localhost 대신 컨테이너 이름인 redis, mysql을 써야 할 수도 있습니다.)
② 의존성(Dependency) 충돌
- 증상: Could not resolve all dependencies 또는 클래스를 못 찾는 에러.
- 해결: 터미널에 ./gradlew build --refresh-dependencies를 입력해서 라이브러리를 강제로 다시 받으세요. (네트워크 문제로 깨져서 받아질 때가 있습니다.)
③ 동시성 테스트 실패 (성능 차이)
- 증상: 내 컴에선 100명 성공했는데, VDI에선 95명만 성공함.
- 원인: VDI는 성능이 낮아서 Thread.sleep이나 CountDownLatch 대기 시간이 짧으면 로직이 끝나기 전에 테스트가 종료될 수 있습니다.
- 해결: 테스트 코드의 대기 시간(Await Time)을 넉넉하게(2초 -> 5초) 늘려주세요.
---------------------------------
💡 [최종] VDI 트러블슈팅 4계명 (복붙용)
| 구분 | 체크포인트 | 조치 사항 (명령어) |
-----------------------------------------------------------------------------------------------------
3. 테스트 결과가 안 보일 때 (Alt + 4)
실행 버튼을 눌렀는데 화면에 아무 변화가 없다면, 단축키 **Alt + 4**를 눌러보세요. 하단의 Run 콘솔창이 강제로 열리면서 테스트 결과와 **Hibernate 로그(create table 등)**를 한눈에 볼 수 있습니다
포트 충돌 해결
# 3306 포트 누가 쓰는지 확인
# Windows
netstat -ano | findstr :3306
taskkill /PID [숫자] /F
# Linux
sudo lsof -i :3306
sudo kill -9 [PID]
# 6379 (Redis)
netstat -ano | findstr :6379
taskkill /PID [숫자] /F
[실행안될때]
docker compose down
docker compose up --build