[환경설정] 8. CURSOR 세팅

최재원's avatar
Mar 07, 2025
[환경설정] 8. CURSOR 세팅
Contents
1. 확장자 설치2. 세팅0. 설정 화면1. theme 설정2. 폰트 크기 설정3. 폰트 설정4. 자동 포맷팅5. 자동 import 처리6. 리액트 emmet 설정7. prettier 세팅8. 파일 클릭시 무조건 새탭으로 열기3. 단축키 확인 및 세팅4. 탭 간격 세팅5. 자바 개발 환경 설정1. 설치2. 세팅6. cursor에서 java 유닛 테스트 세팅cursor에서 확장팩 설치test파일 생성메서드 왼쪽의 초록 버튼 클릭디버그 콘솔로 이동콘솔 화면 test화면으로 변경7. 한글 깨짐제어판8. 커서 자바 초기화1단계: 시스템 환경 변수 설정 (JAVA_HOME)2단계: VS Code 내부 설정 업데이트 (settings.json) - 가장 중요!3단계: VS Code의 Java 언어 서버 초기화 (요청하신 기능)4단계: Gradle 캐시 삭제 (강력 권장)요약: 이 순서만 기억하세요VSCode 스프링 프로젝트 문제 발생 시완전 초기화 풀 코스(Full Reset Checklist)1) VSCode 종료(완전 종료)2) Gradle 캐시 삭제 (가장 효과 큼)3) VSCode Java Language Server 캐시 초기화4) 프로젝트 내부 build 폴더 삭제5) .classpath / .project / .settings 삭제 (필요 시)6) Java Test Root, Maven/Gradle Sync 재실행7) Gradle Wrapper 재설치 (손상됐을 때)8) 스프링 Boot DevTools 끄기 (문제 유발 빈번)9) VSCode 자체 캐시 삭제10) 마지막: 전체 재빌드[보너스] 스프링 청소 스크립트(윈도우용)결론9. 커서 자바 빌드 그레이들 수정후 절차10. 인텔리j랑 vscode랑 다른 부분RequestParam에 이름을 명시하는 차이VSCode에서 parameters 오류 발생 시 해야 하는 전체 절차 (100% 해결 루틴)1단계: 문제 여부 다시 확인2단계: Gradle 설정에 명확히 parameters 추가3단계: VSCode Java Language Server 설정 확인4단계: 캐시 제거 (이 단계가 해결 여부를 결정함)5단계: VSCode 종료 후 다시 켜기 (중요)6단계: Gradle 다시 로드7단계: 강제 재빌드8단계: VSCode에서 Spring Boot 재실행9단계: 그래도 간헐적으로 재발한다면?요약 버전 (필요하면 적어둬라)11. java 버전 명시해서 사용하고 싶을 때가장 중요한 설정 (이걸 안 하면 100% 실패)추가 확인 (한 번만)왜 gradle.toolchain은 되는데 VS Code는 안 되나?12. vscode 포크 프로그램에서 vscode 확장 설치하는법VS Code 계열 에디터 익스텐션 수동 설치 정리
1. 확장자 설치2. 세팅0. 설정 화면방법 1 방법 21. theme 설정2. 폰트 크기 설정3. 폰트 설정1. 사용하고 싶은 폰트 다운2. 폰트 압축 풀기3. fonts경로에 붙여 넣어 설치하기4. cursor에서 폰트 이름 넣고 재시작!4. 자동 포맷팅1. 간단 설정하는 법 (html, css, js 만 해당됨)2. 상세 설정하는 법(이건 다 해당됨)3. HTML, CSS, JS에만 prettier를 적용하고 싶을 때4. 포맷팅이 되지 않을 경우5. 자동 import 처리6. 리액트 emmet 설정7. prettier 세팅8. 파일 클릭시 무조건 새탭으로 열기3. 단축키 확인 및 세팅4. 탭 간격 세팅5. 자바 개발 환경 설정1. 설치2. 세팅실행 시 자동으로 디버깅 화면 띄워줌application.properties저장시 자동 서버 재실행build.gradle 파일 자동 갱신코드 렌즈 설정(레퍼런스 표기, 사용처 표기)6. cursor에서 java 유닛 테스트 세팅cursor에서 확장팩 설치test파일 생성메서드 왼쪽의 초록 버튼 클릭디버그 콘솔로 이동콘솔 화면 test화면으로 변경7. 한글 깨짐제어판8. 커서 자바 초기화1단계: 시스템 환경 변수 설정 (JAVA_HOME)2단계: VS Code 내부 설정 업데이트 (settings.json) - 가장 중요!3단계: VS Code의 Java 언어 서버 초기화 (요청하신 기능)4단계: Gradle 캐시 삭제 (강력 권장)요약: 이 순서만 기억하세요9. 커서 자바 빌드 그레이들 수정후 절차✅ 1. Gradle 동기화 (Sync)✅ 2. 프로젝트 빌드✅ 3. IDE 캐시 반영이 안 될 경우✅ 4. 모든 캐시 제거후 새로 빌드10. 인텔리j랑 vscode랑 다른 부분RequestParam에 이름을 명시하는 차이11. java 버전 명시해서 사용하고 싶을 때가장 중요한 설정 (이걸 안 하면 100% 실패)gradle.properties1️⃣ VS Code Java 런타임 명시2️⃣ Java Language Server 캐시 초기화 (필수)추가 확인 (한 번만)왜 gradle.toolchain은 되는데 VS Code는 안 되나?12. vscode 포크 프로그램에서 vscode 확장 설치하는법VS Code 계열 에디터 익스텐션 수동 설치 정리1. VSIX 파일 다운로드2. 설치 방법에디터별 지원 현황

