전체 글
-
Save Actions Save Actions는 이클립스에서 파일을 저장할 때 추가로 처리할 동작을 설정할 수 있는 기능이다. 여기서는 자바 에디터의 save actions 사용에 대해 정리해보자. 주의할 점은 작성한 코드에 대한 임의적인 변경이 이뤄지기 때문에 호불호가 있다.!! Windows > Preferences > Java > Editor > Save Actions를 통해 메뉴에 진입해보자. 기본 메뉴 - Save Actions를 동작시키려면 Perform the selected actions on save에 대한 체크가 필요하다. - 미리 설정된 formatter에 의해 소스 코드의 포멧을 수정하려면 format source code를 체크한다. - 불필요한 inport 문장을 제거하고 개별 ..
[eclipse] save actionsSave Actions Save Actions는 이클립스에서 파일을 저장할 때 추가로 처리할 동작을 설정할 수 있는 기능이다. 여기서는 자바 에디터의 save actions 사용에 대해 정리해보자. 주의할 점은 작성한 코드에 대한 임의적인 변경이 이뤄지기 때문에 호불호가 있다.!! Windows > Preferences > Java > Editor > Save Actions를 통해 메뉴에 진입해보자. 기본 메뉴 - Save Actions를 동작시키려면 Perform the selected actions on save에 대한 체크가 필요하다. - 미리 설정된 formatter에 의해 소스 코드의 포멧을 수정하려면 format source code를 체크한다. - 불필요한 inport 문장을 제거하고 개별 ..
2020.08.15 -
Cannot infer type argument(s) for ... 발생 상황 타입 파라미터를 사용하는 과정에서 파라미터를 추정할 수 없는데 생략한 체 메서드를 호출하는 경우 대책 적절한 타입 파라미터를 제공해준다. 참조: https://goodteacher.tistory.com/282#infererror Configuration error: found multiple declarations of @BootstrapWith for test class 발생 상황 JUnit등을 이용한 SpringBoot 테스트 작성 시 @BootstrapWith 애너테이션이 두번 이상 사용된 문제로 대부분 @SpringBootTest와 @WebMvcTest가 같이 사용된 경우 대책 웹과 관련 없는 테스트라면 @SpringB..
CCannot infer type argument(s) for ... 발생 상황 타입 파라미터를 사용하는 과정에서 파라미터를 추정할 수 없는데 생략한 체 메서드를 호출하는 경우 대책 적절한 타입 파라미터를 제공해준다. 참조: https://goodteacher.tistory.com/282#infererror Configuration error: found multiple declarations of @BootstrapWith for test class 발생 상황 JUnit등을 이용한 SpringBoot 테스트 작성 시 @BootstrapWith 애너테이션이 두번 이상 사용된 문제로 대부분 @SpringBootTest와 @WebMvcTest가 같이 사용된 경우 대책 웹과 관련 없는 테스트라면 @SpringB..
2020.08.13 -
Comparator의 default method chaining Java에서 정렬을 위해서 Comparator를 사용하는데 어느 순간 다양한 static /default 메서드들이 생겨서 정렬을 훨씬 편하게 처리할 수 있게 되었다. 이 메서드들은 대부분 자기 자신을 리턴해서 chaining 형태로 사용되는데 람다식과 제네릭을 사용하면서 주의할 점이 있어서 관련 내용을 포스팅 한다. Comparator의 static/default 메서드들 다음은 Comparator에 선언된 static 메서드 들이다. 메서드 명 선언부와 설명 naturalOrder() public static
Comparator의 default method chainingComparator의 default method chaining Java에서 정렬을 위해서 Comparator를 사용하는데 어느 순간 다양한 static /default 메서드들이 생겨서 정렬을 훨씬 편하게 처리할 수 있게 되었다. 이 메서드들은 대부분 자기 자신을 리턴해서 chaining 형태로 사용되는데 람다식과 제네릭을 사용하면서 주의할 점이 있어서 관련 내용을 포스팅 한다. Comparator의 static/default 메서드들 다음은 Comparator에 선언된 static 메서드 들이다. 메서드 명 선언부와 설명 naturalOrder() public static
2020.08.13 -
List에서의 자료 삭제 이번 포스트에서는 List에서 데이터 순회 과정에서 자료를 삭제하는 방법과 주의할 사항에 대해 알아보자. 일반적인 반복문에서의 삭제 index를 이용한 for 탐색 과정에서 특정 요소를 삭제하는 과정에서는 index의 조절에 대해 신경 써줘야 한다. 아래와 같이 문자열을 관리하는 List에서 길이 기반으로 삭제하는 메서드가 있다고 생각해보자. static List list; static void init() { list = new ArrayList(); list.add("Hello"); list.add("Java"); list.add("GoGo"); list.add("World"); } static void indexBaseDelete(int len) { for (int i = ..
List에서의 자료 삭제List에서의 자료 삭제 이번 포스트에서는 List에서 데이터 순회 과정에서 자료를 삭제하는 방법과 주의할 사항에 대해 알아보자. 일반적인 반복문에서의 삭제 index를 이용한 for 탐색 과정에서 특정 요소를 삭제하는 과정에서는 index의 조절에 대해 신경 써줘야 한다. 아래와 같이 문자열을 관리하는 List에서 길이 기반으로 삭제하는 메서드가 있다고 생각해보자. static List list; static void init() { list = new ArrayList(); list.add("Hello"); list.add("Java"); list.add("GoGo"); list.add("World"); } static void indexBaseDelete(int len) { for (int i = ..
2020.08.11 -
Integer 사용 시 주의 점 JDK 1.5 버전부터 추가된 Wrapper 클래스에 대한 autobox과 unbox 기능은 프로그래밍에서 아주 유용하게 사용된다. 그러다 어느 시점이 되면 둘을 똑같이 받아들이고 사용하는 경향이 발생하는데 여기서 주의해야 할 점을 정리해둔다. Wrapper는 객체다!! 흔한 상식으로 기본형의 동등 비교에는 ==을 사용하고 객체형의 비교에는 equals를 사용한다는 내용은 잘 아는 내용이다. 그런데 기본형의 wrapper를 사용하다 보면 이런 상식을 까먹고 하고싶은 대로 하는 경우가 왕왕 발생한다. 아래 예를 살펴보자. public class WrapperCareful { public static void main(String[] args) { for(int i=125; ..
Integer 사용 시 주의점Integer 사용 시 주의 점 JDK 1.5 버전부터 추가된 Wrapper 클래스에 대한 autobox과 unbox 기능은 프로그래밍에서 아주 유용하게 사용된다. 그러다 어느 시점이 되면 둘을 똑같이 받아들이고 사용하는 경향이 발생하는데 여기서 주의해야 할 점을 정리해둔다. Wrapper는 객체다!! 흔한 상식으로 기본형의 동등 비교에는 ==을 사용하고 객체형의 비교에는 equals를 사용한다는 내용은 잘 아는 내용이다. 그런데 기본형의 wrapper를 사용하다 보면 이런 상식을 까먹고 하고싶은 대로 하는 경우가 왕왕 발생한다. 아래 예를 살펴보자. public class WrapperCareful { public static void main(String[] args) { for(int i=125; ..
2020.08.07 -
LinkedList vs ArrayList Java에서 순서 있는 목록을 관리하는 인터페이스는 java.util.List 인터페이스이다. List의 특징은 순서가 있는 데이터의 집합으로 순서가 있기 때문에 데이터의 중복이 허용된다. List는 인터페이스이기 때문에 직접 객체를 생성할 수 없고 구현체 class가 필요하다. 이 구현체의 가장 대표적인 클래스가 java.util.ArrayList와 java.util.LinkedList이다. 먼저 각각의 특성에 대해 살펴보자. ArrayList ArrayList는 배열에서 출발한 List ArrayList는 이름에서 풍기듯이 내부적으로 배열을 만들고 데이터를 관리한다. transient Object[] elementData; // non-private to s..
LinkedList vs ArrayListLinkedList vs ArrayList Java에서 순서 있는 목록을 관리하는 인터페이스는 java.util.List 인터페이스이다. List의 특징은 순서가 있는 데이터의 집합으로 순서가 있기 때문에 데이터의 중복이 허용된다. List는 인터페이스이기 때문에 직접 객체를 생성할 수 없고 구현체 class가 필요하다. 이 구현체의 가장 대표적인 클래스가 java.util.ArrayList와 java.util.LinkedList이다. 먼저 각각의 특성에 대해 살펴보자. ArrayList ArrayList는 배열에서 출발한 List ArrayList는 이름에서 풍기듯이 내부적으로 배열을 만들고 데이터를 관리한다. transient Object[] elementData; // non-private to s..
2020.08.02 -
개인적으로 이클립스를 사랑하지만 정말 싫은 것 중 하나가 플러그인 관리 또는 사용법이다. 이클립스는 플러그인 기반으로 기능을 확장하는 아주 좋은 툴인데 아이러니하다. 플러그인 때문에 이클립스에 대한 정이 떨어지는 이유 중 하나는 버전 관리이다. 얼마 전까지 잘 썼는데 이클립스 버전이 올라가면서 플러그인 버전은 안올라가서 지원을 하지 않는 경우가 비일비재 하다. 두 번째는 플러그인 설치 방법이 그냥 파일을 가져다 놓거나 URL 기반으로 하거나 MarketPlace를 하거나 다양해서 일원화가 안된 점이다. 이클립스는 마켓플레이스를 이용한 방식을 추진하고 싶었지만 버전 테스트과정이 번거러워 대부분 그냥 URL 방식으로 사용되는 듯 하다. 개인적으로 습관적으로 포멧하고 깨끗한 상태에서 툴을 세팅하기 좋아하는데 ..
[eclipse] 유용한 플러그인 모음개인적으로 이클립스를 사랑하지만 정말 싫은 것 중 하나가 플러그인 관리 또는 사용법이다. 이클립스는 플러그인 기반으로 기능을 확장하는 아주 좋은 툴인데 아이러니하다. 플러그인 때문에 이클립스에 대한 정이 떨어지는 이유 중 하나는 버전 관리이다. 얼마 전까지 잘 썼는데 이클립스 버전이 올라가면서 플러그인 버전은 안올라가서 지원을 하지 않는 경우가 비일비재 하다. 두 번째는 플러그인 설치 방법이 그냥 파일을 가져다 놓거나 URL 기반으로 하거나 MarketPlace를 하거나 다양해서 일원화가 안된 점이다. 이클립스는 마켓플레이스를 이용한 방식을 추진하고 싶었지만 버전 테스트과정이 번거러워 대부분 그냥 URL 방식으로 사용되는 듯 하다. 개인적으로 습관적으로 포멧하고 깨끗한 상태에서 툴을 세팅하기 좋아하는데 ..
2020.07.30 -
Permission denied(publickey) 발생 상황 git host에서 public key를 이용해서 로그인 하도록 설정되어있는데 public key가 등록이 안된 상황 대책 ssh-keygen 명령을 이용해서 public key를 만들어서 등록한다. https://goodteacher.tistory.com/274 참조
PPermission denied(publickey) 발생 상황 git host에서 public key를 이용해서 로그인 하도록 설정되어있는데 public key가 등록이 안된 상황 대책 ssh-keygen 명령을 이용해서 public key를 만들어서 등록한다. https://goodteacher.tistory.com/274 참조
2020.07.21