전체 글

기록합시다.
Effective Java

[아이템 50] 적시에 방어적 복사본을 만들라

책은 방어적 복사의 중요성에 대해 이야기한다. 방어적 복사에 앞서 깊은 복사와 얕은 복사를 알고 가야한다. 깊은 복사 객체 복사 시, 해당 객체와 인스턴스 변수까지 복사한다. 전부 복사해서 새 주소에 담는 ( 주소값은 달라진다) 즉 원본과 복사 객체는 독립적인 별개의 객체이되, 내부 정보는 동일한 상태로 초기화 하는 것. @Override public Object clone() throws CloneNotSupportedException{ return super.clone(); } 보통 위의 clone 메소드로 복사 하게된다. public static void main(String[] args) { try { // 원본 객체 생성 Person originalPerson = new Person("Alice..

TIPS

[Intellij plugin] 인텔리제이 플러그인 만들기 2

앞서 만든 1편 참고. 결과물 : [Intellij plugin] intellij plugin 만들기 왜? 인텔리제이 플러그인 개발하니 쿼리 테스트 해야는데 자꾸 맞는 문법인지 찾으러 인터넷사이트 돌아다녀서 하나하나 붙여서 테스트 하는게, 보안적으로 걱정도 되고 귀찮기도 해서 직접 만 girinprogram93.tistory.com 2편이다. 첫번째 플러그인은 많이 부족했다. 세팅도 얼탱이없는 걸로 했었고 그렇기 때문에 젯브레인 마켓플레이스 담당자와 메일을 주고 받았었따. 쨌든 두번째 플러그인이다. 이번엔 아이콘도 달았다. https://plugins.jetbrains.com/plugin/22309-recommend-variable 시작한다. 1. 플러그인 만들기 소개 : 영어 변수가 생각 안나면 한글로..

TIPS

[Intellij plugin] intellij plugin 적용 및 배포

플러그인 프로젝트 설정 및 개발 단계는 다음 글에서 확인가능합니다. [Intellij plugin] intellij plugin 만들기 왜? 인텔리제이 플러그인 개발하니 쿼리 테스트 해야는데 자꾸 맞는 문법인지 찾으러 인터넷사이트 돌아다녀서 하나하나 붙여서 테스트 하는게, 보안적으로 걱정도 되고 귀찮기도 해서 직접 만 girinprogram93.tistory.com 플러그인 배포 1. 빌드 및 로컬 적용 빌드를 한다면, 다음과 같은 파일이 생성됩니다. 현재쓰고있는 IDE에 우선 적용 빌드한 압축파일을 선택합니다. 현재 IDE에 적용 되었음을 확인합니다. 2. plugin 배포 정확한 테스트를 위해 실제 플러그인으로 배포를 해봅니다. https://plugins.jetbrains.com/plugin/add..

TIPS

[Intellij plugin] intellij plugin 만들기

왜? 인텔리제이 플러그인 개발하니 쿼리 테스트 해야는데 자꾸 맞는 문법인지 찾으러 인터넷사이트 돌아다녀서 하나하나 붙여서 테스트 하는게, 보안적으로 걱정도 되고 귀찮기도 해서 직접 만듦. Intellij version : 프로젝트 생성 : preference settings : build.gradle.kts 설정 : plugins { id("java") id("org.jetbrains.intellij") version "1.12.0" } group = "com.org" version = "1.0-SNAPSHOT" repositories { mavenCentral() } // Configure Gradle IntelliJ Plugin // Read more: intellij { version.set("20..

TIPS

[intelliJ] new Project gradle not found

신규 프로젝트 생성시 gradle 이 안보이는 경우 : 해결책 1. 그래들 플러그인을 재설치한다 - 이후 재시작 그래들 플러그인 설치되어있음을 확인했다. 해결책 2. disabled_plugins.txt를 삭제한다. 경로 : 출처 : https://intellij-support.jetbrains.com/hc/en-us/community/posts/4408495688594-missing-gradle

JAVA/SPRING

[Spring] @Valid , @Validated, BindingResult

미리 보기 페이지를 테스트 하는 도중 의문이 생겼다. @Valid 로 DTO 객체의 유효성 검증을 하고 BindingResult 를 통해 에러를 리턴하는 이유는 뭘까? 우선 선언은 각각 다음과 같다. import org.springframework.validation.BindingResult; import javax.validation.Valid; Spring에서 제공하는 BindingResult 와 달리 Valid는 자바에서 제공한다. BindingResult : 스프링 공식문서의 설명에 따르면, 바인딩 결과를 나타내는 것으로, Errors 오류 등록인터페이스를 확장하고, @validator 를 적용할 수 있도록 한다고 한다. * 즉 오류를 확장하는 목적이다. @Valid : ( spring boot ..

JAVA

[JAVA] compareTo

[가장 큰 수] 라는 정렬 알고리즘 문제를 풀다가 접했다. 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr 직접 정렬을 하는 방식으로 풀려고 했지만 시간 초과가 계속 발생했다. 문제의 해결책은 compareTo 라는 함수를 사용하는 방식. + 이어진 두 수의 크기를 비교하는 방법이 핵심아이디어이다. 🍺 java.util.Comparator 클래스에 있는 하위 메서드 compareTo 이다. // 문자형(대소문자구분) StrA.compareTo(StrB); A != B -> return 다른 문자 개수; 동일한 문자로 시작 하지 않을 경우 + 중간은 같은 문..

ERROR

[intellij] Stuck Scanning files to index

인덱싱에서 계속 반복될 경우 : Synchronize .... 를 제외한다. invalidate Caches.. - 마지막 4번째 항목 체크하고 리스타트 한다.

TIPS

Logi Options+ memory leak

logi Options+ 메모리 겁나 잡아먹는다.. 처음에는 뭔가 잘못나왔나? 버그인가 싶었는데 맥에서는 메모리 누수가 있나보다. https://www.reddit.com/r/logitech/comments/qov2lr/how_come_the_logi_options_takes_so_much_ram_in/ r/logitech on Reddit: How come the Logi options + takes so much RAM in the background? Posted by u/lkl2050 - 31 votes and 91 comments www.reddit.com 패치가 되었다고 하는데.. 알 수 없으니 종료하고 안써야겠다.

ERROR

[ERROR] Invalid character found in the request target ... The valid characters are defined in RFC 7230 and RFC 3986

java.lang.IllegalArgumentException: Invalid character found in the request target [/v1/user/students/contracts/list?type=normal&date_type=range&from_date=2023-04-19&to_date=2023-05-19&user_type=&grade=all&searchType=all&keyword=&service_status[]=S1&service_status[]=3&page_size=10&page_count=1&flag=manager ]. The valid characters are defined in RFC 7230 and RFC 3986 service_status 를 배열로 보냈기 때문에 발..

girin_dev
girin_dev