1. 확장자 설치

💡
  1. Live Server - 웹서버
  1. Prettier - 포맷터
  1. JetBrains IDE Keymap - 인텔리J 단축키를 추가
  1. Material Icon Theme - 아이콘 이미지 변경
  1. ESLint - 코드 스타일을 맞춰주고, 오류를 찾아줌
  1. Error Lens - 코드 에러 표기해줌
  1. SVG - Viewer - svg 이미지 바로 보여줌
  1. auto name tag - html 태그 앞부분 수정하면 뒷부분도 같이 수정됨
  1. git graph - 깃 내역을 그래프로 잘 보여줌
  1. gitlens - 코드 옆에 수정내역 요약을 보여줌
  1. indent-rainbow - 들여쓰기 색상 추가
  1. Mysql - db 접속 가능
  1. rainbow csv - csv 파일 색상으로 구분 가능
  1. thunder client - postman 처럼 http 요청 가능
  1. everforest pro - 테마
notion image
notion image
notion image
notion image
notion image
notion image
notion image
notion image
notion image
notion image
notion image
notion image
notion image
notion image
notion image

2. 세팅

0. 설정 화면

  • 단축키 ctrl + ,
  • 세팅 파일
settings.json
{ // ============================================================ // 에디터 기본 설정 // ============================================================ "editor.fontFamily": "'JetBrainsMono Nerd Font', Consolas, 'Pretendard Light'", "editor.codeLensFontFamily": "'JetBrainsMono Nerd Font'", "editor.inlayHints.fontFamily": "'JetBrainsMono Nerd Font'", "editor.fontSize": 18, "editor.tabSize": 4, "editor.insertSpaces": true, "editor.detectIndentation": false, "editor.wordWrap": "on", "editor.codeLens": true, "editor.codeActionsOnSave": { "source.organizeImports": "explicit", }, "editor.fontLigatures": true, "editor.guides.bracketPairs": "active", "editor.cursorBlinking": "expand", "editor.smoothScrolling": true, "editor.formatOnSave": true, // ============================================================ // 파일 형식별 포매터 설정 // ============================================================ "[html]": { "editor.defaultFormatter": "esbenp.prettier-vscode", }, "[css]": { "editor.defaultFormatter": "esbenp.prettier-vscode", }, "[javascript]": { "editor.defaultFormatter": "esbenp.prettier-vscode", }, "[json]": { "editor.defaultFormatter": "esbenp.prettier-vscode", "editor.tabSize": 4, "prettier.tabWidth": 4, }, "[jsonc]": { "editor.defaultFormatter": "vscode.json-language-features", "editor.tabSize": 4, }, "[markdown]": { "editor.defaultFormatter": "esbenp.prettier-vscode", }, "[jsp]": { "editor.defaultFormatter": "esbenp.prettier-vscode", }, "[yaml]": { "editor.defaultFormatter": "esbenp.prettier-vscode", "editor.tabSize": 2, "editor.insertSpaces": true, "editor.detectIndentation": false, "prettier.tabWidth": 2, // "editor.autoIndent": "advanced" }, "[yml]": { "editor.defaultFormatter": "esbenp.prettier-vscode", "editor.tabSize": 2, "editor.insertSpaces": true, "editor.detectIndentation": false, "prettier.tabWidth": 2, // "editor.autoIndent": "advanced" }, "[dockercompose]": { "editor.defaultFormatter": "esbenp.prettier-vscode", "editor.tabSize": 2, "editor.insertSpaces": true, "editor.detectIndentation": false, "prettier.tabWidth": 2, }, "[github-actions-workflow]": { "editor.defaultFormatter": "esbenp.prettier-vscode", "editor.tabSize": 2, "editor.insertSpaces": true, "editor.detectIndentation": false, "prettier.tabWidth": 2 }, "[spring-boot-properties-yaml]": { "editor.defaultFormatter": "esbenp.prettier-vscode", "editor.tabSize": 2, "editor.insertSpaces": true, "editor.detectIndentation": false, "prettier.tabWidth": 2 }, // ============================================================ // Prettier 설정 // ============================================================ "prettier.tabWidth": 4, "prettier.useEditorConfig": false, // ============================================================ // JSP / Emmet 설정 // ============================================================ "emmet.includeLanguages": { "jsp": "html", }, "files.associations": { "*.jsp": "html", }, // ============================================================ // Java 설정 // ============================================================ "java.configuration.updateBuildConfiguration": "automatic", "java.compile.nullAnalysis.mode": "automatic", "java.compile.parameters": true, "java.debug.settings.console": "internalConsole", "java.referencesCodeLens.enabled": true, "java.import.exclusions": [ "**/node_modules/**", "**/.metadata/**", "**/archetype-resources/**", "**/META-INF/maven/**", ], // ============================================================ // JavaScript 설정 // ============================================================ "js/ts.referencesCodeLens.enabled": true, "js/ts.referencesCodeLens.showOnAllFunctions": true, // ============================================================ // 터미널 설정 // ============================================================ "terminal.integrated.defaultProfile.windows": "Git Bash", "terminal.integrated.fontSize": 18, "terminal.integrated.stickyScroll.enabled": false, "terminal.integrated.initialHint": false, "terminal.integrated.profiles.windows": { "PowerShell": { "source": "PowerShell", "icon": "terminal-powershell", }, "Command Prompt": { "path": [ "${env:windir}\\Sysnative\\cmd.exe", "${env:windir}\\System32\\cmd.exe", ], "args": [], "icon": { "id": "terminal-cmd", }, }, "Git Bash": { "path": "C:\\Program Files\\Git\\bin\\bash.exe", "args": [ "--login", "-i" ], }, }, // ============================================================ // 워크벤치 설정 // ============================================================ "workbench.colorTheme": "Material Sandy Beach", "workbench.preferredDarkColorTheme": "Solarized Dark", "workbench.iconTheme": "material-icon-theme", "workbench.panel.showLabels": false, "workbench.editor.enablePreview": false, // ============================================================ // Diff 에디터 설정 // ============================================================ "diffEditor.ignoreTrimWhitespace": true, "diffEditor.useInlineViewWhenSpaceIsLimited": false, // ============================================================ // Git 설정 // ============================================================ "git.confirmSync": false, // ============================================================ // GitHub Copilot 설정 // ============================================================ "github.copilot.enable": { "markdown": true, "scminput": true, "plaintext": true, }, "github.copilot.nextEditSuggestions.enabled": true, // ============================================================ // GitLens 설정 // ============================================================ "gitlens.ai.model": "vscode", "gitlens.ai.vscode.model": "copilot:gpt-4.1", // ============================================================ // Chat / Claude 설정 // ============================================================ "chat.editor.fontSize": 18, "chat.viewSessions.orientation": "stacked", "claudeCode.preferredLocation": "panel", // ============================================================ // 기타 // ============================================================ "debug.console.fontSize": 18, "chatgpt.runCodexInWindowsSubsystemForLinux": true, "redhat.telemetry.enabled": true, "window.commandCenter": false, "workbench.startupEditor": "none", "terminal.integrated.cursorBlinking": true, "workbench.sideBar.location": "right", "workbench.activityBar.location": "top", }

방법 1

notion image

방법 2

notion image
notion image

1. theme 설정

notion image

2. 폰트 크기 설정

notion image
notion image

3. 폰트 설정

1. 사용하고 싶은 폰트 다운

notion image

2. 폰트 압축 풀기

notion image

3. fonts경로에 붙여 넣어 설치하기

notion image

4. cursor에서 폰트 이름 넣고 재시작!

notion image
'JetBrains Mono', Consolas, 'Pretendard Light'

4. 자동 포맷팅

1. 간단 설정하는 법 (html, css, js 만 해당됨)

notion image
notion image

2. 상세 설정하는 법(이건 다 해당됨)

notion image
추가 사항 (저장시 사용하지 않는 import 코드 제거)
Ctrl + , 를 눌러서 세팅 화면으로 이동
notion image
 
setting.json 파일 열기
notion image
 
다음 코드 추가
"editor.codeActionsOnSave": { "source.organizeImports": "explicit" },
notion image
notion image
  • Prettier 포맷터는 html, css, js 등 여러 언어를 지원함

3. HTML, CSS, JS에만 prettier를 적용하고 싶을 때

settings.json에 아래의 코드를 추가
"[html]": { "editor.defaultFormatter": "esbenp.prettier-vscode" }, "[css]": { "editor.defaultFormatter": "esbenp.prettier-vscode" }, "[javascript]": { "editor.defaultFormatter": "esbenp.prettier-vscode" },
기본 포맷터를 null로 설정
notion image

4. 포맷팅이 되지 않을 경우

  • 키 세팅에서 format document(포맷팅)를 사용하는 단축키 ctrl + alt + l 와 같은 적용되는 show composer history 키맵을 삭제 해야 한다.
    • notion image
  • 우클릭 ⬇
    • notion image

5. 자동 import 처리

setting 검색
notion image
notion image
  • 추가하면 사용 안 하는 import 자동 삭제 해준다
"editor.codeActionsOnSave": { "source.organizeImports": true }

6. 리액트 emmet 설정

settings.json에 아래의 코드를 추가
"emmet.includeLanguages": { "javascript": "javascriptreact", "typescript": "typescriptreact" }, "emmet.triggerExpansionOnTab": true, "emmet.showSuggestionsAsSnippets": true
notion image
notion image

7. prettier 세팅

notion image
{ "singleQuote" : true, "trailingComma" : "all", "tabWidth" : 2, "semi" : true }
notion image

8. 파일 클릭시 무조건 새탭으로 열기

notion image

3. 단축키 확인 및 세팅

notion image
notion image

4. 탭 간격 세팅

  • 탭 간격이 좁다면 변경
  • 세팅 단축키 ctrl + ,
notion image
notion image
notion image

5. 자바 개발 환경 설정

1. 설치

notion image
자바코드 자동완성 & 디버깅 지원
notion image
Spring 관련 기능 강조 및 관리 편리, 커맨트 팔랫으로 “Spring Initializr: Generate a Maven/Gradle Project” 사용가능
notion image
Lomkok 자동 인식
notion image
Mustache 템플릿 코드 하이라이팅
notion image
Spring Initializr: Generate a Maven/Gradle Project
notion image
3.4.3
notion image
java
notion image
com.metacoding
notion image
storev1
notion image
“jar
notion image
21
notion image
Spring Boot DevTools Developer Tools Lombok Developer Tools Spring Web web Mustache Template Engines H2 Database SQL Spring Data JPA SQL

2. 세팅

실행 시 자동으로 디버깅 화면 띄워줌

notion image

application.properties

spring.application.name=storev1 # 콘솔에 컬러 출력 spring.output.ansi.enabled=always

저장시 자동 서버 재실행

notion image
삭제
notion image
익스텐션 재실행
notion image
notion image
notion image
이놈을 취소 해야 한다

build.gradle 파일 자동 갱신

notion image

코드 렌즈 설정(레퍼런스 표기, 사용처 표기)

notion image
notion image

6. cursor에서 java 유닛 테스트 세팅

cursor에서 확장팩 설치

notion image

test파일 생성

notion image

메서드 왼쪽의 초록 버튼 클릭

notion image

디버그 콘솔로 이동

notion image

콘솔 화면 test화면으로 변경

notion image

7. 한글 깨짐

제어판

notion image
notion image
notion image
notion image
체크 하기
그리고 재시작

8. 커서 자바 초기화

1단계: 시스템 환경 변수 설정 (JAVA_HOME)

가장 기본이 되는 단계로, 운영체제(Windows)에게 새로운 JDK의 위치를 알려주는 작업입니다.
  1. JAVA_HOME 변경: [시스템 속성] -> [환경 변수]로 이동하여 JAVA_HOME 변수의 값을 새로 설치한 JDK의 최상위 폴더 경로로 변경합니다.
      • 예시: C:\workspace\tools\jdk-22
  1. Path 변수 확인Path 변수에 %JAVA_HOME%\bin이 등록되어 있는지 확인합니다.
      • 이 설정 덕분에 터미널에서 javajavac 명령어를 사용할 수 있습니다.
  1. 확인: 터미널(CMD 또는 PowerShell)을 새로 열고 java -version을 입력하여 새로 설치한 버전이 올바르게 표시되는지 확인합니다.

2단계: VS Code 내부 설정 업데이트 (settings.json) - 가장 중요!

VS Code가 코드 분석 및 디버깅에 사용할 JDK를 직접 지정해주는 핵심 단계입니다.
  1. settings.json 열기Ctrl + Shift + P를 눌러 명령 팔레트를 열고, Preferences: Open User Settings (JSON)을 선택합니다.
  1. 경로 수정java.configuration.runtimes 섹션의 path 값을 새로운 JDK 경로로 수정합니다. name도 버전에 맞게 바꿔주면 좋습니다.
{ // ... 다른 설정들 ... "java.configuration.runtimes": [ { "name": "JavaSE-22", // 새 버전에 맞게 수정 "path": "C:\\workspace\\tools\\jdk-22", // 새 경로로 수정 (백슬래시 `\\` 두 번 사용) "default": true } ] }

3단계: VS Code의 Java 언어 서버 초기화 (요청하신 기능)

VS Code가 기억하고 있는 기존 프로젝트의 낡은 정보나 꼬여버린 캐시를 깨끗하게 지워주는 작업입니다.
  1. 명령 팔레트 열기Ctrl + Shift + P
  1. 명령어 실행Java: Clean Java Language Server Workspace 를 입력하고 실행합니다.
  1. 재시작: 오른쪽 하단에 재시작 및 재빌드를 묻는 팝업이 나타나면 **"Restart and delete"**를 클릭하여 수락합니다.

4단계: Gradle 캐시 삭제 (강력 권장)

이전 버전의 JDK로 빌드된 캐시나 손상된 라이브러리 파일과의 충돌을 원천적으로 방지하는 가장 확실한 방법입니다.
  1. VS Code 및 모든 Java 프로세스 종료: 작업 관리자에서 java.exe나 OpenJDK 프로세스가 없는지 확인하고 종료합니다.
  1. 캐시 폴더 삭제: 파일 탐색기에서 다음 경로의 caches 폴더를 삭제합니다.
      • 경로: C:\Users\사용자명\.gradle\caches
  1. 프로젝트 재실행: VS Code를 다시 켜고 프로젝트를 열면, Gradle이 새로운 JDK 환경에 맞춰 필요한 모든 라이브러리를 깨끗하게 다시 다운로드합니다.

요약: 이 순서만 기억하세요

1. JAVA_HOME 바꾸기 (윈도우 설정) 2. settings.json 바꾸기 (VS Code 설정) 3. Java: Clean ... 실행하기 (VS Code 캐시 청소) 4. .gradle\caches 삭제하기 (Gradle 캐시 청소)
이 4단계 프로세스를 기억해두시면, 앞으로 Java 개발 환경에 변화가 생겼을 때 안정적으로 대처하실 수 있을 겁니다.
vscode에서 문제 발생하면 다음 절차대로 초기화

VSCode 스프링 프로젝트 문제 발생 시

완전 초기화 풀 코스(Full Reset Checklist)

총 10단계

1) VSCode 종료(완전 종료)

백그라운드 Java Language Server가 살아있으면 실패하므로
VSCode를 완전히 종료한다.

2) Gradle 캐시 삭제 (가장 효과 큼)

