Spring Boot 프로젝트를 다시 실행하려는데 서버가 올라오지 않았다.
코드를 잘못 건드린 줄 알았는데 원인은 훨씬 단순했다.
8080 포트를 이미 다른 프로세스가 사용하고 있었다.
Spring Boot를 사용하다 보면 한 번쯤 보게 되는 문제인데, 막상 개발 흐름 중간에 만나면 생각보다 귀찮다.

Port 8080 was already in use
Spring Boot는 별도로 설정하지 않으면 기본적으로 8080 포트를 사용한다.
그런데 이미 다른 프로그램이나 이전에 실행한 서버가 8080 포트를 잡고 있으면 새로운 Spring Boot 서버를 실행할 수 없다.
보통 이런 형태의 메시지를 만나게 된다.
Web server failed to start.
Port 8080 was already in use.
처음에는 애플리케이션 오류인가 싶었지만, 메시지를 보면 원인은 꽤 명확하다.
Spring Boot가 사용할 8080 포트가 비어 있지 않은 것이다.
왜 이런 일이 생길까
내 경우에는 개발하면서 여러 서버와 도구를 반복해서 실행하고 있었다.
Spring Boot도 여러 번 실행하고 있었고, 개발 환경을 이것저것 바꾸면서 테스트하다 보니 8080 포트가 이미 사용 중인 상황이 생겼다.
이런 문제는 보통 다음 경우에 발생한다.
- 이전에 실행한 Spring Boot가 아직 종료되지 않은 경우
- 다른 Java 애플리케이션이 8080을 사용하는 경우
- Tomcat 같은 다른 서버가 실행 중인 경우
- IDE에서 애플리케이션을 중복 실행한 경우
결국 선택지는 두 가지다.
8080을 사용하는 프로세스를 종료하거나, Spring Boot의 포트를 변경하면 된다.
나는 8081로 변경했다
이번 프로젝트에서는 반드시 8080을 사용해야 할 이유가 없었다.
그래서 포트를 차지하고 있는 프로세스를 추적하는 데 시간을 쓰기보다 Spring Boot의 실행 포트를 8081로 변경했다.
application.properties를 사용한다면 다음 설정을 추가하면 된다.
server.port=8081
application.yml을 사용한다면 이렇게 설정할 수 있다.
server:
port: 8081
다시 애플리케이션을 실행하고
http://localhost:8081
로 접근했다.
서버는 정상적으로 실행됐다.
문제 자체는 생각보다 간단했다.
8080을 계속 사용해야 한다면
물론 항상 포트를 바꾸는 것이 정답은 아니다.
8080으로 고정해야 하는 환경이라면 8080을 사용하는 프로세스를 찾아서 종료하는 편이 맞다.
Windows에서는 다음과 같이 포트를 확인할 수 있다.
netstat -ano | findstr :8080
마지막에 표시되는 PID를 확인한 뒤 어떤 프로세스인지 찾아볼 수 있다.
tasklist | findstr PID번호
필요하다면 해당 프로세스를 종료하고 다시 Spring Boot를 실행하면 된다.
다만 무작정 프로세스를 종료하기보다는 어떤 프로그램인지 먼저 확인하는 게 좋다.
생각보다 자주 만나는 문제였다
이번에는 해결하는 데 오래 걸린 문제는 아니었다.
그런데 개발을 다시 하면서 느끼는 건 이런 작은 문제들이 계속 나온다는 것이다.
코드가 틀린 것도 아니고, Spring Boot가 고장 난 것도 아니다.
그냥 내가 실행하려는 서버가 사용할 자리를 다른 프로그램이 먼저 사용하고 있었던 것뿐이었다.
개발을 다시 시작하고 나서는 이런 작은 오류도 그냥 넘기지 않고 왜 생겼는지 한 번씩 확인하게 됐다.
메시지를 읽고 원인을 하나씩 줄이다 보면 대부분 어디선가 답이 나온다.
이번에는 원인이 8080이었고, 나는 8081로 한 칸 옮겼다.
정리
Port 8080 was already in use가 나온다면 먼저 두 가지를 확인하면 된다.
- 8080을 사용 중인 프로세스를 찾아 종료한다.
- 8080을 꼭 사용할 필요가 없다면 server.port를 변경한다.
내 경우에는 두 번째 방법으로 해결했고, 이후 개발을 계속 진행할 수 있었다.
Nocklock 연결
이 문제는 프로젝트를 실제 서비스 형태로 만들면서 겪은 여러 개발 환경 문제 중 하나였다.
로컬에서는 잘 동작하던 프로젝트를 다른 환경에서도 실행할 수 있도록 만드는 과정은 따로 기록하고 있다.
관련 글
- 내 컴퓨터에서는 잘 되는데, 다른 사람도 쓸 수 있어야 했다 | RE:개발자 #10
- 서버에 올리면 끝인 줄 알았다 — Docker를 처음 제대로 써봤다 | RE:개발자 #11
- Spring Boot Docker 배포 방법 — Windows/WSL부터 Railway까지 직접 해보며 막힌 것들
'개발 노트' 카테고리의 다른 글
| Ollama 11434 포트 충돌 해결 — ollama serve가 실행되지 않았던 이유 (0) | 2026.09.25 |
|---|---|
| 개발자 노트북 RAM 32GB·SSD 1TB면 충분할까? 그램 17 고르며 고민한 기준 (0) | 2026.09.23 |
| LG 그램 Pro 17 개발용으로 괜찮을까? AI·Ollama 때문에 RTX 5050까지 고민했다 (0) | 2026.09.22 |
| 2026 개발자 노트북 추천 — 입문용·실무용·휴대용으로 나눠봤다 (0) | 2026.09.22 |
| Spring Boot Docker 배포 방법 — Windows/WSL부터 Railway까지 직접 해보며 막힌 것들 (0) | 2026.09.20 |