회사에서 개발을 하다 보면 기존 소스 코드들이 구형 JDK 에 의존한 상태로 신규 버전의 컨버팅이 되지 않았을 때 이클립스(Eclipse)와 같은 IDE 까지 구버전인 경우가 많다.
나도 이런 경우로 운영하던 사이트가 있던 상황에서 ECMA6(or ES6) 이상의 최신 자바스크립트(JavaScript) 문법이 에디터에서 에러 코드 마냥 표기되는 경우가 있었다. (예: async / await 사용 등)
그래서 이를 해결해보겠다고 지피티랑 검색해가며 이것저것 방법을 찾다가 Tern 플러그인을 설치하면 된다는 말에 괜히 설치했더니 JSP 의 자바스크립트가 구문강조 되지 않고 일반적인 텍스트처럼 표기 되는 것이 아닌가?
이에 스트레스를 받아서 설치했던 Tern 플러그인을 삭제 했는데도 구문 강조가 계속 되지 않는다…! 당황스러웠다. 괜히 아무거나 설치했다가 개발 환경 설정한 이클립스가 망가진 것일까? 갑자기 식은땀이 흘렀다.
다행이 구문 강조 외엔 큰 문제는 없어 보였고 Tomcat 실행, 로컬에서 웹사이트가 정상적으로 동작했다.
그래서 다시 이클립스를 설치해서 개발 환경을 설정하는 방법도 있지만… 귀찮기도 하고 왜 이런 현상이 생겼는지 들고 파는 것도 좋아하기에 이 상태에서 한번 해결해 보려고 한다.
콘텐츠
이클립스 Web Tools Platform(WTP) 플러그인
JSP 구문 강조는 플러그인을 통해 영향을 받는다.
이클립스의 구문 강조는 어떻게 이루어 지는가를 찾아보니 Web Tools Platform(WTP) 플러그인을 통해 제공되고 있음을 알게 되었다.
특히, 내가 사용하는 Eclipse IDE for Enterprise Java Developers 에선 기본적으로 포함되어 있어야 한다.
플러그인 설치 여부는이클립스 상단 메뉴의 Help > About Eclipse > Installation Details > Installed Software 에서 확인할 수 있다.
설치된 플러그인에 Web Tools Platform(WTP) 가 없다?
문제는 위의 경로를 따라서 설치 되어 있는 플러그인 목록에 Web Tools Platform 이 없었다. 내가 사용하는 이클립스는 2020년 버전이라 그런걸까? 아니면 아까 Tern 플러그인 삭제 과정에서 함께 삭제 된걸까?
이클립스 마켓플레이스(Marketplace) 설치 시도 – 실패
이를 해결하기 위해 새롭게 플러그인을 설치하기 위해서 상단 메뉴 Help > Eclipse Marketplace 에서 Web Tools Platform 을 검색해 보았는데 검색 결과가 없었다.
Install New software 를 통한 재 설치 – 시도안함
마켓플레이스 방법 외에도 Help > Install New Software 에서 “http://download.eclipse.org/releases/kepler” URL 을 입력하여 설치가 가능한 모양이다. 그렇지만 일단 Web Tools Platform 에서 검색되지 않는 것이 이상해서 시도하지 않고 다른 정보를 찾았다.
이클립스 JavaScript Web Developer Tools 플러그인
플러그인 중에 WTP 말고 JavaScript Web Developer Tools 가 보였다. 이 플러그인은 Web Tools Platform 프로젝트의 일부로 Java 기반 웹 개발을 지원하는 도구들의 모음 이였으며 현재는 Web Tools Platform 에 포함되어 있다는 설명을 발견했다.
그리고 자바스크립트(javaScript)의 구문 강조(Syntax Hightlighting), 밸리데이션(Validation) 등 개발에 필요한 여러 기능을 포함한 도구가 바로 이 플러그인 이였다.
애석하게도, 해당 플러그인은 이미 이클립스에 정상적으로 설치되어 있어 보였으므로, 파일 자체가 손상된 것이 아닐까 생각이 들었으며 거기에 새로운 해결 아이디어가 떠올랐다.
이클립스의 plugins, features 폴더
두 폴더는 이클립스를 설치하면 기본적으로 존재하고 있는데 플러그인들과 관련된 폴더이다.
plugins 폴더
plugins 폴더는 이클립스의 실행 가능한 플러그인(.jar 파일), 관련 파일들이 저장되는 디렉터리이다. 이클립스 내 기능은 이 플러그인들을 통해 제공되고 있으며 플러그인은 이 폴더를 통해 추가/삭제가 이루어 진다.
features 폴더
features 폴더는 이클립스 제공 플러그인의 묶음 단위(feature set)을 관리하는 디렉터리이다. 플러그인의 상위 구성요소, 여러 개의 플러그인을 그룹화 해서 관리한다.
최종 해결 방법 -⭐
여기서 내가 얻은 아이디어는 플러그인에 손상이 있을 경우 다시 플러그인을 설치할 수 있겠지만 기존 이클립스와 같은 버전의 이클립스를 새로 다운로드 받아 두 폴더를 덮어 씌우면 해결이 될 것이라 생각했다.
그래서 가지고 있던 이클립스의 plugins, features 폴더를 지금 사용 중인 이클립스 폴더에 덮어 씌우니 정상적으로 JSP 파일의 자바스크립트가 구문 강조 되었다.