IntelliJ 사용법 / IntelliJ 단축키 / IntelliJ 디버깅 방법
IntelliJ 사용법
기존 프로젝트 열기
file > Open > 프로젝트명 > OK
최근 작업한 프로젝트 열기
File > Open Recent > 프로젝트명
프로젝트 Type 보는 법
프로젝트 > 우클릭 > Open Module Settings > Artifacts > Type : Web Application: Archive
프로젝트 Clean
File > Invalidate Caches > Clear file system cache and Local History 체크 > Invalidate and Restart
같은 소스로 타 컴퓨터에서는 정상인데, import문에서 패키지 경로 등을 못 찾는 에러가 나면 사용합니다.
IntelliJ 프로젝트명 변경 방법
- 워크스페이스에서 프로젝트 폴더명 변경
- Ctrl + Alt + Shift + S > Project > Name 변경
- 폴더 src > main > java > com.~.프로젝트명으로 변경 (Shift + F6)
- 프로젝트명Appication.java 이름 변경 (Shift + F6)
- 프로젝트명이 들어간 소스들 모두 바꾸기 (Ctrl + Shift + R)
setiings.gradle > rootProject.name도 프로젝트명으로 변경 - 프로젝트명이 들어간 파일명들 Ctrl + Shift + N으로 검색 후 변경
- Run/Debug Configurations에서 Spring Boot Name 변경
- 워크스페이스에서 프로젝트 폴더 내 .git 폴더 삭제
- cmd에서 프로젝트 Git 연결 주소 변경 후 Commit, Push
폴더 및 파일 경로 확인
폴더 및 파일 우클릭 > Open In > Explorer
heap memory indicator 열기
우측 하단 Status Bar 우클릭 > Memory Indecator
현재 힙 메모리 상태를 항상 볼 수 있습니다.
플러그인 및 마켓플레이스
File > Settings > Plugins > Marketplace 탭 > 플러그인 검색하여 설치 및 삭제
GitHub Copliot 등 유용한 플러그인들을 설치할 수 있습니다.
하단 Problems 탭
Current File
: 현재 파일 소스의 error 목록
Project Errors
: 프로젝트 전체 소스의 error 목록
서버별 Gradle war 빌드 방법
https://0songha0.github.io/op/2023-03-07-1
로컬 히스토리 보는법
파일 또는 프로젝트 우클릭 > Local History > Show History
실수로 폐기한 소스를 되살릴 때 이용하면 좋습니다.
IntelliJ에서 메이븐 사용법
우측 Maven View가 보이지 않는 경우
프로젝트 pom.xml 파일 우클릭 > Add as Maven Project 선택
Maven Clean 방법
우측 Maven View > 프로젝트명 또는 common component > Lifecycle > clean > BUILD SUCCESS 확인
Maven Install 방법
우측 Maven View > 프로젝트명 또는 common component > Lifecycle > clean > install > BUILD SUCCESS 확인
C:\Users\DB400TDA\.m2\repository
위 경로에 pom.xml의 jre들이 받아지고, pom.xml에서 각 dependency의 빨간 줄도 사라집니다.
Maven pom.xml 변경사항 적용 방법
pom.xml에서 아직 받아지지 않은 dependency는 빨간 텍스트로 표시됩니다.
변경사항이 있다면, 우측 상단에 뜨는 Load Maven Changes 아이콘 클릭 시 의존성이 추가됩니다.
라이브러리 소스, API 문서 다운로드
우측 Maven View > 상단 다운로드 > Download Sources and Documentation
다운로드 완료까지 시간이 오래걸릴 수 있습니다.
서버별 Maven war 빌드 방법
https://0songha0.github.io/op/2023-11-08-1
IntelliJ 설정 방법
https://0songha0.github.io/tool/2022-05-27-1
IntelliJ 톰캣 사용 방법
SpringBoot 내장 톰캣 추가
우측 상단 Edit Configurations > 좌측 상단 + 버튼 > Spring Boot 선택 > Build and run 우측 Module : 프로젝트명.main 선택 > main class : 우측 Browse… 아이콘 클릭 후 Search by Name 탭에 보이는 프로젝트명Application 파일 선택 > 상단 Name : 프로젝트명Application 입력 > Active progiles : local 입력 (로컬 실행 시 사용할 프로파일 입력) > OK
추가한 SpringBoot 내장 톰캣 구성 우측 ▶ 클릭 시 SpringBoot 프로젝트 실행이 됩니다.
프로젝트명Application 파일 인식이 안되는 경우
우측 Gradle 메뉴 > Reload All Gradle Projects 버튼 클릭 > 재시도
SpringBoot 프로젝트 로컬 실행 정상메시지
"C:\Program Files\Java\jdk-17.0.3\bin\java.exe" -XX:TieredStopAtLevel=1 -noverify -Dspring.profiles.active=local -Dspring.output.ansi.enabled=always -Dcom.sun.management.jmxremote -Dspring.jmx.enabled=true -Dspring.liveBeansView.mbeanDomain -Dspring.application.admin.enabled=true "-javaagent:C:\Program Files\JetBrains\IntelliJ IDEA 2022.1.2\lib\idea_rt.jar=52270:C:\Program Files\JetBrains\IntelliJ IDEA 2022.1.2\bin" -Dfile.encoding=UTF-8 -classpath D:\aidt_realtime_quiz_intelliJ\real-time-dev\real-time-dev\backend\out\production\classes;D:\aidt_realtime_quiz_intelliJ\real-time-dev\real-time-dev\backend\out\production\resources;C:\Users\DB400TDA\.gradle\caches\modules-2\files-2.1\org.projectlombok\lombok\1.18.32\17d46b3e205515e1e8efd3ee4d57ce8018914163\lombok-1.18.32.jar;C:\Users\DB400TDA\.gradle\caches\modules-2\files-2.1\org.springframework.boot\spring-boot-starter-security\3.2.6\96abf3a8802ac448786ebc7dac5c9f9a54bcc2ec\spring-boot-starter-security-3.2.6.jar;C:\Users\DB400TDA\.gradle\caches\modules-2\files-2.1\org.springframework.boot\spring-boot-starter-websocket\3.2.6\4aad39ceda9a71afb4ded998f53081c766ec6168\spring-boot-starter-websocket-3.2.6.jar;C:\Users\DB400TDA\.gradle\caches\modules-2\files-2.1\org.springframework.boot\spring-boot-starter-web\3.2.6\8a06aa9bee3a1de70595a92a91b702c9923c49fc\spring-boot-starter-web-3.2.6.jar;C:\Users\DB400TDA\.gradle\caches\modules-2\files-2.1\org.springframework.boot\spring-boot-starter-validation\3.2.6\bfb0cd4c182992c0a272069ab69d46aba3e02502\spring-boot-starter-validation-3.2.6.jar;C:\Users\DB400TDA\.gradle\caches\modules-2\files-2.1\org.mybatis.spring.boot\mybatis-spring-boot-starter\3.0.3\19528356bf8bad2be5f8bf796dfc30bcc4996054\mybatis-spring-boot-starter-3.0.3.jar;C:\Users\DB400TDA\.gradle\caches\modules-2\files-2.1\com.corundumstudio.socketio\netty-socketio\2.0.12\77feb3e16cf53dcf1761df47b277f45970d9fad1\netty-socketio-2.0.12.jar;C:\Users\DB400TDA\.gradle\caches\modules-2\files-2.1\org.springframework.boot\spring-boot-starter-log4j2\3.2.6\951393286025a1578b3d812b05a902cbcd588813\spring-boot-starter-log4j2-3.2.6.jar;C:\Users\DB400TDA\.gradle\caches\modules-2\files-2.1\org.springframework.kafka\spring-kafka\3.2.1\ebd9d79b63e9b343f589168a1441f4686a1daeda\spring-kafka-3.2.1.jar;C:\Users\DB400TDA\.gradle\caches\modules-2\files-2.1\org.mariadb.jdbc\mariadb-java-client\3.3.3\149f773186f5b7d2e840cfaecf4e3bcdddf7b065\mariadb-java-client-3.3.3.jar;C:\Users\DB400TDA\.gradle\caches\modules-2\files-2.1\mysql\mysql-connector-java\8.0.28\33678b1729d4f832b9e4bcb2d5bbd67940920a7a\mysql-connector-java-8.0.28.jar;C:\Users\DB400TDA\.gradle\caches\modules-2\files-2.1\com.amazonaws\aws-java-sdk-s3\1.12.638\4d21d5e6b71b2634dc67b36bf9b2defce7a7cc3\aws-java-sdk-s3-1.12.638.jar;C:\Users\DB400TDA\.gradle\caches\modules-2\files-2.1\org.springframework.boot\spring-boot-starter\3.2.6\cd5208accde89f97ec11b80db258b043dd71c1f6\spring-boot-starter-3.2.6.jar;C:\Users\DB400TDA\.gradle\caches\modules-2\files-2.1\org.springframework.security\spring-security-config\6.2.4\ef1f16ce7900f602826b985f15b67bbe60015a08\spring-security-config-6.2.4.jar;C:\Users\DB400TDA\.gradle\caches\modules-2\files-2.1\org.springframework.security\spring-security-web\6.2.4\b4a436865cf6483e088c986432f44d9e90bab6a3\spring-security-web-6.2.4.jar;C:\Users\DB400TDA\.gradle\caches\modules-2\files-2.1\org.springframework\spring-aop\6.1.8\ef793a21e405a88d9d32b92cb459c845ee12b271\spring-aop-6.1.8.jar;C:\Users\DB400TDA\.gradle\caches\modules-2\files-2.1\org.springframework\spring-websocket\6.1.8\b483354d4f474de37f4092a46e63cc0862b094e7\spring-websocket-6.1.8.jar;C:\Users\DB400TDA\.gradle\caches\modules-2\files-2.1\org.springframework\spring-messaging\6.1.8\e962b008e0a6ce0386d18f93eb961e5e2a691c3c\spring-messaging-6.1.8.jar;C:\Users\DB400TDA\.gradle\caches\modules-2\files-2.1\org.springframework.boot\spring-boot-starter-json\3.2.6\829e99fdb67aa7a09493416afd954e8b2cb90075\spring-boot-starter-json-3.2.6.jar;C:\Users\DB400TDA\.gradle\caches\modules-2\files-2.1\org.springframework\spring-webmvc\6.1.8\8496f8c010625bc0b857d19d2e93a9bdd691c1af\spring-webmvc-6.1.8.jar;C:\Users\DB400TDA\.gradle\caches\modules-2\files-2.1\org.springframework.boot\spring-boot-starter-tomcat\3.2.6\10b779100dd0593134492c40c100325cf49b2058\spring-boot-starter-tomcat-3.2.6.jar;C:\Users\DB400TDA\.gradle\caches\modules-2\files-2.1\org.springframework\spring-web\6.1.8\1461405dc325c82a0a058df033bee3d8c6dd6e41\spring-web-6.1.8.jar;C:\Users\DB400TDA\.gradle\caches\modules-2\files-2.1\org.apache.tomcat.embed\tomcat-embed-el\10.1.24\6e9c9dce63c10f903cb0aaaeff45f5f7092f5527\tomcat-embed-el-10.1.24.jar;C:\Users\DB400TDA\.gradle\caches\modules-2\files-2.1\org.hibernate.validator\hibernate-validator\8.0.1.Final\e49e116b3d3928060599b176b3538bb848718e95\hibernate-validator-8.0.1.Final.jar;C:\Users\DB400TDA\.gradle\caches\modules-2\files-2.1\org.springframework.boot\spring-boot-starter-jdbc\3.2.6\6f3941dbe2755e4ac7dbe9a7bf175ce00edc570a\spring-boot-starter-jdbc-3.2.6.jar;C:\Users\DB400TDA\.gradle\caches\modules-2\files-2.1\org.mybatis.spring.boot\mybatis-spring-boot-autoconfigure\3.0.3\b73a2effa4f60a2eeca98aa12ea3437faede0f73\mybatis-spring-boot-autoconfigure-3.0.3.jar;C:\Users\DB400TDA\.gradle\caches\modules-2\files-2.1\org.mybatis\mybatis\3.5.14\d94d2267d1caf1c31748123e671dcea5ad1a6f8\mybatis-3.5.14.jar;C:\Users\DB400TDA\.gradle\caches\modules-2\files-2.1\org.mybatis\mybatis-spring\3.0.3\5a4ab31bfb62bca615b39ade93de2a607e9b9403\mybatis-spring-3.0.3.jar;C:\Users\DB400TDA\.gradle\caches\modules-2\files-2.1\io.netty\netty-codec-http\4.1.110.Final\9d05cd927209ea25bbf342962c00b8e5a828c2a4\netty-codec-http-4.1.110.Final.jar;C:\Users\DB400TDA\.gradle\caches\modules-2\files-2.1\io.netty\netty-handler\4.1.110.Final\168db749c22652ee7fed1ebf7ec46ce856d75e51\netty-handler-4.1.110.Final.jar;C:\Users\DB400TDA\.gradle\caches\modules-2\files-2.1\io.netty\netty-codec\4.1.110.Final\f1fa43b03e93ab88e805b6a4e3e83780c80b47d2\netty-codec-4.1.110.Final.jar;C:\Users\DB400TDA\.gradle\caches\modules-2\files-2.1\io.netty\netty-transport\4.1.110.Final\b91f04c39ac14d6a29d07184ef305953ee6e0348\netty-transport-4.1.110.Final.jar;C:\Users\DB400TDA\.gradle\caches\modules-2\files-2.1\io.netty\netty-buffer\4.1.110.Final\3d918a9ee057d995c362902b54634fc307132aac\netty-buffer-4.1.110.Final.jar;C:\Users\DB400TDA\.gradle\caches\modules-2\files-2.1\io.netty\netty-common\4.1.110.Final\ec361e7e025c029be50c55c8480080cabcbc01e7\netty-common-4.1.110.Final.jar;C:\Users\DB400TDA\.gradle\caches\modules-2\files-2.1\org.slf4j\slf4j-api\2.0.13\80229737f704b121a318bba5d5deacbcf395bc77\slf4j-api-2.0.13.jar;C:\Users\DB400TDA\.gradle\caches\modules-2\files-2.1\com.fasterxml.jackson.core\jackson-databind\2.15.4\560309fc381f77d4d15c4a4cdaa0db5025c4fd13\jackson-databind-2.15.4.jar;C:\Users\DB400TDA\.gradle\caches\modules-2\files-2.1\com.fasterxml.jackson.core\jackson-core\2.15.4\aebe84b45360debad94f692a4074c6aceb535fa0\jackson-core-2.15.4.jar;C:\Users\DB400TDA\.gradle\caches\modules-2\files-2.1\org.apache.logging.log4j\log4j-slf4j2-impl\2.21.1\77d14bb4ef6487833652c443dd7d264e26e2e968\log4j-slf4j2-impl-2.21.1.jar;C:\Users\DB400TDA\.gradle\caches\modules-2\files-2.1\org.apache.logging.log4j\log4j-core\2.21.1\eba8eac8d464791c84e4bafa0fea7cdf7113168\log4j-core-2.21.1.jar;C:\Users\DB400TDA\.gradle\caches\modules-2\files-2.1\org.apache.logging.log4j\log4j-jul\2.21.1\70b87f59c89cc1c0b1136443a70091c82127a4c1\log4j-jul-2.21.1.jar;C:\Users\DB400TDA\.gradle\caches\modules-2\files-2.1\org.springframework\spring-context\6.1.8\21219a0df58e5b96ef489a172b449232573352e8\spring-context-6.1.8.jar;C:\Users\DB400TDA\.gradle\caches\modules-2\files-2.1\org.springframework\spring-tx\6.1.8\1f0249f1785d39f9e21694aaeb4b02916abda632\spring-tx-6.1.8.jar;C:\Users\DB400TDA\.gradle\caches\modules-2\files-2.1\org.springframework.retry\spring-retry\2.0.6\812ca80eb5f418c679cb239d2d009c4bf075f3a\spring-retry-2.0.6.jar;C:\Users\DB400TDA\.gradle\caches\modules-2\files-2.1\org.apache.kafka\kafka-clients\3.8.0\84425f801af2df5355b8736e36c1496f172adcf3\kafka-clients-3.8.0.jar;C:\Users\DB400TDA\.gradle\caches\modules-2\files-2.1\io.micrometer\micrometer-observation\1.12.6\ec96cbd5bafac7be6f8192b5c3c926930b571b30\micrometer-observation-1.12.6.jar;C:\Users\DB400TDA\.gradle\caches\modules-2\files-2.1\com.github.waffle\waffle-jna\3.3.0\6c1a06b345702bb1dfd77006af926b091bded851\waffle-jna-3.3.0.jar;C:\Users\DB400TDA\.gradle\caches\modules-2\files-2.1\com.google.protobuf\protobuf-java\3.11.4\7ec0925cc3aef0335bbc7d57edfd42b0f86f8267\protobuf-java-3.11.4.jar;C:\Users\DB400TDA\.gradle\caches\modules-2\files-2.1\com.amazonaws\aws-java-sdk-kms\1.12.638\940873068ea1383f4d962613cc1eca7c8cecc00e\aws-java-sdk-kms-1.12.638.jar;C:\Users\DB400TDA\.gradle\caches\modules-2\files-2.1\com.amazonaws\aws-java-sdk-core\1.12.638\357efe3f93c58bc4a10d40b1301045405b8a9f73\aws-java-sdk-core-1.12.638.jar;C:\Users\DB400TDA\.gradle\caches\modules-2\files-2.1\com.amazonaws\jmespath-java\1.12.638\d60bb33b97b968b555ce829961d41971ff826415\jmespath-java-1.12.638.jar;C:\Users\DB400TDA\.gradle\caches\modules-2\files-2.1\org.springframework.boot\spring-boot-autoconfigure\3.2.6\14ba3acd4c71f83011d96acbe2513ec2cce3e7a8\spring-boot-autoconfigure-3.2.6.jar;C:\Users\DB400TDA\.gradle\caches\modules-2\files-2.1\org.springframework.boot\spring-boot\3.2.6\9d6cf54cd3076f1b8b1426bd3a98bdcdea1f3149\spring-boot-3.2.6.jar;C:\Users\DB400TDA\.gradle\caches\modules-2\files-2.1\jakarta.annotation\jakarta.annotation-api\2.1.1\48b9bda22b091b1f48b13af03fe36db3be6e1ae3\jakarta.annotation-api-2.1.1.jar;C:\Users\DB400TDA\.gradle\caches\modules-2\files-2.1\org.springframework\spring-core\6.1.8\141fc11a5dbaa503fe361150312ad0fa9d9c03da\spring-core-6.1.8.jar;C:\Users\DB400TDA\.gradle\caches\modules-2\files-2.1\org.yaml\snakeyaml\2.2\3af797a25458550a16bf89acc8e4ab2b7f2bfce0\snakeyaml-2.2.jar;C:\Users\DB400TDA\.gradle\caches\modules-2\files-2.1\org.springframework.security\spring-security-core\6.2.4\b1bb9c66df67cd6ecc5548dec8b37341cef11a80\spring-security-core-6.2.4.jar;C:\Users\DB400TDA\.gradle\caches\modules-2\files-2.1\org.springframework\spring-beans\6.1.8\79a5e45383542ff514b5328fe277410cf4054f3b\spring-beans-6.1.8.jar;C:\Users\DB400TDA\.gradle\caches\modules-2\files-2.1\org.springframework\spring-expression\6.1.8\dcf78ef442c24f32ff8c6a9746e7f5209b330111\spring-expression-6.1.8.jar;C:\Users\DB400TDA\.gradle\caches\modules-2\files-2.1\com.fasterxml.jackson.datatype\jackson-datatype-jsr310\2.15.4\7de629770a4559db57128d35ccae7d2fddd35db3\jackson-datatype-jsr310-2.15.4.jar;C:\Users\DB400TDA\.gradle\caches\modules-2\files-2.1\com.fasterxml.jackson.module\jackson-module-parameter-names\2.15.4\e654497a08359db2521b69b5f710e00836915d8c\jackson-module-parameter-names-2.15.4.jar;C:\Users\DB400TDA\.gradle\caches\modules-2\files-2.1\com.fasterxml.jackson.datatype\jackson-datatype-jdk8\2.15.4\694777f182334a21bf1aeab1b04cc4398c801f3f\jackson-datatype-jdk8-2.15.4.jar;C:\Users\DB400TDA\.gradle\caches\modules-2\files-2.1\org.apache.tomcat.embed\tomcat-embed-websocket\10.1.24\938419aba5a4f4645b9cd23a9e1d5453e85d09b9\tomcat-embed-websocket-10.1.24.jar;C:\Users\DB400TDA\.gradle\caches\modules-2\files-2.1\org.apache.tomcat.embed\tomcat-embed-core\10.1.24\cd9358f0a26d26e1a2c7200f69cb9a302c20ceb4\tomcat-embed-core-10.1.24.jar;C:\Users\DB400TDA\.gradle\caches\modules-2\files-2.1\jakarta.validation\jakarta.validation-api\3.0.2\92b6631659ba35ca09e44874d3eb936edfeee532\jakarta.validation-api-3.0.2.jar;C:\Users\DB400TDA\.gradle\caches\modules-2\files-2.1\org.jboss.logging\jboss-logging\3.5.3.Final\c88fc1d8a96d4c3491f55d4317458ccad53ca663\jboss-logging-3.5.3.Final.jar;C:\Users\DB400TDA\.gradle\caches\modules-2\files-2.1\com.fasterxml\classmate\1.6.0\91affab6f84a2182fce5dd72a8d01bc14346dddd\classmate-1.6.0.jar;C:\Users\DB400TDA\.gradle\caches\modules-2\files-2.1\com.zaxxer\HikariCP\5.0.1\a74c7f0a37046846e88d54f7cb6ea6d565c65f9c\HikariCP-5.0.1.jar;C:\Users\DB400TDA\.gradle\caches\modules-2\files-2.1\org.springframework\spring-jdbc\6.1.8\a744f02da5a64f2b497f143c461a5d5d675051e6\spring-jdbc-6.1.8.jar;C:\Users\DB400TDA\.gradle\caches\modules-2\files-2.1\io.netty\netty-transport-native-unix-common\4.1.110.Final\a7096e7c0a25a983647909d7513f5d4943d589c0\netty-transport-native-unix-common-4.1.110.Final.jar;C:\Users\DB400TDA\.gradle\caches\modules-2\files-2.1\io.netty\netty-resolver\4.1.110.Final\66c15921104cda0159b34e316541bc765dfaf3c0\netty-resolver-4.1.110.Final.jar;C:\Users\DB400TDA\.gradle\caches\modules-2\files-2.1\com.fasterxml.jackson.core\jackson-annotations\2.15.4\5223ea5a9bf52cdc9c5e537a0e52f2432eaf208b\jackson-annotations-2.15.4.jar;C:\Users\DB400TDA\.gradle\caches\modules-2\files-2.1\org.apache.logging.log4j\log4j-api\2.21.1\74c65e87b9ce1694a01524e192d7be989ba70486\log4j-api-2.21.1.jar;C:\Users\DB400TDA\.gradle\caches\modules-2\files-2.1\io.micrometer\micrometer-commons\1.12.6\255ebef194f74428cce1a63d107812d97b15b199\micrometer-commons-1.12.6.jar;C:\Users\DB400TDA\.gradle\caches\modules-2\files-2.1\org.slf4j\jcl-over-slf4j\2.0.13\d062d6e35605aabee0c727a950e29d39ac0a262e\jcl-over-slf4j-2.0.13.jar;C:\Users\DB400TDA\.gradle\caches\modules-2\files-2.1\net.java.dev.jna\jna-platform\5.13.0\88e9a306715e9379f3122415ef4ae759a352640d\jna-platform-5.13.0.jar;C:\Users\DB400TDA\.gradle\caches\modules-2\files-2.1\net.java.dev.jna\jna\5.13.0\1200e7ebeedbe0d10062093f32925a912020e747\jna-5.13.0.jar;C:\Users\DB400TDA\.gradle\caches\modules-2\files-2.1\com.github.ben-manes.caffeine\caffeine\3.1.8\24795585df8afaf70a2cd534786904ea5889c047\caffeine-3.1.8.jar;C:\Users\DB400TDA\.gradle\caches\modules-2\files-2.1\org.checkerframework\checker-qual\3.37.0\ba74746d38026581c12166e164bb3c15e90cc4ea\checker-qual-3.37.0.jar;C:\Users\DB400TDA\.gradle\caches\modules-2\files-2.1\com.fasterxml.jackson.dataformat\jackson-dataformat-cbor\2.15.4\4416d9cc61bde0c0b11d38e66d219090be4a2b70\jackson-dataformat-cbor-2.15.4.jar;C:\Users\DB400TDA\.gradle\caches\modules-2\files-2.1\org.apache.httpcomponents\httpclient\4.5.13\e5f6cae5ca7ecaac1ec2827a9e2d65ae2869cada\httpclient-4.5.13.jar;C:\Users\DB400TDA\.gradle\caches\modules-2\files-2.1\commons-logging\commons-logging\1.2\4bfc12adfe4842bf07b657f0369c4cb522955686\commons-logging-1.2.jar;C:\Users\DB400TDA\.gradle\caches\modules-2\files-2.1\commons-codec\commons-codec\1.16.1\47bd4d333fba53406f6c6c51884ddbca435c8862\commons-codec-1.16.1.jar;C:\Users\DB400TDA\.gradle\caches\modules-2\files-2.1\joda-time\joda-time\2.8.1\f5bfc718c95a7b1d3c371bb02a188a4df18361a9\joda-time-2.8.1.jar;C:\Users\DB400TDA\.gradle\caches\modules-2\files-2.1\org.springframework\spring-jcl\6.1.8\a545266a6efac9283353a922783a0a06f197ec0\spring-jcl-6.1.8.jar;C:\Users\DB400TDA\.gradle\caches\modules-2\files-2.1\org.springframework.security\spring-security-crypto\6.2.4\9583253c66bafe7cbf0f082d069b08675331ce78\spring-security-crypto-6.2.4.jar;C:\Users\DB400TDA\.gradle\caches\modules-2\files-2.1\com.google.errorprone\error_prone_annotations\2.21.1\6d9b10773b5237df178a7b3c1b4208df7d0e7f94\error_prone_annotations-2.21.1.jar;C:\Users\DB400TDA\.gradle\caches\modules-2\files-2.1\org.apache.httpcomponents\httpcore\4.4.16\51cf043c87253c9f58b539c9f7e44c8894223850\httpcore-4.4.16.jar;C:\Users\DB400TDA\.gradle\caches\modules-2\files-2.1\org.springframework.boot\spring-boot-devtools\3.2.6\469d9f86e351321236b96f0005fac7efc9a2fa42\spring-boot-devtools-3.2.6.jar;C:\Users\DB400TDA\.gradle\caches\modules-2\files-2.1\com.github.luben\zstd-jni\1.5.6-3\823b794106e4bcb80110f49408d1641231f25927\zstd-jni-1.5.6-3.jar;C:\Users\DB400TDA\.gradle\caches\modules-2\files-2.1\org.lz4\lz4-java\1.8.0\4b986a99445e49ea5fbf5d149c4b63f6ed6c6780\lz4-java-1.8.0.jar;C:\Users\DB400TDA\.gradle\caches\modules-2\files-2.1\org.xerial.snappy\snappy-java\1.1.10.5\ac605269f3598506196e469f1fb0d7ed5c55059e\snappy-java-1.1.10.5.jar kr.co.chunjae.backend.BackendApplication
Java HotSpot(TM) 64-Bit Server VM warning: Options -Xverify:none and -noverify were deprecated in JDK 13 and will likely be removed in a future release.
. ____ _ __ _ _
/\\ / ___'_ __ _ _(_)_ __ __ _ \ \ \ \
( ( )\___ | '_ | '_| | '_ \/ _` | \ \ \ \
\\/ ___)| |_)| | | | | || (_| | ) ) ) )
' |____| .__|_| |_|_| |_\__, | / / / /
=========|_|==============|___/=/_/_/_/
:: Spring Boot :: (v3.2.6)
2025/04/22 15:58:52 [INFO ] - [background-preinit] class: internal.util.Version => method: <clinit>(line: 21) >> HV000001: Hibernate Validator 8.0.1.Final
2025/04/22 15:58:52 [INFO ] - [restartedMain] class: chunjae.backend.BackendApplication => method: logStarting(line: 50) >> Starting BackendApplication using Java 17.0.3 with PID 38576 (D:\aidt_realtime_quiz_intelliJ\real-time-dev\real-time-dev\backend\out\production\classes started by hayoung in D:\aidt_realtime_quiz_intelliJ\real-time-dev)
2025/04/22 15:58:52 [INFO ] - [restartedMain] class: chunjae.backend.BackendApplication => method: logStartupProfileInfo(line: 660) >> The following 1 profile is active: "local"
2025/04/22 15:58:52 [INFO ] - [restartedMain] class: devtools.env.DevToolsPropertyDefaultsPostProcessor => method: logTo(line: 252) >> Devtools property defaults active! Set 'spring.devtools.add-properties' to 'false' to disable
2025/04/22 15:58:52 [INFO ] - [restartedMain] class: devtools.env.DevToolsPropertyDefaultsPostProcessor => method: logTo(line: 252) >> For additional web related logging consider setting the 'logging.level.web' property to 'DEBUG'
2025/04/22 15:58:53 [INFO ] - [restartedMain] class: embedded.tomcat.TomcatWebServer => method: initialize(line: 109) >> Tomcat initialized with port 8087 (http)
2025/04/22 15:58:53 [INFO ] - [restartedMain] class: coyote.http11.Http11NioProtocol => method: log(line: 173) >> Initializing ProtocolHandler ["http-nio-8087"]
2025/04/22 15:58:53 [INFO ] - [restartedMain] class: catalina.core.StandardService => method: log(line: 173) >> Starting service [Tomcat]
2025/04/22 15:58:53 [INFO ] - [restartedMain] class: catalina.core.StandardEngine => method: log(line: 173) >> Starting Servlet engine: [Apache Tomcat/10.1.24]
2025/04/22 15:58:53 [INFO ] - [restartedMain] class: [Tomcat].[localhost].[/] => method: log(line: 173) >> Initializing Spring embedded WebApplicationContext
2025/04/22 15:58:53 [INFO ] - [restartedMain] class: servlet.context.ServletWebServerApplicationContext => method: prepareWebApplicationContext(line: 296) >> Root WebApplicationContext: initialization completed in 1212 ms
2025/04/22 15:58:54 [INFO ] - [restartedMain] class: backend.config.S3Config => method: s3Client(line: 35) >> Creating Amazon S3 client, 74DA15D0E8943102E713 , 1EA4D1E1CB273AA207AE7735608988F94B6C0740
2025/04/22 15:58:54 [WARN ] - [restartedMain] class: amazonaws.util.Base64 => method: warn(line: 113) >> JAXB is unavailable. Will fallback to SDK implementation which may be less performant.If you are using Java 9+, you will need to include javax.xml.bind:jaxb-api as a dependency.
Configuration has 1 rules
Rule ID: CORSRule
MaxAgeSeconds: 3000
AllowedMethod: [PUT, GET, POST]
AllowedOrigins: [*]
AllowedHeaders: [*]
ExposeHeader: null
2025/04/22 15:58:55 [INFO ] - [restartedMain] class: security.web.DefaultSecurityFilterChain => method: <init>(line: 54) >> Will secure any request with [org.springframework.security.web.session.DisableEncodeUrlFilter@8cd28cc, org.springframework.security.web.context.request.async.WebAsyncManagerIntegrationFilter@59debc7c, org.springframework.security.web.context.SecurityContextHolderFilter@244ed783, org.springframework.security.web.header.HeaderWriterFilter@28150d1d, org.springframework.web.filter.CorsFilter@2e67b6f6, org.springframework.security.web.authentication.logout.LogoutFilter@25224de1, org.springframework.security.web.savedrequest.RequestCacheAwareFilter@795f6e7, org.springframework.security.web.servletapi.SecurityContextHolderAwareRequestFilter@7671b718, org.springframework.security.web.authentication.AnonymousAuthenticationFilter@7d4fc47c, org.springframework.security.web.access.ExceptionTranslationFilter@3c1987c0, org.springframework.security.web.access.intercept.AuthorizationFilter@4a3c7f80]
2025/04/22 15:58:55 [INFO ] - [restartedMain] class: devtools.autoconfigure.OptionalLiveReloadServer => method: startServer(line: 59) >> LiveReload server is running on port 35729
2025/04/22 15:58:55 [INFO ] - [restartedMain] class: coyote.http11.Http11NioProtocol => method: log(line: 173) >> Starting ProtocolHandler ["http-nio-8087"]
2025/04/22 15:58:55 [INFO ] - [restartedMain] class: embedded.tomcat.TomcatWebServer => method: start(line: 241) >> Tomcat started on port 8087 (http) with context path ''
2025/04/22 15:58:55 [INFO ] - [restartedMain] class: chunjae.backend.BackendApplication => method: logStarted(line: 56) >> Started BackendApplication in 3.13 seconds (process running for 4.158)
위와 같은 로그가 나오면 8087 포트로 정상 실행된 것입니다.
외부 톰캣 추가
우측 상단 Edit Configurations > 좌측 상단 + 버튼 > Tomcat Server : Local 선택 > Name : 톰캣명-버전 입력 > Application server : Configuration 클릭 > + > Tomcat Home : 톰캣 홈페이지에서 다운받은 톰캣 폴더 선택 (예시 : apache-tomcat-9.0.63) > OK > OK > HTTP Port : 프로젝트 URL 포트 입력 > OK
톰캣에 프로젝트 추가
하단 Services > Tomcat Server > 톰캣명 우클릭 > Artifacts > 배포할 project명:war exploded 선택 > Add
IntelliJ Vue 프로젝트 사용 방법
Vue 프로젝트 node_modules 폴더 추가
D:
cd D:\aidt_realtime_quiz_intelliJ\real-time-dev\real-time-dev\frontend
npm install
cmd 창에서 Vue 프로젝트 경로로 이동 후 npm install 명령어로 node_modules 폴더를 생성합니다.
Vue 프로젝트 빌드 설정
우측 상단 Edit Configurations > 좌측 상단 + 버튼 > npm 선택 > package.json : ▼ 아이콘 클릭 후 현재 Vue 프로젝트 폴더 내 package.json 경로 선택 > Command: run 선택 > Scripts : local 입력 (로컬 실행 시 사용할 프로파일 입력) > Apply > OK
추가한 npm 구성 우측 ▶ 클릭 시 Vue 프로젝트 실행이 됩니다.
package.json 경로 예시
D:\aidt_realtime_quiz_intelliJ\real-time-dev\real-time-dev\frontend\package.json
Vue 프로젝트 로컬 실행 정상메시지
D:\nodejs\npm.cmd run local
> frontend@0.0.0 local
> vite --mode .env.local
Browserslist: browsers data (caniuse-lite) is 6 months old. Please run:
npx update-browserslist-db@latest
Why you should do it regularly: https://github.com/browserslist/update-db#readme
Port 8082 is in use, trying another one...
VITE v5.3.1 ready in 2295 ms
➜ Local: http://localhost:8083/
➜ Network: use --host to expose
➜ press h + enter to show help
하단 Run 메뉴 > npm 탭에 위와 같은 로그가 출력되면, http://localhost:8082 URL로 접근이 가능합니다.
하나의 IntelliJ 창에서 백엔드 프로젝트와 프론트 프로젝트 상위 폴더를 Open 하고,
SpringBoot 내장 톰캣 구성, Vue npm 구성을 각각 다른 포트로 실행하면 동시에 실행이 가능합니다.
npm install 없이 npm 빌드 시 오류메시지
D:\nodejs\npm.cmd run local
> frontend@0.0.0 local
> vite --mode .env.local
'vite'은(는) 내부 또는 외부 명령, 실행할 수 있는 프로그램, 또는
배치 파일이 아닙니다.
Vue 프로젝트 실행 시 node_modules 폴더가 반드시 필요합니다.
IntelliJ Git 사용법
https://0songha0.github.io/tool/2022-06-05-1
IntelliJ에서 이클립스 프로젝트 사용법
https://0songha0.github.io/web-dev/2024-05-29-1
IntelliJ 단축키
파일 이름 검색 | Ctrl + Shift + N 또는 Shift 더블클릭 |
전체 코드 검색 | Ctrl + Shift + F |
소스 전체 검색해서 바꾸기 | Ctrl + Shift + R |
클래스로 이동 (소스 타고 들어가기) | Ctrl 클릭 또는 객체/함수에서 Ctrl + B |
구현 클래스로 이동 (impl 이동) | 객체/함수에서 Ctrl + Alt + B |
현재 파일 닫기 | Ctrl + F4 |
한 라인 복제 | Ctrl + D |
한 줄 주석 | Ctrl + / |
여러 줄 주석 | 범위 지정 후 Ctrl + Shift + / |
파일 이름 변경 | Shift + F6 |
소스 자동완성 (import문, 빌드도구에서 자동완성 등) |
Ctrl + Space |
대소문자 변환 | Ctrl + Shift + U |
IntelliJ 디버깅 방법
디버깅 포인트 설정하고 우측 상단 벌레 아이콘 클릭하여 디버깅 모드로 실행 후
F8 | 다음 단계 또는 다음 줄로 이동 |
F9 | 다음 디버깅 포인트로 이동 |
Evaluate > Expression에서 변수 값들을 확인 가능합니다.
Leave a comment