윈도우 CMD 또는 Git Bash에서 실행:
rd /s /q %USERPROFILE%\.gradle\caches
삭제 후 Gradle 의존성을 다시 내려받게 하므로 가장 중요함.

3) VSCode Java Language Server 캐시 초기화

VSCode 실행 →
Ctrl + Shift + P → “Java: Clean Java Language Server Workspace”
하고 VSCode 자동 재시작.

4) 프로젝트 내부 build 폴더 삭제

프로젝트 내부에서:
./gradlew clean
또는 직접 삭제:
rm -rf build/

5) .classpath / .project / .settings 삭제 (필요 시)

VSCode는 IntelliJ와 달리 내부 설정이 쉽게 꼬인다.
아래 파일/폴더 삭제:
.project .classpath .settings/
그다음 VSCode에서 프로젝트 다시 열면 자동으로 재생성된다.

6) Java Test Root, Maven/Gradle Sync 재실행

VSCode 왼쪽 하단 “Java” 영역에서
“Reload Java Projects” 실행.
또는 명령:
Ctrl + Shift + P → “Java: Reload Java Projects”

7) Gradle Wrapper 재설치 (손상됐을 때)

프로젝트에서:
gradlew wrapper --gradle-version 8.10.2
또는 최신 버전 선택.

8) 스프링 Boot DevTools 끄기 (문제 유발 빈번)

