본문 바로가기
728x90
반응형

개발32

[Java] Java8에서의 날짜/시간 비교 (LocalDateTime) Java8 이전에는 흔히 알고 있는 Date, Calendar를 통해 날짜시간을 비교했었는데 불편한 사항이 많았다. 하지만 Java8 부터는 LocalDateTime, LocalDate, LocalTime, ZonedDateTime을 제공하기 때문에 기존의 불편한 사항이 많이 해소 되었다. 그래서 오늘은 많이 쓰이는 LocalDateTime을 이용한 대표적으로 날짜/시간 비교하는 함수를 정리해두려고 한다. isBefore() 인자보다 과거일 때 true 반환 LocalDateTime oldDate = LocalDateTime.parse("2021-11-10T10:11:15.000"); LocalDateTime newDate = LocalDateTime.parse("2021-12-16T10:11:15.00.. 2021. 11. 16.
[Intellij] Type: In word 경고창 지우기(스펠링 체크 제거) for Mac 매번 주황색으로 인텔리제이에서 나타나는 경고 밑줄은 도움 될 때도 많지만 거슬릴 때가 더 많다. 그래서 항상 스펠링체크 제거할 때마다 구글에서 검색헀는데 블로그에 정리하면서 머릿속에 기억해두려고 한다. Mac 기준 스펠링 제거 경로 Intellij IDEA > Preference > Inspections > Proofreading > Typo 이다. 여기에서 Typo 부분을 체크 해제 해주면된다. 구글에서 인텔리제이 스펠링 제거를 검색했을 때 Inspections까지는 똑같은데 Spelling이라는 키워드가 없어서 해맸는데 이번 기회에 잘 알아두도록 하자 2021. 11. 11.
hombrew 설치 및 zsh: command not found 해결 터미널에서 버전확인을 위해 npm -v 입력했을 때 이런식으로 나오길래 당황해서 구글링으로 해결했는데 나중에 똑같은 에러가 발생했을 때를 위해 기록해 두려고한다. zsh: command not found: npm zsh: command not found: node 또는 homebrew 설치를 위한 brew를 입력하면 똑같이 zsh 에러가 나타나는것을 확인할 수 있는데 /opt/homebrew 디렉토리 삭제 후 아래 방법으로 다시 설치하니 해결 됬었다. 1. /opt 디렉토리 이동 cd /opt 2. Homebrew 디렉토리를 만든다 (root 권한 필요) sudo mkdir homebrew 3. /opt/homebrew 디렉토리의 소유권을 부여(root 권한이 필요 없도록) sudo chown -R $(.. 2021. 11. 8.
[Java] 두 개의 List를 stream을 사용해서 비교하기 List를 비교하는 방법은 여러가지가 있다. 오늘은 java8부터 제공하는 stream을 사용해서 비교하는 방법을 알아보려고 한다. 예제1. List 2개를 각각 비교해 중복 되지 않은 값 찾기 void listTest() { List oldList = Arrays.asList("1", "2", "3", "4"); List newList = Arrays.asList("3", "4", "5", "6"); List resultList1 = oldList.stream() .filter(old -> newList.stream().noneMatch(Predicate.isEqual(old))) .collect(Collectors.toList()); System.out.println(resultList1); // [.. 2021. 10. 28.
[Lombok] @NoArgsConstructor, @AllArgsConstructor, @RequireArgsConstructor Lombok에서 제공하는 기능 중 가장 대표적인 @Date, @Getter, @Setter 외에도 생성자를 자동 생성 해주는 @NoArgsConstructor, @AllArgsConstructor, @RequrieArgsConstructor에 대해 어떤것을 의미하는지 알아보자. @NoArgsConstructor 파라미터가 없는 기본 생성자를 생성한다. @AllArgsConstructor 모든 필드 값을 파라미터로 받는 생성자를 생성한다. @RequireArgsConstructor final이나 @NonNull인 필드 값만 파라미터로 받는 생성자를 생성한다. 예제 @NoArgsConstructor @AllArgsConstructor @RequireArgsConstructor public class User.. 2021. 10. 27.
[Java] 깊은복사와 얕은복사(Call By Value & Call By Reference) 자바를 떠나서 프로그래밍을 하다 보면 꼭 알아야할 개념 중 하나인 Call By Value, Call By Reference에 대해 알아보자. Call By Value 값을 호출 하는것을 의미하며 전달 받은 값을 복사하여 처리한다. 전달 받은 값을 변경하여도 원본은 변경되지 않는다. Call By Reference 참조에 의한 호출을 의미하며, 전달 받은 값을 직접 참조한다. 전달 받은 값을 변경할 경우 원본도 같이 변경이 된다. 그렇다면 자바에서의 Call By Value와 Call By Reference는 어떻게 적용이 될까? 기본 자료형 변수가 파라미터 → 값 (깊은 복사) Array, List 등의 변수가 파라미터 → 주소(얕은 복사) 아직 정확하게 깊은 복사와 얕은 복사가 어떤 건지 이해가 안되.. 2021. 10. 27.
728x90
반응형