본문 바로가기
반응형

전체 글52

Fetch Join 별칭 이슈 Fetch Join 의 한계 1. Fetch Join에 선언된 Entity에 대해서 별칭 불가 개요 JPA 표준 스펙에서는 Fetch Join 대상에 별칭이 없습니다 하지만 Hibernate에서 제공 Fetch Join에 별칭 선언시 이슈 이유: DB와 Entity 데이터의 일관성이 깨지는 이슈가 발생 code @Entity @Getter @NoArgsConstructor(access = AccessLevel.PROTECTED) @ToString(of = {"id", "name"}) public class Team { @Id @GeneratedValue @Column(name = "team_id") private Long id; private String name; @OneToMany(mappedBy =.. 2022. 1. 22.
예외(Exception) 예외 검사 예외 호출 하는 쪽에서 복구를 해야하는 로직을 검사 예외로 잡습니다 호출자가 Catch문을 사용해서 예외를 잡아 처리하거나, 더 밖으로 전파 하도록 강제 해야합니다 복구 가능성이 존재할 떄 사용합니다 비검사 예외 모든 비검사 throwable은 RuntimeException을 상속받은 예외들이어야 합니다. 런타임 예외 프로그래밍 오류를 나타낼때 사용합니다 전제조건을 만족하지 못할때 주로 사용합니다 ArrayOutOfBoundException이 대표적인 예시입니다 에러 정의: 시스템 종료되어 할 수준의 상황이거나 수습이 불가능한 상황을 의미 OutOfMemorym StackOverFlow가 대표적인 예시 입니다 Checked Exception과 UnCheckedException Checked E.. 2022. 1. 20.
함수형 프로그래밍 필자의 생각 비즈니스 로직 복잡도가 높아짐에 따라 사이드 이펙트를 유지 보수성에 따라서 함수형이 뜨고 있습니다 필자는 Java카테고리에 넣기에는 애매한 부분이 있지만 다른 카테고리에 넣기 애매해서 java category에 넣는 걸 결정 했습니다 1. 함수형 프로그래밍 등장배경 비즈니스 로직이 복잡해 지기 때문에 여러 코드와 비즈니스 로직이 스파게티와 같이 엉키는 이슈가 자주 발생 사이드 이펙트와 같은 유지 보수에 어려움을 유발하는 요소들이 많이 발생하게 되었습니다. 사이드 이팩트를 제거 하기 위해서 일관적인 로직을 순수 함수로 정의하여 가독성을 높이고 유지 보수에 편리함을 제공하기 위해 나왔습니다. 2. 함수형 프로그래밍의 특징 순수 함수 정의 부수효과가 없는 함수 즉, 어떤 함수에 동일한 인자를 주었.. 2022. 1. 18.
LocalDatetime, LocalDate, LocalTime 개요 java 8부터 날짜 계산 코드를 Date, Calendar객체대신 LocalDatetime을 주로 사용하게 되었습니다. 사용하게 된 이유와 원인 그리고 기존 객체들의 문제점을 확인 하고자 글을 적게 되었습니다. 1. Calendar와 Date 문제점 1.1 불변객체가 아니다 calendar와 date클래스에서 set method를 호출해서 언제나 저장된 날짜 정보 변경 가능 사이드 이펙트 이슈가 많음 1.2 int 상수 필드의 남용 calendar.add(Calendar.SECOND, 1); calendar.add(Calendar.JUNE, 1); 첫 번째 파라미터에는 JUNE과 같은 전혀 엉뚱한 값이 들어가도 컴파일 시점에서 확인할 방법이 없음 1.3 month 지정 이슈 Calendar.OCT.. 2022. 1. 12.
반응형