build.gradle
developmentOnly("org.springframework.boot:spring-boot-devtools")
→ 주석 처리하고 재빌드.

9) VSCode 자체 캐시 삭제

VSCode가 자체 캐시 때문에 문제 생길 수 있음.
삭제 경로:
%APPDATA%\Code\ %USERPROFILE%\AppData\Roaming\Code\ %USERPROFILE%\AppData\Local\Code\
특히 아래 폴더 삭제가 매우 효과적:
%APPDATA%\Code\Cache %APPDATA%\Code\CachedData %APPDATA%\Code\CachedExtensions %APPDATA%\Code\User\workspaceStorage
이건 VSCode만 초기화하며 프로젝트 파일엔 영향 없음.

10) 마지막: 전체 재빌드

프로젝트 루트에서:
./gradlew clean build --refresh-dependencies

[보너스] 스프링 청소 스크립트(윈도우용)

필요할 때마다 이 bat 파일만 실행하면 됨.
reset_spring.bat 내용:
echo ===== VSCode Spring Full Reset ===== taskkill /IM Code.exe /F echo Deleting Gradle caches... rd /s /q %USERPROFILE%\.gradle\caches echo Deleting VSCode caches... rd /s /q %APPDATA%\Code\Cache rd /s /q %APPDATA%\Code\CachedData rd /s /q %APPDATA%\Code\CachedExtensions rd /s /q %APPDATA%\Code\User\workspaceStorage echo ===== Reset complete. Please reopen VSCode and run ===== echo ./gradlew clean build --refresh-dependencies pause
이거 만들어두면 클릭 한 번이면 완전 초기화 가능.

