Java 11

<JAVA> 롬복(Lombok) 사용법

Project Lombok은 java 개발에 있어서 반복적인 코드 작성을 줄이고, 코드의 가독성을 높이기 위한 라이브러리이다. 롬복은 애노테이션을 사용하여 컴파일 시 자동으로 코드를 생성하거나 수정하는 방식으로 작동한다. 롬복을 사용함으로써, 코드는 간결해지고, 가독성이 향상되며, 유지보수성을 개선할 수 있다. 롬복 설정 1. Maven (pom.xml) org.projectlombok lombok 1.18.20 2. Gradle(build.gradle) dependencies { implementation 'org.projectlombok:lombok:1.18.20' } 사용 예제 1. @Getter / @Setter //getter 및 setter 메소드 생성 @Getter @Setter public..

Java 2023.04.21

<JAVA> Optional객체

Java의 ‘Optional’객체는 ‘java.util.Optional’클래스를 사용하여 값을 포장하는 컨테이너이다. 이 클래스는 null값을 처리하는데 도움이 되며, NullPointerException을 방지하고 코드의 가독성을 높이는데 사용된다. 사용법 1.객체 생성 // 빈 Optional 객체 생성 Optional emptyOptional = Optional.empty(); // Non-null 값으로 Optional 객체 생성 Optional nonNullOptional = Optional.of("Hello"); // Null 값이 허용되는 Optional 객체 생성 Optional nullableOptional = Optional.ofNullable(null); 2.값 가져오기 String ..

Java 2023.04.20

<JAVA> LocalDateTime 사용법

java.time.LocalDateTime은 Java 8에서 도입된 새로운 날짜-시간 API 중 하나로, 날짜와 시간을 함께 표현할 수 있는 불변 객체이다. LocalDateTime은 날쨔와 시간 정보를 함께 저장하며, LocalDate와 LocalTime 클래스의 결합으로 볼 수 있다. 이 클래스를 사용하면 날짜와 시간 정보를 함께 처리할 수 있다. 사용 방법 1. 객체 생성 // 현재 날짜와 시간으로 객체 생성 LocalDateTime currentDateTime = LocalDateTime.now(); // 특정 날짜와 시간으로 객체 생성 LocalDateTime customDateTime = LocalDateTime.of(2023, Month.APRIL, 10, 15, 30); // 문자열로부터 ..

Java 2023.04.13

Mockito란 무엇인가?

Mockito는 자바 언어를 사용하는 소프트웨어 개발자들이 단위 테스트를 작성하는 데 사용하는 오픈 소스 프레임워크이다. Mockito는 단위 테스트를 작성할 때 모의 객체(Mock Object)를 생성하고 관리하는 데 사용된다. 모의 객체는 실제 객체와 비슷하지만, 프로그래머가 직접 제어할 수 있는 가짜 객체이다. 모의 객체는 실제 객체를 사용하는 경우에 발생할 수 있는 여러 가지 문제를 방지할 수 있다. 예를 들어, 외부 서비스나 데이터베이스와 같은 리소스를 사용하는 객체의 경우, 실제 리소스에 대한 의존성을 제거하고 테스트를 수행할 수 있다. Mockit의 기능 - 모의 객체 생성: Mockito는 자동으로 모의 객체를 생성하고, 객체의 메서드 호출을 기록하고, 호출 횟수와 인자를 확인하는 기능을 ..

Java 2023.03.02

JUnit5란 무엇인가?

