VSCode Extension Bisect (확장 프로그램 이분 탐색)

김형섭 (Matthew)·2024년 3월 7일
3

개발 팁/테크

목록 보기
11/15
post-thumbnail

어느날 제 vscode 가 코딩을 하다가 갑자기 느려집니다.
주로 파일을 저장하거나 이름을 바꾸거나 삭제할 때 파일감시자 응답을 기다린다면서 버버버버버벅 댑니다.

껏다 켜면 괜찮다가 5분마다 또 시작 됩니다.
와- 생산성이 팍 떨어집니다.

안되겠습니다.
이유를 찾아야 겠습니다.

문제가 무엇인가

vscode 가 느려집니다.

그런데 왜 느려지는지 알길이 없습니다.

시도한 방법

일단, vscode 의 모든 확장을 다 끄고 사용해 봅니다.

Github Copilot, surround try catch 등 자주 쓰던 확장 기능이 없으니 생산성이 확 떨어지지만, vscode 가 1시간 이상 작업을 했음에도 더이상 느려지지 않네요.

그렇습니다.
역시 Extensions, 즉 확장 프로그램들이 문제 였어요.

문제 있는 확장을 찾고 싶어졌습니다.
그래야 없앨 수 있으니까요.

그런데 제가 확장이 너무 많습니다.


(글 작성일 기준 저는 63개를 사용중 이네요. 오... 언제 이렇게 많아졌지)

이 많은 63개 확장에서 문제 있는 확장 하나라 콕 찝어서 찾으려면..
다 끄고 하나씩 켜면서 문제가 나올지 안나올지 해보는 것? 밖에는 떠오르지 않네요.

그런데... 앗!

vscode에 이 문제를 해결하는 기능이 있습니다.

그것은 바로…

번역이 구려서 그렇지, Extension Bisect 라는 기능이 있습니다.

Extension Bisect!?

Bisect 는 이분법을 말합니다.
Extension Bisect 는 vscode의 확장을 이분법 한다는 뜻이고요.

무슨 뜻이냐고요?

용어가 너무 축약되서 그렇지, 그냥 문제 있는 확장을 찾기 위해서
이분법 탐색을 사용 하겠다는 뜻입니다.

즉,

일단 가진 확장을 다 꺼보고, 문제가 재현되는지 검사 합니다.
그 다음엔 절반을 꺼보고, 검사
그 담엔, 절반의 절반
이런식으로 최종 문제가 재현되는 확장이 나올때까지 절반씩 확장 수를 줄여가며 찾는 것이죠.

말이 어려운데, 그냥 직접 보시죠.

  • vscode 에서 F1 을 누르고 bisect 를 치고 Start Extension Bisect 를 실행 합니다.

  • 시작하면, 일단 Bisect 프로그램이 vscode 의 확장을 전부 다 OFF 해버립니다.
  • (테마도 포함해서)
  • 그리고, 우측에 작은 팝업이 뜹니다.

  • 63개 확장을 껐다고 하네요.

이제 이 상태로 1~5분간 vscode에서 작업을 해봅니다.
해봤는데, 아까 같이 느려지는 문제가 없으면, 재현할 수 없음을 누르면 됩니다.

그러면,

  • 그럼, 이제 절반으로 줄여서 다시 팝업이 뜹니다.
  • 마찬가지로 반복 해서
  • 느려지는 문제가 재현된다면 [재현할 수 있음] 을 누르고,
  • 없으면 [없음] 누르는 겁니다.

이렇게 몇바퀴 하다보면 최종적으로 나를 느려지게 만든 문제의 확장이 튀어나오게 됩니다.

(스크린샷을 위해 뽑은것, 실제 이 확장이 문제 있는 것은 아닙니다.)

이제 여러분이 할일은 하나뿐 입니다.

  • 이 확장을 사용하지 않음으로 처리하고,
  • vscode 를 쾌적하게 사용 하시면 됩니다.

마무리

역시 세상을 넓고, 찾으면 다 있더군요.

오늘도 즐거운 코딩 되세요.
아임웹 CTO 매튜 드림.

profile
CTO at Imweb, 20년차 개발 장인, 전) 플레이오토 CTO/창업자

2개의 댓글

comment-user-thumbnail
2024년 6월 24일

안 그래도 똑같은 문제를 겪고 vscode 개발 생산성이 많이 떨어졌었는데 감사합니다!

1개의 답글