결론

Spring + Gradle + VSCode 문제 해결을 위한 완전 초기화 방법은 아래 순서만 기억하면 됨:
  1. VSCode 종료
  1. Gradle 캐시 삭제
  1. Java Language Server Workspace Clean
  1. build 폴더 삭제
  1. .project / .classpath / .settings 삭제
  1. Java 프로젝트 Reload
  1. Gradle Wrapper 재설치
  1. DevTools 비활성화
  1. VSCode 캐시 삭제
  1. gradlew clean build --refresh-dependencies
이거 하면 어떤 문제도 해결된다.
echo "===== VSCode + Gradle + JVM 캐시 완전 초기화 시작 =====" # 사용자 이름 자동 감지 USER_HOME="/c/Users/$USERNAME" echo "[1] Gradle 캐시 삭제..." rm -rf "$USER_HOME/.gradle/caches" rm -rf "$USER_HOME/.gradle/daemon" rm -rf "$USER_HOME/.gradle/wrapper/dists" echo "[2] Maven(또는 Gradle) 의존성 캐시 삭제..." rm -rf "$USER_HOME/.m2/repository" echo "[3] VSCode 캐시 삭제..." rm -rf "$USER_HOME/AppData/Roaming/Code/User/workspaceStorage" rm -rf "$USER_HOME/AppData/Roaming/Code/Cache" rm -rf "$USER_HOME/AppData/Roaming/Code/CachedData" echo "[4] Gradle Daemon 중지..." cd "$(pwd)" ./gradlew --stop 2>/dev/null echo "===== 초기화 완료! =====" echo "VSCode 다시 실행하고 프로젝트 열어서 gradlew clean build 실행하세요."