JUnit5는 Java 언어를 사용하는 소프트웨어 개발자들이 단위 테스트를 작성하는 데 사용되는 프레임워크이다. JUnit5의 주요 기능은 다음과 같다. - 모듈 시스템 지원: JUnit5는 Java 9 이상의 모듈 시스템을 지원한다. - 확장 모델: JUnit5는 테스트 라이프사이클과 실행 모델을 확장할 수 있는 플러그인 아키텍처를 제공한다. 이를 통해 사용자 정의 태그, 조건부 실행, 다중 실행 등과 같은 기능을 추가할 수 있다. - 더 나은 테스트 라이프사이클: JUnit5는 테스트 라이프사이클을 확장하여 더욱 유연한 테스트 수명주기를 제공한다. 예를 들어, 이전 버전의 JUnit에서는 @Before 및 @After 어노테이션을 사용하여 각 테스트 전후에 실행되는 코드를 정의할 수 있다. JUnit..

Java 2023.03.01

<JAVA> Stream sorted 메서드

Stream sorted 메서드는 무엇인가? Stream을 정렬할 때 사용하는 Stream 의 중간연산자이며, 오름차순이 아닌 다른 방식으로 정렬할 땐 Comparator 또는 Comparable을 사용해서 정렬 형식을 지정해준다. Stream sorted 사용 예시 우선 다음과 같은 학생 객체가 있다고 가정해보자. 각 학생마다 이름과 성적이 주어진다. List students = new ArrayList(); students.add(new Student("이정규", 80)); students.add(new Student("김정규", 70)); students.add(new Student("박정규", 60)); students.add(new Student("독고정규", 60)); students.add(..

Java 2023.01.24

<JAVA> Stream Map메서드

Stream Map메서드는 무엇인가? - 스트림은 파라미터로 제공되는 함수(Function관련된 함수형 인터페이스)를 적용해서 기존 요소를 새로운 요소로 매핑시키는 map이라는 메서드를 제공한다. - 기존 값을 변경한다는 개념보다는 새로운 값을 만든다는 개념이므로 변환(transforming) 에 매핑(mapping) 이라는 단어를 사용한다. Stream Map 사용 예제 다음과 같은 String Type의 과일 이름이 소문자로 있다고 가정해 보자. List fruitsList = new ArrayList(); fruitsList.add("apple"); fruitsList.add("banana"); fruitsList.add("pear"); fruitsList.add("grape"); Stream ma..

Java 2023.01.23

<Java> Stream Filter 메서드

filter 메서드 Stream 클래스에서 제공하는 filter() 메서드는 Predicate를 인수로 받아서 일치하는 모든 요소를 포함하는 스트림으로 반환합니다. filter 메서드 특징 - filter() 메서드는 중개 연산(intermediate operation)을 수행하므로 새로운 스트림을 생성합니다. - 특정 조건을 만족하는 요소로 구성된 새로운 스트림을 생성합니다. - filter() 메서드의 매개변수는 함수형 인터페이스인 Predicate입니다. 따라서, 람다 표현식도 전달할 수 있습니다. - filter() 메서드의 매개변수에는 한 개의 매개변수를 가지며, Boolean 타입의 값을 반환하는 람다 표현식 또는 Predicate 타입의 객체가 전달되어야 합니다. filter 메서드 사용 예..

Java 2023.01.21

JAVA Stream

JAVA STREAM이란? java8부터 지원하는 Stream은 컬렉션, 배열등에 대해 저장되어 있는 요소들을 하나씩 참조하며 반복적인 처리를 가능케하는 기능이다. 이러한 Stream을 이용한다면 불필요한 for문이나 Each문과 그 안에서 이루어지는 if문등의 분기처리를 쓰지 않고도 깔끔하고 직관적인 코드로 변경할 수 있다. Stream API의 특징 - 스트림은 외부 반복을 통해 작업하는 컬렉션과 다르게, 내부 반복을 통해 작업을 수행합니다 - 스트림은 재사용이 가능한 컬렉션과 다르게 단 1번만 사용할 수 있습니다. - 스트림은 원본 데이터를 변경하지 않고, 복사해서 사용됩니다. - 스트림 연산은, 필터-맵(filter-map) 기반의 API를 사용하여 지연(Lazy) 연산을 통해 성능을 최적합니다...

Java 2023.01.20