반응형

Java 9

[Java] Stream partitioningBy

partitioningBy?partitioningBy 메서드는 자바 8부터 도입된 스트림(Stream) API의 기능 중 하나로, 요소들을 지정한 조건에 따라 두 그룹으로 분할합니다. 조건에 맞는 요소들과 그렇지 않은 요소들을 각각 리스트로 반환하여 처리할 수 있습니다장점partitioningBy 메서드를 사용하면 데이터를 두 그룹으로 쉽게 분할할 수 있어 다양한 상황에서 유용합니다. 예를 들어, 참/거짓 또는 짝수/홀수와 같이 두 가지로 분류할 때 매우 편리하게 사용할 수 있습니다.코드 예제```@Getter@AllArgsConstructorpublic static class MemberResponse {private String name;private Integer no;}@Testvoid parti..

Java 2024.02.13

[Java] Optional<T> isPresent(), ifPresent() 사용하기

Optional을 사용하면 예상치 못한 NullPointerException 예외를 제공되는 메소드로 간단히 회피할 수 있다. 즉, 복잡한 조건문 없이도 널(null) 값으로 인해 발생하는 예외를 처리할 수 있게 된다. 1. isPresent() 메소드 - Boolean 타입 - Optional 객체가 값을 가지고 있다면 true, 값이 없다면 false 리턴 > 예시 코드 user 이메일을 조회 후 user.isPresent() 메소드 사용 값을 가지고 있으면 true "이미 존재하는 이메일" 출력 값이 없으면 false "사용 가능한 이메일" 출력 2. ifPresent() 메소드 - Void 타입 - ifPresent()는 Optional 객체가 값을 가지고 있으면 실행 값이 없으면 넘어감 > 예시..

Java 2022.04.21

[Java] Stream 사용하기

Stream 이란? Java8부터 Stream 사용이 가능해졌다. 컬렉션, 배열등의 저장 요소를 하나씩 참조하여 함수형 인터페이스(람다식)를 적용해 반복적으로 원소를 가공할 수 있도록 해주는 기능 Stream 사용 이유? 배열, 컬렉션을 다룰때 for, foreach 반복문으로 원소를 하나씩 꺼내 가공하던걸 Stream을 이용하면 람다식으로 간결하게 처리가 가능하다. 간결한 만큼 코드의 가독성이 좋아진다! Stream의 가장 기초적인 기능 3가지 1. Filtering (특정 값 찾기) 2. Mapping (특정 값 변환) 3. Sorting (정렬) Filtering Filter는 Stream 원소들을 하나씩 체크해 원하는 값을 찾을 수 있다. 🔻 filter를 이용해 결과값 count 🔻 filter..

Java 2021.12.24

[JPA] JPA란?

JPA(Java Persistence API)란?자바 진영의 ORM 기술에 대한 API 표준 명세 (인터페이스 집합체)JPA는 애플리케이션과 JDBC사이에서 동작한다.ORM (Object-relational mapping)이란?이름 그대로 객체와 관계형 데이터베이스를 매핑하는 것 ORM 프레임워크란?ORM 프레임워크는 객체와 테이블을 매핑해서 패러다임의 불일치를 해결해준다.ORM 프레임워크를 사용하면 객체를 DB에 저장할때 SQL문을 직접 작성하는 것이 아닌 객체를 자바 컬렉션에 저장하듯이 ORM 프레임워크에 저장하면 자동으로 SQL문을 생성해서 DB에 저장한다.ORM 프레임워크를 사용하면 CRUD 할때마다 쿼리를 작성해야하는 반복적인 작업을 줄일 수 있고기존의 SQL 중심의 코딩에서 벗어나 객체 중심의..

Java 2021.12.03

[JPA] orphanRemoval

orphanRemoval = 고아객체 제거고아객체부모 엔티티와 연관관계가 끊어진 자식 엔티티PK값이 NULL로 변한 자식객체 orphanRemoval=true- 고아객체를 자동으로 삭제해주는 코드 CascadeType.REMOVE = orphanRemoval=true 차이점?CascadeType.REMOVE : 자식객체 삭제 X (삭제 동작을 할때 작동하기 때문)orphanRemoval=true : 자식객체 삭제 O (자식객체에서 부모객체를 참조로 확인하기 때문)

Java 2021.12.02

[JPA] CASCADE 란?

CASCADE는 JPA 영속성 전이를 의미한다.타입은 Enum이다. 영속성 전이부모 엔티티가 영속화될 때 자식 엔티티도 같이 영속화되고, 부모 엔티티가 삭제될 때 자식 엔티티도 삭제되는 등 특정 엔티티를 영속 상태로 만들 때 연관된 엔티티도 함께 영속 상태로 전이되는 것을 의미  CascadeTypeALL → 모든 Cascade 적용PERSIST → 엔티티를 영속화할 때, 연관된 엔티티도 함께 유지MERGE → 엔티티 상태를 병합(Merge)할 때, 연관된 엔티티도 모두 병합REMOVE → 엔티티를 제거할 때, 연관된 엔티티도 모두 제거REFRESH → 상위 엔티티를 새로고침(Refresh)할 때, 연관된 엔티티도 모두 새로고침DETACH → 부모 엔티티를 detach() 수행하면, 연관 엔티티도 det..

Java 2021.12.01

[초보개발자] HashMap 사용하기 (put, get, remove, Entry)

HashMap이란? Map Interface의 한 종류로 Key - Value 값으로 데이터를 묶어 저장할 수 있는 클래스입니다. 해싱 기법을 사용하므로 많은 양의 데이터중에서 원하는 데이터를 빠르게 가져올 수 있습니다. 해싱기법이란? 해시함수(Hash Function)를 이용해서 데이터를 해시테이블(Hash Table)에 저장하고 검색하는 기법입니다. 해시함수는 데이터가 저장되어 있는 곳을 알려주며, 다량의 데이터 중에서 원하는 데이터를 빠르게 찾을 수 있는 특징이 있습니다. HashMap 이외에도 HashSet / HashTable등의 클래스에서 해싱 기법을 사용합니다. HashMap 생성하기 HashMap 생성 시 java.util.HashMap 클래스를 import 해주어야 합니다. 안에는 Key..

Java 2021.07.11

[초보개발자] ArrayList 배열 사용하기

자바의 일반 배열[Array]은 크기를 한번 정하면 변경할 수 없지만 ArrayList 클래스는 크기가 가변적으로 변하기 때문에 자바에서 많이 사용하는 클래스중 하나입니다. ArrayList는 데이터 추가/삭제 시 메모리가 재 할당되기 때문에 속도면에서는 배열보다 느리지만 한번 선언하면 데이터 크기/수 상관없이 사용이 가능하기 때문에 Java 공부시 필수로 익혀야 하는 클래스입니다. ArrayList 기본 사용방법을 설명하겠습니다. ArrayList 생성하기 ArrayList 생성시 java.util.ArrayList를 import 해주어야 하고 안에 원하는 데이터 유형을 넣어주면 됩니다. import java.util.ArrayList; public class ArrayList_Test { public..

Java 2021.07.10
반응형