jOOQ subQuery와 Enum Converter
복잡한 SQL의 핵심은 서브쿼리이다. jOOQ는 세 가지 타입의 서브쿼리(SELECT절, FROM절, WHERE절)를 타입 안전하게 작성할 수 있다 서브쿼리의 3가지 유형 스칼라 서브쿼리 (SELECT절) SELECT절에서 서브쿼리를 사용하여 계산된 값을 조회한다 요구사항 영화별 대여료를 기준으로 가격 등급을 분류하고, 각 영화의 총 재고 수를…
복잡한 SQL의 핵심은 서브쿼리이다. jOOQ는 세 가지 타입의 서브쿼리(SELECT절, FROM절, WHERE절)를 타입 안전하게 작성할 수 있다 서브쿼리의 3가지 유형 스칼라 서브쿼리 (SELECT절) SELECT절에서 서브쿼리를 사용하여 계산된 값을 조회한다 요구사항 영화별 대여료를 기준으로 가격 등급을 분류하고, 각 영화의 총 재고 수를…
SQL의 핵심은 조건 절이다. jOOQ는 타입 안전한 방식으로 조건을 구성하고, 동적으로 쿼리를 생성할 수 있는 강력한 기능을 제공한다. jOOQ의 모든 조건은 org.jooq.Condition 인터페이스를 구현한다. 이 조건들은 메서드 체이닝 방식으로 조합할 수 있어 직관적이고 읽기 쉬운 코드를 작성할 수 있다 AND…
jOOQ는 generate { daos = true } 설정으로 각 테이블마다 기본 CRUD 메서드를 포함한 DAOImpl을 상속한 DAO 클래스를 자동 생성한다 자동 생성된 DAO란? jOOQ는 각 테이블에 대해 DAOImpl을 상속받은 DAO 클래스를 생성한다 생성 위치 FilmDao 구조 DAO 활용 방법 –…
jOOQ 쿼리 작성의 시작점 – DSLContext 모든 jOOQ 쿼리는 DSLContext로부터 시작된다. Spring Boot에서는 spring-boot-starter-jooq 의존성을 추가하면 자도응로 빈으로 등록되어 주입받아 사용할 수 있다. jOOQ의 SQL Dialect 지원 jOOQ는 JPA처럼 데이터베이스 방언(Dialect)을 지원한다. 같은 기능이라도 DB 벤더마다 다른 SQL 문법을 사용하는…
jOOQ를 프로젝트에 도입한 후, DSL 생성 방식을 커스터마이징하면 더욱 효율적으로 사용할 수 있다. jOOQ DSL 커스터마이징 3가지 방법 DSL Generate Strategy Generate 옵션 jOOQ Runtime Configuration Generate Strategy – 클래스 이름 커스터마이징 QueryDSL의 Q prefix처럼, jOOQ에서도 j prefix를 사용하여 자동…
MongoDB에서 Read Preference와 Write Concern은 데이터의 일관성, 가용성, 성능 간의 트레이드오프를 조절하는 핵심 설정이다. 특히 레플리카 셋 환경에서 이 설정들은 트랜잭션과 데이터 처리에 직접적인 영향을 미친다 Write Concern – 쓰기 확인 수준 Write Concern은 쓰기 작업이 얼마나 많은 노드에 반영되었는지…
MongoDB를 효과적으로 활용하기 위해서는 도메인별로 적절한 문서 구조를 설계하는 것이 중요하다. 실제 서비스 사례를 통해 문서 설계 전략을 살펴보자 컨텐츠 관리 시스템 (CMS) CMS는 MongoDB의 유연한 스키마를 활용하기에 적합한 대표적인 사례이다 초기 설계안 – 단일 문서 구조 이 구조의 장점…
MongoDB는 크로스 플랫폼 문서 지향(Document-Oriented) 데이터베이스 시스템이다. NoSQL 데이터베이스로 분류되며, JSON과 유사한 동적 스키마 문서를 사용하여 전통적인 테이블 기반 관계형 데이터베이스 구조와는 다른 접근 방식을 취한다 NoSQL의 등장 배경과 필요성 데이터 중심 시대의 도래 현대 사회는 데이터로 가득 차 있다.…
CI/CD 개념 이해 배포 작업의 분류 일회성 작업 (한 번만 설정) 반복적 작업 (코드 변경 시마다) 자동화가 필요한 이유 수동 배포의 문제점 실수 가능성이 높고 시간 소모적이다 자동화의 장점 GitHub Actions 핵심 개념 Workflow 파일 위치 중요: .github/workflows 경로는 Github와의…
암호화 기초 개념 단방향 암호화 단방향 암호화의 특징은 암호화만 가능하고 복호화는 불가능한 특징을 갖는다. 비밀번호 저장(SHA-256)이나 세션/토큰(해시 함수)을 만들 때 사용하며 한 번 암호화하면 원본으로 되돌리 수 없다 양방향 암호화 양방향 암호화의 특징은 암호화와 복호화 모두가 가능하다 특징 비대칭키 방식…