[macOS] port 빠르게 종료하기

2025. 9. 30. 16:43·Development

여러분은 포트 충돌이 일어나면 어떻게 하나요?

???

 

왜 Spring Boot는 "같은 포트(기본 8080)"만 쓰나?

Port 8080 was alerdy in use.

Spring boot 쓰다 보면 지겹도록 보는 에러입니다.. IntelliJ를 강제 종료하거나, IDE가 예기치 않게 종료되었을 때 백그라운드 프로세스에서는 기존 포트가 이미 가동 중이므로, 충돌이 나는 거죠.

물론 mySQL에서도 자주 보는 에러입니다.💦

 

Spring Boot는 서비스 서버입니다. 클라이언트/리버스 프록시/웹훅/OAuth 콜백 등 외부에서 고정 주소로 붙어야 합니다.

포트가 이미 점유되어 있으면 실패(fail-fast) 하는 게 맞습니다. 자동으로 다른 포트로 도망가면 모니터링/프록시/헬스체크가 전부 틀어집니다.

 

`lsof -i :{포트번호}`를 입력하면 아래처럼 조회할 수 있습니다.

lsof -i :8081

 

lsof -i

네트워크(Internet) 소켓을 사용 중인 프로세스를 보여주는 명령어

 

그리고 `kill -9 {PID}`를 입력하면 포트를 종료할 수 있죠

 

kill

SKGKILL 신호를 보내 '즉시 강제 종료'하는 명령어. 커널이 바로 프로세스를 죽임

 

매번 타이핑 귀찮다면: 함수/alias로 등록

매번 포트 찾고 포트번호 넣어서 kill 하는 거 귀찮아서 `alias` 등록해서 쓰고 있어요

진작해 둘걸.. 써보니까 편한 듯

killports='f(){ lsof -tiTCP:$@ | xargs -r kill -9; }; f'

 

Vite는?

근데 여기서 궁금점. Vite는 이미 사용 중인 포트가 있으면 다른 포트 번호를 켜지는데 왜일까?

Vite는 기본값으로 `strictPort: fasle`라서 그렇습니다.

 

strictPort

`strictPort`는 Vite의 서버 옵션으로, 지정한 포트가 이미 사용 중일 때의 동작을 정한다.

  • strictPort: false(기본): 지정 포트(기본 5173)가 점유되어 있으면 자동으로 다음 빈 포트(5174, 5175 …)로 바꿔서 실행.
  • strictPort: true: 지정 포트가 점유되어 있으면 실패(에러 후 종료). 포트를 고정해야 할 때 사용.

 

즉, 지정한 포트(기본: 5173)가 이미 사용 중이면 자동으로 빈 다음 포트를 찾아서 띄운다. (ex. 5174, 5175)

이는 개발 중 서버가 자주 켜졌다 꺼져도 멈추지 않게 하려는 DX 설계이다.


현재 프로젝트에서 vite를 쓰고 있음에도, 직접 셋팅하지 않다 보니 서버 옵션에 대해서는 모르는 게 많은 것 같다.

공부해야겠지...

 

'Development' 카테고리의 다른 글

[Web] 브라우저 “탭( Tab )”을 노리는 공격, Tabnabbing  (0) 2025.10.13
[C언어] return 0, 그리고 0과 1의 진짜 의미  (0) 2025.10.06
[Cursor] Figma MCP 연결하기 (더이상의 반복 작업은 지양한다)  (2) 2025.09.30
[ChatGPT] 이미 구독 중이라면, 3개월 동안 Plus 50% 할인 받기  (0) 2025.09.29
[Git] Git Merge 충돌, IntelliJ와 GitHub Desktop에서 다르게 동작하는 이유  (1) 2025.06.27
'Development' 카테고리의 다른 글
  • [Web] 브라우저 “탭( Tab )”을 노리는 공격, Tabnabbing
  • [C언어] return 0, 그리고 0과 1의 진짜 의미
  • [Cursor] Figma MCP 연결하기 (더이상의 반복 작업은 지양한다)
  • [ChatGPT] 이미 구독 중이라면, 3개월 동안 Plus 50% 할인 받기
곽진돔
곽진돔
Developer
  • 곽진돔
    echo "곽박한 세상";
    곽진돔
  • 전체
    오늘
    어제
    • 분류 전체보기 (203)
      • Development (74)
        • Linux (13)
        • k8s (3)
        • Docker (5)
        • AWS (1)
        • PHP (35)
        • Python (21)
        • Java (1)
        • SpringBoot (4)
        • JavaScript (2)
        • React (10)
        • MySql (19)
        • MongoDB (1)
      • Daily (6)
      • Study (7)
        • TIL (2)
        • license (3)
  • 블로그 메뉴

    • 홈
    • 태그
    • 방명록
    • 글쓰기
    • 설정
  • 링크

    • github
  • 공지사항

  • 인기 글

  • 태그

    인코딩
    docker
    php
    Java
    HTML
    IP
    ssh
    error
    date
    JavaScript
    크롤링
    리액트
    springboot
    Shell
    SQL
    CentOS7
    Selenium
    정규표현식
    윈도우
    UTF8
    Python
    db
    스프링부트
    nodejs
    리눅스
    CentOS
    MySQL
    Linux
    chromedriver
    react
  • 최근 댓글

  • 최근 글

  • hELLO· Designed By정상우.v4.10.3
곽진돔
[macOS] port 빠르게 종료하기
상단으로

티스토리툴바