Category Framework

framework애 대한 내용입니다

jOOQ Code Generation JPA

코드만 봐도 어떤 쿼리가 실행될지 예측하기 쉽다는 것이 jOOQ의 큰 장점이다. 여기서는 jOOQ의 핵심이라 할 수 있는 코드 제너레이션(Code Generation)방식과 무엇을 기준으로 DSL을 만들어야 하는지 알아본다 Code Generation jOOQ의 코드 제너레이션은 다양한 데이터 소스 중 하나를 참고하여 jOOQ DSL을 생성하는…

jOOQ ActibeRecord 패턴

ActiveRecord 패턴은 Java 개발자에게 생소할 수 있다. jOOQ는 이 패턴을 지원하여 객체가 직접 데이터베이스 작업을 수행할 수 있게 한다. ActiveRecord 패턴 핵심 개념: 데이터베이스 테이블의 행(Row)를 감싼 객체가 데이터와 함께 CRUD 작업을 직접 수행하는 메서드를 포함 UML 다이어그램 비교 일반적인…

jOOQ UPDATE와 DELET

데이터 수정과 삭제는 신중해야 하는 작업이다. jOOQ는 동적 필드 업데이트부터 WHERE 절 없는 위험한 쿼리를 방지하는 안전장치까지 제공해준다 UPDATE 3가지 방식 DAO를 통한 전체 필드 업데이트 JPA의 save()처럼 POJO 전체를 업데이트 – 변경 여부와 관계없이 모든 컬럼이 SET 절에 포함된다…

jOOQ INSERT

데이터 삽입은 모든 애플리케이션의 기본이다. jOOQ는 JPA처럼 편리한 DAO 방식부터 벌크 INSERT까지 다양한 INSERT 패턴을 제공한다 jOOQ INSERT의 5가지 방식 자동 생성 DAO를 통한 INSERT JPA의 save() 메서드처럼 사용할 수 있는 가장 간편한 방식 Repository 구현 핵심 특징 생성된 SQL…

jOOQ subQuery와 Enum Converter

복잡한 SQL의 핵심은 서브쿼리이다. jOOQ는 세 가지 타입의 서브쿼리(SELECT절, FROM절, WHERE절)를 타입 안전하게 작성할 수 있다 서브쿼리의 3가지 유형 스칼라 서브쿼리 (SELECT절) SELECT절에서 서브쿼리를 사용하여 계산된 값을 조회한다 요구사항 영화별 대여료를 기준으로 가격 등급을 분류하고, 각 영화의 총 재고 수를…

jOOQ 조건절과 동적 쿼리

SQL의 핵심은 조건 절이다. jOOQ는 타입 안전한 방식으로 조건을 구성하고, 동적으로 쿼리를 생성할 수 있는 강력한 기능을 제공한다. jOOQ의 모든 조건은 org.jooq.Condition 인터페이스를 구현한다. 이 조건들은 메서드 체이닝 방식으로 조합할 수 있어 직관적이고 읽기 쉬운 코드를 작성할 수 있다 AND…

jOOQ DAO

jOOQ는 generate { daos = true } 설정으로 각 테이블마다 기본 CRUD 메서드를 포함한 DAOImpl을 상속한 DAO 클래스를 자동 생성한다 자동 생성된 DAO란? jOOQ는 각 테이블에 대해 DAOImpl을 상속받은 DAO 클래스를 생성한다 생성 위치 FilmDao 구조 DAO 활용 방법 –…

jOOQ 쿼리 SELECT와 JOIN

jOOQ 쿼리 작성의 시작점 – DSLContext 모든 jOOQ 쿼리는 DSLContext로부터 시작된다. Spring Boot에서는 spring-boot-starter-jooq 의존성을 추가하면 자도응로 빈으로 등록되어 주입받아 사용할 수 있다. jOOQ의 SQL Dialect 지원 jOOQ는 JPA처럼 데이터베이스 방언(Dialect)을 지원한다. 같은 기능이라도 DB 벤더마다 다른 SQL 문법을 사용하는…

jOOQ DSL 커스터마이징

jOOQ를 프로젝트에 도입한 후, DSL 생성 방식을 커스터마이징하면 더욱 효율적으로 사용할 수 있다. jOOQ DSL 커스터마이징 3가지 방법 DSL Generate Strategy Generate 옵션 jOOQ Runtime Configuration Generate Strategy – 클래스 이름 커스터마이징 QueryDSL의 Q prefix처럼, jOOQ에서도 j prefix를 사용하여 자동…

EKS – Kubernetes Secret과 Spring Deployment

Kubernetes Secret 관리 Secret은 민감한 정보 (데이터베이스 암호, API 키 등)를 코드와 분리하여 Kubernetes 자원으로 안전하게 저장하는 메커니즘이다 저장 → 주입 흐름 Secret 생성 실제 예시 Secret 조회 출력 예시 참고: Secret의 데이터는 Base64로 인코딩 되어 있다(암호화가 아니다). Base64 디코더로…