9. 커서 자바 빌드 그레이들 수정후 절차

✅ 1. Gradle 동기화 (Sync)

  • build.gradle 파일을 저장한 후,
  • 커서 에디터 좌측 Gradle 탭 혹은 상단 메뉴에서 Reload Gradle Project 또는 Gradle Sync 버튼을 클릭합니다.
  • 또는 터미널에서 수동 실행:
    • ./gradlew --refresh-dependencies

✅ 2. 프로젝트 빌드

  • 수정을 마친 후, 다음 명령으로 프로젝트를 빌드할 수 있습니다:
    • ./gradlew build
      또는 테스트 포함:
      ./gradlew build test

✅ 3. IDE 캐시 반영이 안 될 경우

커서에서 Gradle이 제대로 반영되지 않으면:
  • .gradle, build, .idea 폴더 삭제 후 다시 빌드 시도.
  • 혹은 Invalidate Cache and Restart (커서에서는 제공하지 않지만 VSCode 기반 플러그인 재시작 효과)

✅ 4. 모든 캐시 제거후 새로 빌드

./gradlew --stop rm -rf ~/.gradle/caches rm -rf ~/.gradle/daemon rm -rf ~/.gradle/wrapper rm -rf .gradle rm -rf build rm -rf bin rm -rf out ./gradlew clean build --refresh-dependencies --no-build-cache

