전체 글
-
< Spring Boot > RepositorySpring Boot 2023. 8. 25. 14:21
Repository 스프링에서 제공하는 실제 CRUD 를 수행하는 인터페이스이다. 이 인터페이스를 이용해서 entity 객체를 대상으로 CRUD 를 진행하고, Entity 를 반영 결과를 실제 Table 에 반영한다. 때문에 모든 작업은 이 객체를 이용하게된다. 이 인터페이스는 내부적으로 상속 관계를 갖게되는데, Super 로는 Repository 라는 객체가 있고, 하위로는 단계별로 DB 처리 시 필요한 기능을 추가로 정의한 애들로 구성되어 있습니다. 이 중, JpaRepository 라는 최하위 인터페이스가 있는데, 이 인터페이스는 위의 부모들이 정의한 CRUD 의 기본 기능 외에 페이징 처리를 할 수 있는 기능까지 정의한 인터페이스이다. 떄문에 기본적인 CRUD 를 진행하는 경우, super 인터페..
-
<Java> Stream OptionalJava 2023. 8. 25. 14:03
Optional 스트림 종류의 하나로써 특정 타입의 스트림 요소의 결과를 받아서 집계, 요소 존재여부, 요소가 없을 시의 처리 여부 등을 consumer(람다) 를 통해 정의 할 수 있는 클래스입니다. 재밌는 것은, 만약 컬렉션의 요소가 동적으로 추가 되거나 삭제 될 때, 추가 시에는 상관없지만 삭제되어 아무것도 존재하지 않는 상태에서 요소를 get하게되면 예외가 발생할 수 있는데, 이때를 대비해 메서드를 제공해서 에외를 발생하지 않으면서도 다음 처리 작업을 할 수 있도록 정의 되어있습니다. Optional Method 대표적인 메서드만 알아보겠습니다. isPresent() : 요소가 존재하는지의 여부를 리턴 orElse() : 요소가 없는 경우, 즉 집계함수 없는 경우를 대비, default 값을 정의..
-
< Java > StreamJava 2023. 8. 25. 13:04
Stream 이란? 컬랙션 등의 내부에 있는 요소(element)를 처리하는 방식을 주입해서 그 결과를 빠르게 그리고 쉽게 도출하여 원하는 다음 요소로 변경해서 최종적으로 결과 값을 원하는 연산로직에 쉽게 도출하도록 만드는 요소이다. 매우 다양한 형태가 존재하며 모두 외울 필요는 없다. 또한 이 데이터를 도출할 때는 내부적으로 콜백 형태의 함수형 인터페이스를 받도록 파라미터가 정의 되었기 때문에 반드시 람다를 이용해야만 사용가능합니다. 아래는 코드로 보는 간단한 Stream의 예제입니다. @AllArgsConstructor @NoArgsConstructor @Data class FullStScore{ // 우리반 학생 점수를 관리하는 클래스 private String name; private int sc..
-
< Spring Boot > EntitySpring Boot 2023. 8. 25. 12:25
Entity 란 ? 쉽게 하나의 테이블 명이될 클래스라고 생각하면 되며 entity 는 DB 의 table 입니다. DB 의 내용이 바뀌면 entity 의 내용도 바뀌며, 따라서 entity 에는 select, delete, update 만 담당하게 되어있습니다. 간단한 설명 다음에 코드를 보여드리겠습니다. Entity 생성에 사용되는 Annotation @Entity : JPA 에서 실제 DB의 테이블과 매칭 될 class 임을 명시하는 어노테이션 @Table : Entity 테이블에 매핑할 테이블 정보를 알려주는 어노테이션 속성으로 name 을 갖는데, 이값을 주면 값으로 테이블이 생성됩니다. default 는 entity 클래스 이름과 같은 이름으로 매칭됩니다. @ID : JPA 에서는 기본적으로 ..