'intellij'에 해당하는 글 3건

Intellij 한글 깨짐

Daily/Prog 2019. 10. 24. 21:11

이 거지같은 한글 깨짐은 20년 동안 사라지질 않네.ㅋㅋ (한글 디스 아님!)




사건발단


1. 오늘 몇년전 프로젝트를 열었다가 IntelliJ 콘솔에서 우연히 한글깨짐을 발견했다.

2. 최근 프로젝트에서도 한글을 써보니 콘솔에서 한글깨짐이 발생했다. (한동안 영어만 쓰고 살았음...ㅡㅡv)

3. gradle 의 clean 작업을 실행하면서 build.gradle 의 한글이 깨졌으니 tomcat 의 문제는 아니다.

4. IntelliJ 가 실행될 때의 어느 곳에 있는 자바 옵션이 실행되는지를 체크하고 인코딩을 설정해야 한다. -Dfile.encoding=UTF-8



삽질


1. 시스템 환경변수 세팅

2. C:\Program Files\JetBrains\IntelliJ IDEA 2019.2.1\bin 의 idea.exe.vmoptions 과 idea64.exe.vmoptions

3. IntelliJ - Run/Debug Configurations - VM options


다 필요없음...



해결


IntelliJ - Help -  Edit Custom VM Options...  메뉴 열고  -Dfile.encoding=UTF-8  를 추가하여 해결.

파일위치는 C:\Users\username\.IntelliJIdea2019.2\config\idea64.exe.vmoption

오우... 사용자마다 세팅이 가능하게 되어 있나... 아니면 IntelliJ 사용자 등록하면서 별도 세팅이 되었던지...

암튼 이렇게 해결~~






WRITTEN BY
손가락귀신
정신 못차리면, 벌 받는다.

트랙백  0 , 댓글  6개가 달렸습니다.
  1. 차분하게꾸준히 2020.02.19 04:52
    오... 도움 됐어요 감사합니다!
  2. 따봉!
  3. 감사합니다 2020.02.26 12:11
    드뎌 해결 되었네요!
secret

Intellij upgrade

Daily/Prog 2019. 8. 27. 21:45

업그레이드 한지 1년 정도된 회사 컴퓨터. 요녀석은 온 첫날부터 블루스크린 기술을 보였었다. 1달에 한번 나타났던 블루스크린이 최근에는 하루에 5번도 나타나 나를 괴롭혔다. 나이가 들며 인내심이 강해진 나는 컴퓨터가 이 지경이 될때까지 참고 또 참았는데 프로젝트 하나가 살짝 끝난 시점에 결국 포맷을 결심했다. 블루스크린을 참았던 것도 각종 프로그램 재설치/재설정 하는게 구찮아서 였는데... 그렇게 해서 거의 1년만에 프로그램들도 버전 업그레이드를 했는데... intellij 가 문제가 됐다.




처음엔  .gitignore  파일이 문제였다. 일단 뭔가 문제가 생긴듯한 저 이상한 아이콘... 인식이 안됐는줄 알고 여기서 2시간 정도 뻘짓. 실제로 새로 pull 받은 파일들임에도 불구하고 git 에 untracked file 들이 수두룩하게 떴음. git 신버전 깔았다가 구버전도 깔았다가, git 이랑 gitignore 플러그인에서 해결될 만한것도 설치해보고 지우고... 하지만 나중에 보니 저 아이콘은 단지 .gitignore 의 새로운... 아이콘일 뿐이고, 문법이 엄격해졌는지 몇개의 상위 디렉토리가 통과된 바람에 untracked file 이 나타난 것이었다. 명확하지 않았던 정규화 사용이 문제... 문법 재조정으로 해결.




또하나. 4시간짜리 뻘짓. gradle 창에 모듈별 task 가 안나오는 또 하나의 어이없는 상황. 이전 버전 intellij 에서 잘나오던게 갑자기 안나오니 참... gradle 설정을 싹다 뒤졌다. gradle 버전별로 깔아보고 쌩쑈를 다했는데 결국엔 intellij 에서 gradle 의 project-level setting 이 사라져버린 것. 저  using explicit module groups  옵션을 선택하지 못하는 바람에 생겨버린 요상한 상황. 결국 .(dot) 으로 구분된 모듈명에서 dot 을 없애버렸다.ㅋㅋ 모듈명에 dot 을 붙인 분도 좀 그렇지만 이렇게 연락도 없이 옵션을 막 빼버리는건 너무한거 아니오?! 갈수록 새 제품 쓰는게 짜증난다. 설정하고 세팅하고 이런데다가 시간 허비하는거 이제 제발 그만~~~~