10. 인텔리j랑 vscode랑 다른 부분

RequestParam에 이름을 명시하는 차이

  • IntelliJ로 바로 실행할 때는 IDE 내장 컴파일러(또는 Spring 플러그인 설정)가 기본으로 -parameters 옵션을 켜둔 상태로 빌드해서 메서드 파라미터 이름 메타데이터가 클래스에 포함됩니다. 반면 VS Code는 Gradle/자바 표준 javac를 그대로 써서 -parameters가 없으면 메타데이터가 빠집니다. 그래서 IDEA에선 생략해도 되던 @RequestParam 이름이, Gradle/VS Code 빌드 결과에선 필요해지는 차이가 발생한 겁니다.
인텔리제이
@RequestParam(required = false) String authLevelName
 
vscode
@RequestParam(name = "authLevelName", required = false) String authLevelName
문제 해결 절차

VSCode에서 parameters 오류 발생 시 해야 하는 전체 절차 (100% 해결 루틴)

1단계: 문제 여부 다시 확인

오류 메시지:
IllegalArgumentException: Name for argument of type [...] not specified Ensure that the compiler uses the '-parameters' flag.
이게 뜨면 바로 아래 작업 시작.

2단계: Gradle 설정에 명확히 parameters 추가

build.gradle 최상단에 아래 추가되어 있어야 한다.
tasks.withType(JavaCompile) { options.compilerArgs << "-parameters" }
또는 Java 17이라면:
compileJava { options.compilerArgs += ["-parameters"] } compileTestJava { options.compilerArgs += ["-parameters"] }

반드시 해야 하는 이유

Spring은 실제로 Gradle이 컴파일한 클래스 파일을 읽는다.
VSCode 설정만 바꿔서 해결되지 않음.

3단계: VSCode Java Language Server 설정 확인

VSCode settings.json(전역 또는 workspace)에서 아래가 켜져 있어야 한다.
"java.compile.nullAnalysis.mode": "automatic", "java.configuration.updateBuildConfiguration": "automatic", "java.compile.parameters": true
중요한 건 "java.compile.parameters": true이다.
하지만 이것만으로는 절대 해결되지 않는다.
Gradle + VSCode 둘 다 설정해야 한다.

4단계: 캐시 제거 (이 단계가 해결 여부를 결정함)

VSCode는 캐시 때문에 “설정이 적용된 것처럼 보이지만 실제로 적용 안 됨”.
다음 파일·폴더를 전부 삭제한다.

4-1. 프로젝트 내부 캐시 삭제

프로젝트 루트에서:
삭제:
.gradle/ .vscode/ build/

4-2. 사용자 홈 gradle 캐시 삭제 (꼭 해야 함)

윈도우 기준:
C:\Users\사용자\.gradle\caches C:\Users\사용자\.gradle\daemon
둘 다 삭제.

4-3. VSCode 자체 워크스페이스 캐시 삭제

윈도우 기준:
C:\Users\사용자\AppData\Roaming\Code\User\workspaceStorage
이걸 통째로 삭제.

4-4. VSCode Java Language Server 재설치

VSCode 명령 팔레트 열기:
Ctrl + Shift + P → “Java: Clean Java Language Server Workspace”
완전 초기화됨.

5단계: VSCode 종료 후 다시 켜기 (중요)

이거 안 하면 Language Server가 이전 캐시를 그대로 씀.
완전 종료 → 재실행.

6단계: Gradle 다시 로드

VSCode가 켜지면 밑에 팝업이 뜬다.
Java: Import Gradle Project?
→ Yes 클릭

7단계: 강제 재빌드

터미널에서:
./gradlew clean build --refresh-dependencies
이 명령은:
  • 모든 캐시 무효화
  • 의존성 재다운로드
  • Java 컴파일 옵션(parameters) 재적용
