본문 바로가기
반응형

분류 전체보기95

쿼리dsl, 코틀린 case when sum 구문에서 사용하기 환경 코틀린 1.9.22 springboot:3.2.2 querydsl:5.0.0:jakarta Case when 구문 Sum과 함께 사용시 then 상수값에 타입 필요 case when sum 구문을 통해 집계 자료를 구하기 위해 쿼리를 실행하였더니 아래와 같은 에러가 나타났다. java.lang.NullPointerException: Cannot invoke "org.hibernate.query.ReturnableType.getJavaType()" because "argType" is null at org.hibernate.dialect.function.SumReturnTypeResolver.resolveFunctionReturnType(SumReturnTypeResolver.java:82) at o.. 2024. 3. 6.
자바 예외의 종류와 처리방식 예외종류 자바에서 프로그램이 비정상적인 동작을 일으키는 경우 Error 또는 Exception이 발생하게 된다. Error와 Exception의 차이는 복구가능하냐 복구 불가능하냐로 구분할 수 있습니다. 문법, 타입체크와 같은 과정을 통해 발생하는 컴파일 타임에러와 OutOfMemoryError나 StackOverflowError와 같은 실행중에 발생할 수 있는 런타임 에러는 개발자가 복구할 수 있는 동작이 아니다. 그에 반면 IOException , SqlException, NullPoiterException과 같은 예외는 개발자가 예외를 catch하여 처리할 수 있다. Error와 Exception 모두 Throwable 클래스를 상속 받는다. Throwable 클래스는 message와 stackTr.. 2024. 2. 19.
템플릿 메서드 패턴, 전략 패턴, 템플릿/콜백 패턴 비교 분석 프레임워크에 구현한 코드들은 프레임워크에 의해 실행된다. 그렇다면 나의 소스코드는 도대체 어떻게 실행이 되는 것인가 스프링 프레임워크는 개발자가 구현한 코드를 프레임워크 알고리즘 뼈대 코드 속에서 동작하도록 한다. 이렇게 특정 코드가 다른 코드 속에 침투되어 동작하는 디자인 패턴의 대표적인 예로 템플릿 메서드 패턴과 전략패턴이 있다. 템플릿 메서드 패턴과 전략 패턴에 대해 알아보고 실제 스프링에서 어떤식으로 두 디자인 패턴이 적용되어있는지 소스코드를 분석해보자. 목차 템플릿 메서드 패턴 전략패턴 템플릿 메서드 패턴과 전략패턴의 차이 템플릿 콜백 템플릿 콜백 패턴 적용 사례 : JdbcTemplate 전략패턴과 템플릿 콜백 패턴의 차이 템플릿 메서드 패턴 템플릿 메서드 패턴은 알고리즘의 뼈대를 정해놓고 특.. 2024. 2. 17.
컴파일 타임 의존성과 런타임 의존성 객체지향 프로그래밍에서는 객체간의 의존성이 빈번하게 발생한다. 의존이란 나(객체)의 변경이 나를 사용하는 다른 객체에 영향을 미치는 것을 말한다. 이러한 의존관계의 설정은 컴파일 타임에 결정되기도 하고 런타임에 결정되기도 한다. 컴파일 타임 의존성과 런타임 의존성은 말그대로 어느 시점에 의존성이 결정되느냐의 차이이다. 이 시점의 차이를 구분하기 어렵다면 일단은 아래와 같이 이해해보자. 컴파일 타임 의존성 : 컴파일러 관할 영역 -> 순수 프로그래밍 코드를 통해 의존관계 확인 가능 -> 의존성 변경시 코드 변경 필요 런타임 의존성 : 컴파일러 관할 영역 밖 -> xml, 어노테이션을 통해 의존관계 확인 가능 -> 의존성 변경시 코드 변경 필요X 컴파일 타임과 런타임 의존성의 구분 컴파일러는 자바 코드를 바.. 2024. 2. 11.
반응형