WRITTEN BY
손가락귀신
정신 못차리면, 벌 받는다.

트랙백  0 , 댓글  0개가 달렸습니다.
secret

devtools 는 이름처럼 어플리케이션 개발시 유용한 기능들을 포함하고 있는 Spring Boot 모듈이다.

개발 도중 결과를 확인하기 위해 build 를 수동으로 실행하고 브라우저를 새로고침 하여 결과를 확인하는 동작을 자동화하는 것이 특히 유용하다.

gradle 에서 devtools 를 사용하려면 dependency 에 아래처럼 한 줄만 추가한다.


configurations {     developmentOnly     runtimeClasspath {         extendsFrom developmentOnly } }

dependencies {
    developmentOnly("org.springframework.boot:spring-boot-devtools")
}
cs


그리고 IDE 마다 설정이 약간씩 틀린데 어플리케이션 실행 중 자동 빌드에 관련한 옵션을 설정한다. (아래: Intellij)


  • File -> Settings [Ctrl-Alt-S] -> 검색 Compiler -> Build project automatically 체크
  • [Ctrl-Shift-A] -> Registry... -> compiler.automake.allow.when.app.running 체크
  • Run - Edit Configurations... - On 'Update' action / On frame deactivation: 적절히 선택 (Update classes and resources 등...)


이제 mainClass 를 실행(run) 시키고 코드를 수정하면 수초 뒤 변경 사항을 브라우저를 새로고침 하여 확인할 수 있다. 패키지(archive) 된 어플리케이션을 실행하면 production 모드로 간주하고 devtools 를 비활성화 하기 때문에 java -jar 나 bootRun 등을 이용하여 어플리케이션을 실행하면 devtools 는 동작하지 않는다. devtools 는 클래스 패스에 존재하는 코드 변경만 주시하므로, 특정 디렉토리의 코드만 자동 빌드가 되지 않는다면 클래스 패스에 추가하는 등의 방법으로 해결해야 한다.



Live Reload


spring-boot-devtools 모듈에는 리소스가 변경 될 때 브라우저가 새로 고침을 할 수 있게 하는 LiveReload 서버가 포함되어 기본으로 활성화 되어 있다.

서버브라우저에 liveReload 확장 프로그램을 설치하면, 코드 수정 후 사용자가 브라우저를 새로고침 하지 않아도 자동으로 새로고침 되어 보여진다.



Cache disabled


Spring Boot 의 몇가지 라이브러리는 성능 향상을 위해 캐시를 사용하는데, devtools 를 사용 중에는 사용자가 자동 빌드를 즉시 확인할 수 있도록, 알려진 템플릿 관련 캐시를 모두 비활성화 하는 것을 기본값으로 한다. application.properties 에 명시하여 수정도 가능하다. (예: spring.thymeleaf.cache=false)


아래는 devtools 의 자동화에 관련된 기본값이다. application.properties 파일에서 수정할 수 있다.


spring.devtools.livereload.enabled=true

spring.devtools.restart.enabled=true




WRITTEN BY
손가락귀신
정신 못차리면, 벌 받는다.

트랙백  0 , 댓글  4개가 달렸습니다.
  1. developmentOnly
    runtimeClasspath {
    extendsFrom developmentOnly
    }
    configurations{}에 위에 것은 왜 추가 안 하나요? 예제보면 저렇게 하라고 나와있던데? 하고 안 하고 차이가 없나요?
    • 수정했습니다. developmentOnly 를 위와 같이 수정한 경우 프로젝트에서 사용되는 다른 모듈에 적용되는 것을 방지할 수 있습니다.
  2. 개발자 2019.10.08 01:37
    안녕하세요, livereload 적용 했는데 새로고침까지 4~5초 정도가 걸립니다ㅠㅠ 소스 수정시 바로 반영되게 할 수 없을까요??
    • 어떤 IDE 를 사용하시는지, 컴파일이 필요한 수정을 하신건지 모르겠어서 답변이 어렵네요; 해당 IDE 설정으로 검색을 해보시는게 좋겠어요 ^^;
secret