을 동시에 수행한다.

8단계: VSCode에서 Spring Boot 재실행

Run → Start Debugging 또는 Spring Boot Dashboard → Run
이제 오류가 절대 나오면 안 된다.

9단계: 그래도 간헐적으로 재발한다면?

VSCode는 IntelliJ보다 캐시/빌드 파일 처리 능력이 약하다.
그래서 다음 두 상황에서 종종 재발한다:
  • JSP 파일 자동 포맷 오류
  • Gradle이 half-sync 된 상태
  • 파일명 변경 후 빌드 메타데이터 깨짐
  • Java Language Server 업데이트 후 캐시 충돌
해결 방법은 똑같다:
  • VSCode Java Language Server 초기화
  • .gradle 삭제 후 clean 빌드
반복해도 됨. Spring+VSCode 유저들 모두 이렇게 씀.

요약 버전 (필요하면 적어둬라)

1) build.gradle에 -parameters 추가 2) VSCode settings.json에 "java.compile.parameters": true 3) 캐시 전부 삭제 (.gradle, build, workspaceStorage) 4) VSCode Java Language Server Reset 5) VSCode 재실행 6) ./gradlew clean build --refresh-dependencies
이 루틴 = 100% 해결.

11. java 버전 명시해서 사용하고 싶을 때

build.gradle
java { toolchain { languageVersion = JavaLanguageVersion.of(17) } }
현재 프로젝트에서 어떤 java 컴파일러를 사용하는지 법
./gradlew compileJava --info

가장 중요한 설정 (이걸 안 하면 100% 실패)

gradle.properties

# Gradle Toolchain이 JDK를 찾을 실제 경로 org.gradle.java.installations.paths=C:\\workspace\\tools\\jdk-17
이 한 줄이 toolchain 사용의 핵심이다.
toolchain은
  • JAVA_HOME ❌
  • PATH ❌
  • 현재 JVM ❌
    • 이 목록만 본다

1️⃣ VS Code Java 런타임 명시

.vscode/settings.json (없으면 생성)
{ "java.configuration.runtimes": [ { "name": "JavaSE-21", "path": "C:\\workspace\\tools\\jdk-21", "default": true } ] }
⚠️ 중요
  • JavaSE-21 이름 정확히
  • path는 지금 폴더 그대로 사용 (하위 X)

2️⃣ Java Language Server 캐시 초기화 (필수)

VS Code에서:
Ctrl + Shift + P → Java: Clean JavaLanguageServer Workspace → ReloadandDelete
그 다음 VS Code 완전 재시작

추가 확인 (한 번만)

터미널에서:
C:\workspace\tools\jdk-21\bin\javac --version
정상 출력:
javac21

왜 gradle.toolchain은 되는데 VS Code는 안 되나?

  • Gradle Toolchain
    • 빌드 시점에만 JDK 필요
    • properties만 봄
  • VS Code Java 확장
    • 편집기 내부에서 컴파일/분석
    • java.configuration.runtimes 없으면 JRE or 잘못된 JDK로 판단
그래서 둘을 따로 맞춰줘야 함
 
-parameters 에러 from vscode
 

12. vscode 포크 프로그램에서 vscode 확장 설치하는법

VS Code 계열 에디터 익스텐션 수동 설치 정리

1. VSIX 파일 다운로드

Marketplace URL에서 정보 추출:
https://marketplace.visualstudio.com/items?itemName=lemoncn167.material-sandy-beach-theme
다운로드 URL 패턴:
https://marketplace.visualstudio.com/_apis/public/gallery/publishers/{publisher}/vsextensions/{extension}/{version}/vspackage
예시:
https://marketplace.visualstudio.com/_apis/public/gallery/publishers/lemoncn167/vsextensions/material-sandy-beach-theme/1.0.6/vspackage

2. 설치 방법

UI로 설치
  • Extensions 패널 ... → Install from VSIX → 파일 선택
커맨드 팔레트로 설치
Ctrl + Shift + P → Install from VSIX
CLI로 설치
# VS Code code --install-extension 파일명.vsix # Cursor cursor --install-extension 파일명.vsix # Antigravity antigravity --install-extension 파일명.vsix

에디터별 지원 현황

방법
VS Code
Antigravity
Cursor
Marketplace 직접 설치
❌ (Open VSX)
✅ (일부 제한)
UI (Install from VSIX)
커맨드 팔레트
CLI
 
Share article