BEST
개발 · 프로그래밍

/

데이터베이스

실전 jOOQ! Type Safe SQL with Java

jOOQ를 통해 Type Safe한 SQL의 강력함을 경험해보세요!

(4.9) 수강평 10개

수강생 228명

Thumbnail

중급자를 위해 준비한
[백엔드, 데이터베이스] 강의입니다.

이런 걸
배워요!

  • jOOQ 기초부터 실무활용까지 한번에 배울 수 있습니다.

  • XML 설정, 문자열 없는 자바 코드로만 SQL을 작성 할 수 있습니다.

  • ORM으로 할 수 없는 SQL 기능을 모두 자바코드로 사용 할 수 있습니다.

SQL은 불편하지 않습니다.

SQL을 문자열로 작성하는 방식이 불편할 뿐입니다.


실전 jOOQ! Type Safe SQL with Java


데이터베이스와 SQL을 잘 다루는 것은 모든 백엔드 개발자에게 필수적인 기술입니다. 하지만 전통적인 문자열 기반의 SQL 작성 방식은 반복적이고 오류가 발생하기 쉽습니다.

jOOQ는 이러한 문제를 해결해주는 강력한 도구로, 타입 세이프티를 보장하면서도 직관적인 방식으로 SQL을 작성할 수 있게 해줍니다. 본 강의에서는 jOOQ의 기본 개념부터 심화된 활용 방법까지 단계적으로 학습할 수 있습니다. (jOOQ는 쥬크라고 읽습니다.)


해당 강의는 jOOQ 오픈소스 버전에 대해서만 다룹니다.

1706621217839

2024.01 게으른 개발자 컨퍼런스 - jOOQ, SQL을 작성하는 또다른 방법 연사자 참여

JPA가 모든 것을 해결해주지 않습니다.

진정한 실력을 위해서는 반드시 SQL을 이해하고 사용할 줄 알아야 합니다.

최신 자바 백엔드는 주로 Spring Boot와 JPA를 조합해서 사용합니다.
하지만 JPA의 구현체인 Hibernate는 SQL의 95%만 커버합니다.

이 때문에 안정적인 서비스를 개발하기 위해서는 SQL이 필수인데요. jOOQSQL을 타입 세이프하고 간편하게 사용 할 수 있게 해줍니다.

Hibernate의 창시자 Gavin King - "모든 것을 Hibernate로 처리해야 할 필요는 없다."

문자열이 아닌 자바 코드로 SQL 작성

jOOQ의 dialect 기반 SQL 생성

jOOQ는 자바 코드로 SQL을 만듭니다. (JPQL 아님)

복잡한 쿼리와 동적쿼리를 간단하게 풀어 낼 수 있으며, 한번 작성한 코드는 코드 수정 없이 다른 데이터베이스에서 사용 할 수 있습니다. 또한 SQL을 프로그래매틱하게 제어하여 where 조건 없는 update & delete문 실행 방지, 슬로우 쿼리 탐지 등 다양한 기능들을 제공해 줄 수 있습니다.

이런 내용을 배워요

1⃣XML과 문자열 없이 자바만으로 SQL 작성

사람이 실수하기 쉬운 XML이나, 문자열 대신 자바코드로 SQL을 작성합니다. 고로 휴먼에러를 원천적으로 차단 할 수 있습니다. 다들 SQL 오타 때문에 운영서버에 장애가 일어났던적 한번씩은 있잖아요?

복잡한 XML은 안녕~

2⃣ SQL 빌더, 그 이상의 다양한 편의기능

jOOQ는 자바 코드로 SQL을 만드는 SQL Builder 그 이상의 기능을 가지고 있습니다. ActiveRecord, Generated Dao 등 다양한 기능들을 통해 간편하게 SQL을 작성 할 수 있습니다.

jOOQ의 ActiveRecord 패턴

3⃣ Spring Boot 환경에서의 jOOQ 사용법

현업에서 자주 사용되는 Spring Framework 환경에서 jOOQ가 어떻게 동작하는지 알아보도록 합니다.

Spring Boot 환경에서의 jOOQ

수강 전 참고 사항

실습 환경

  • 운영 체제 및 버전(OS): Windows, MacOS, Linux 등 모든 OS가 가능합니다.

  • 사용 도구: Intellij, Docker for Desktop,


학습 자료

  • 제공하는 학습 자료 형식: PPT, 깃허브 소스 코드

  • 분량 및 용량: 각 섹션별로 학습 자료 제공

선수 지식 및 유의사항

  • 본 강의는 Spring Boot 환경에서 jOOQ를 사용하는 법을 다룹니다.

  • 본 강의에서는 MySQL과 Docker를 사용하기 때문에 이 둘에 대한 이해가 어느 정도 요구됩니다.


  • 본 강의에서는 인접기술인 MyBatis, JPA, QueryDSL이 종종 언급됩니다. 강의 이해를 방해 할 정도는 아니나, 낯설게 느껴질 수 있어 이 부분 양해부탁드립니다.


이런 분들께
추천드려요!

학습 대상은
누구일까요?

  • JPA를 쓰다가 네이티브 SQL을 피해갈 수 없어 고민하던 분

  • QueryDSL처럼 TypeSafe 하게 SQL을 작성하고 싶은 분

  • MyBatis의 XML 설정과, 문자열 기반의 쿼리작성 방식을 개선하고싶은분

선수 지식,
필요할까요?

  • Java

  • Spring Boot

  • Docker

  • RDBMS (MySQL)

안녕하세요. 지식공유자 설동민입니다.

현재 카카오 백엔드 개발자로 근무하고 있으며, 복잡한 문제를 명쾌하게 풀어내는걸 좋아합니다.

경영학부 비전공자 출신으로, 다양한 OpenSource들에 대한 분석과 여러 기술적인 경험들을 통해
웹의 전반적인 기술을 학습하였습니다. OOP와 SQL, 이 어울리지 않는 두가지를 제일 좋아합니다.

Github: https://github.com/SightStudio


이력

  • 2021. 12 ~ 현재 : 카카오 백엔드 개발

  • 2020.12 ~ 2021.12: 전) 이스트소프트 백엔드 개발

 

커리큘럼

전체

30개 ∙ (4시간 53분)

수업 자료

가 제공되는 강의입니다.

강의 게시일: 
마지막 업데이트일: 

수강평

아직 충분한 평가를 받지 못한 강의입니다.
모두에게 도움이 되는 수강평의 주인공이 되어주세요!