์ธํ”„๋Ÿฐ ์˜๋ฌธ ๋ธŒ๋žœ๋“œ ๋กœ๊ณ 
์ธํ”„๋Ÿฐ ์˜๋ฌธ ๋ธŒ๋žœ๋“œ ๋กœ๊ณ 
BEST

์‹ค์ „ jOOQ! Type Safe SQL with Java

jOOQ๋ฅผ ํ†ตํ•ด Type Safeํ•œ SQL์˜ ๊ฐ•๋ ฅํ•จ์„ ๊ฒฝํ—˜ํ•ด๋ณด์„ธ์š”!

์ค‘๊ธ‰์ž๋ฅผ ์œ„ํ•ด ์ค€๋น„ํ•œ
[๋ฐฑ์—”๋“œ, ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค] ๊ฐ•์˜์ž…๋‹ˆ๋‹ค.

์ด๋Ÿฐ ๊ฑธ ๋ฐฐ์šธ ์ˆ˜ ์žˆ์–ด์š”

  • 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์ด ํ•„์ˆ˜์ธ๋ฐ์š”. jOOQ๋Š” SQL์„ ํƒ€์ž… ์„ธ์ดํ”„ํ•˜๊ณ  ๊ฐ„ํŽธํ•˜๊ฒŒ ์‚ฌ์šฉ ํ•  ์ˆ˜ ์žˆ๊ฒŒ ํ•ด์ค๋‹ˆ๋‹ค.

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)

์•ˆ๋…•ํ•˜์„ธ์š”
์„ค๋™๋ฏผ์ž…๋‹ˆ๋‹ค.

328

๋ช…

์ˆ˜๊ฐ•์ƒ

15

๊ฐœ

์ˆ˜๊ฐ•ํ‰

26

๊ฐœ

๋‹ต๋ณ€

4.9

์ 

๊ฐ•์˜ ํ‰์ 

1

๊ฐœ

๊ฐ•์˜

์•ˆ๋…•ํ•˜์„ธ์š”. ์ง€์‹๊ณต์œ ์ž ์„ค๋™๋ฏผ์ž…๋‹ˆ๋‹ค.

ํ˜„์žฌ ์นด์นด์˜ค ๋ฐฑ์—”๋“œ ๊ฐœ๋ฐœ์ž๋กœ ๊ทผ๋ฌดํ•˜๊ณ  ์žˆ์œผ๋ฉฐ, ๋ณต์žกํ•œ ๋ฌธ์ œ๋ฅผ ๋ช…์พŒํ•˜๊ฒŒ ํ’€์–ด๋‚ด๋Š”๊ฑธ ์ข‹์•„ํ•ฉ๋‹ˆ๋‹ค.

๊ฒฝ์˜ํ•™๋ถ€ ๋น„์ „๊ณต์ž ์ถœ์‹ ์œผ๋กœ, ๋‹ค์–‘ํ•œ OpenSource๋“ค์— ๋Œ€ํ•œ ๋ถ„์„๊ณผ ์—ฌ๋Ÿฌ ๊ธฐ์ˆ ์ ์ธ ๊ฒฝํ—˜๋“ค์„ ํ†ตํ•ด
์›น์˜ ์ „๋ฐ˜์ ์ธ ๊ธฐ์ˆ ์„ ํ•™์Šตํ•˜์˜€์Šต๋‹ˆ๋‹ค. OOP์™€ SQL, ์ด ์–ด์šธ๋ฆฌ์ง€ ์•Š๋Š” ๋‘๊ฐ€์ง€๋ฅผ ์ œ์ผ ์ข‹์•„ํ•ฉ๋‹ˆ๋‹ค.

Github: https://github.com/SightStudio


์ด๋ ฅ

  • 2021. 12 ~ ํ˜„์žฌ : ์นด์นด์˜ค ๋ฐฑ์—”๋“œ ๊ฐœ๋ฐœ

  • 2020.12 ~ 2021.12: ์ „) ์ด์ŠคํŠธ์†Œํ”„ํŠธ ๋ฐฑ์—”๋“œ ๊ฐœ๋ฐœ

 

๋”๋ณด๊ธฐ

์ปค๋ฆฌํ˜๋Ÿผ

์ „์ฒด

30๊ฐœ โˆ™ (4์‹œ๊ฐ„ 53๋ถ„)

ํ•ด๋‹น ๊ฐ•์˜์—์„œ ์ œ๊ณต:

์ˆ˜์—…์ž๋ฃŒ
๊ฐ•์˜ ๊ฒŒ์‹œ์ผ: 
๋งˆ์ง€๋ง‰ ์—…๋ฐ์ดํŠธ์ผ: 

์ˆ˜๊ฐ•ํ‰

์ „์ฒด

15๊ฐœ

4.9

15๊ฐœ์˜ ์ˆ˜๊ฐ•ํ‰

  • ์ฐฝ๋ž‘๋‹˜์˜ ํ”„๋กœํ•„ ์ด๋ฏธ์ง€
    ์ฐฝ๋ž‘

    ์ˆ˜๊ฐ•ํ‰ 7

    โˆ™

    ํ‰๊ท  ํ‰์  4.9

    5

    90% ์ˆ˜๊ฐ• ํ›„ ์ž‘์„ฑ

    SQL๋ฅผ ๋‹ค๋ฃฐ ๋•Œ MyBatis๋ฅผ ์ฃผ๋ ฅ์œผ๋กœ ์‚ฌ์šฉํ•˜๋Š” 6๋…„์ฐจ SI ๊ฐœ๋ฐœ์ž์ž…๋‹ˆ๋‹ค. MyBatis๋ฅผ ์˜ค๋žซ๋™์•ˆ ์‚ฌ์šฉํ•˜๋‹ค ๋ณด๋‹ˆ ํ•„์—ฐ์ ์œผ๋กœ ๋ฐœ์ƒํ•˜๋Š” ํœด๋จผ์—๋Ÿฌ๋ฅผ ํƒˆํ”ผํ•ด๋ณด๊ณ  ์‹ถ์–ด์„œ, ์ฒ˜์Œ์—๋Š” JPA ๋ฅผ ๊ณต๋ถ€ํ–ˆ์—ˆ๋Š”๋ฐ DDL ์„ ์ง์ ‘ ์ž‘์„ฑํ•˜์ง€ ์•Š๊ณ  ์—”ํ‹ฐํ‹ฐ๋กœ ํ…Œ์ด๋ธ”์„ ๊ด€๋ฆฌํ•˜๋Š” ๋ฐฉ์‹๊ณผ C,U,D ๋ฅผ ์ž‘์„ฑํ•  ๋•Œ๋Š” JPA ์˜ ๋ฉ‹์ง์„ ๋А๋ผ๋‹ค๊ฐ€.. SELECT ๋ฌธ ์ž‘์„ฑํ•  ๋•Œ์— ๋ถˆ๋ฆฌํ•œ ์ ๊ณผ ๋ฌ˜ํ•˜๊ฒŒ ์ •์ด ์•ˆ๊ฐ€๋Š” JPQL(์ด๊ฑฐ ์“ฐ๋ฉด ํœด๋จผ์—๋Ÿฌ๋Š” ๊ทธ๋Œ€๋กœ ์•ˆ๊ณ  ๊ฐ€์•ผํ•˜๋Š” ์œ„ํ—˜๋„...)๋–„๋ฌธ์— ํ•™์Šต์˜์š•์ด ์กฐ๊ธˆ ๋–จ์–ด์ง€๊ณ  ์žˆ๋Š” ์™€์ค‘์— ์ด ๊ฐ•์˜๋ฅผ ์•Œ๊ฒŒ ๋˜์—ˆ์Šต๋‹ˆ๋‹ค. (QueryDSL๋„ ์ฐ๋จนํ•ด๋ดค๋Š”๋ฐ ์˜ค๋žซ๋™์•ˆ ๊ด€๋ฆฌ์•ˆ๋˜๊ณ  ์žˆ๋Š”๊ฑฐ๋ณด๊ณ  ์ด๊ฑฐ ๊ดœ์ฐฎ๋‚˜... ์‹ถ์—ˆ์Šต๋‹ˆ๋‹ค ใ… ใ… ) jOOQ ์ˆ˜๊ฐ•ํ‰ ์ž‘์„ฑํ•˜๋Š”๋ฐ ์„œ๋ก ์ด ๊ธธ์—ˆ์Šต๋‹ˆ๋‹ค๋งŒ, ๊ฒฐ๋ก ์ ์œผ๋กœ ์ด ๊ฐ•์˜๋Š” ์•„์ฃผ ๋งˆ์Œ์— ๋“œ๋Š” ๊ฐ•์˜์˜€์Šต๋‹ˆ๋‹ค. SQL์ž‘์„ฑ์„ ์ข‹์•„ํ•˜๋Š” ์ €์—๊ฒŒ ํœด๋จผ์—๋Ÿฌ๋Š” ์ค„์ด๊ณ  SQL๊ณผ ์œ ์‚ฌํ•œ ๋ฐฉ์‹์œผ๋กœ ์ฟผ๋ฆฌ๋ฅผ ๋งŒ๋“ค์–ด์ฃผ๋Š” JOOQ๋Š” ์ €์—๊ฒŒ ๋”ฑ ์•Œ๋งž์€ ๊ธฐ์ˆ ์ด๋ผ๊ณ  ์ƒ๊ฐํ–ˆ์Šต๋‹ˆ๋‹ค. ์ข‹์€ ๊ฐ•์˜ ๊ฐ์‚ฌํ•ฉ๋‹ˆ๋‹ค.

    • ๊น€์šฐ์žฌ๋‹˜์˜ ํ”„๋กœํ•„ ์ด๋ฏธ์ง€
      ๊น€์šฐ์žฌ

      ์ˆ˜๊ฐ•ํ‰ 6

      โˆ™

      ํ‰๊ท  ํ‰์  5.0

      5

      10% ์ˆ˜๊ฐ• ํ›„ ์ž‘์„ฑ

      ์ด์ „ ํšŒ์‚ฌ์—์„œ Jooq ๋ฅผ ์‚ฌ์šฉํ–ˆ์„ ๋•Œ์˜ ๊ฒฝํ—˜์€ ๋งค์šฐ ์ข‹์•˜์Šต๋‹ˆ๋‹ค. JPA ๋Š” ๋งค์šฐ ํŽธ๋ฆฌํ•˜๊ณ  ๊ฐ•๋ ฅํ•˜์ง€๋งŒ, ํ•œํŽธ์œผ๋กœ ์ง€์›ํ•˜์ง€ ์•Š๋Š” ๊ธฐ๋Šฅ๋“ค์„ ๋งˆ์ฃผํ–ˆ์„ ๋•Œ๋Š” ์•„์‰ฌ์› ์Šต๋‹ˆ๋‹ค. Jooq ์˜ ๊ฒฝ์šฐ SQL ๊ธฐ๋Šฅ์„ ์ „๋ถ€ ์ง€์›ํ•˜๊ณ  Jํด๋ž˜์Šค๋ฅผ ํ†ตํ•ด์„œ ํƒ€์ž… ์„ธ์ดํ”„ํ•˜๊ฒŒ ๋งŒ๋“ค ์ˆ˜ ์žˆ๋‹ค๋Š” ์ ์ด ๋งค์šฐ ์ข‹์•˜์Šต๋‹ˆ๋‹ค. ๋ ˆํผ๋Ÿฐ์Šค๊ฐ€ ์—†์–ด์„œ ๋งŽ์ด ์•„์‰ฌ์› ๋Š”๋ฐ ์ด๋ ‡๊ฒŒ ์„ธ์‹ฌํ•˜๊ฒŒ ๊ฐ•์˜ ๋งŒ๋“ค์–ด์ฃผ์…”์„œ ๊ฐœ์ธ์ ์œผ๋กœ ๋„ˆ๋ฌด ์ข‹๋„ค์š”

      • cykkkk๋‹˜์˜ ํ”„๋กœํ•„ ์ด๋ฏธ์ง€
        cykkkk

        ์ˆ˜๊ฐ•ํ‰ 5

        โˆ™

        ํ‰๊ท  ํ‰์  5.0

        5

        100% ์ˆ˜๊ฐ• ํ›„ ์ž‘์„ฑ

        ์ž˜ ๋ชจ๋ฅด๋Š” ๊ธฐ์ˆ ์ด์—ˆ๋Š”๋ฐ ์ƒ๊ฐ๋ณด๋‹ค ๋„์ž… ๊ณ ๋ ค๋ฅผ ํ•ด๋ณผ๋งŒํ•œ ๊ธฐ์ˆ  ์Šคํƒ์ธ๊ฑฐ ๊ฐ™์•„์„œ ๋†€๋ž๊ณ , ๋ผ์ด์„ผ์Šค๋‚˜ queryDsl, JPA ์™€๋„ ๋น„๊ตํ•ด์ฃผ๋Š” ๋ถ€๋ถ„์ด ์žˆ์–ด์„œ ๊ฐœ์ธ์ ์œผ๋กœ ์žฌ๋ฐŒ๊ฒŒ ๋“ค์—ˆ์Šต๋‹ˆ๋‹ค.

        • ๋ฒ„ํ„ฐํ”Œ๋ผ์ž‰๊ต์œก์šฉ๋‹˜์˜ ํ”„๋กœํ•„ ์ด๋ฏธ์ง€
          ๋ฒ„ํ„ฐํ”Œ๋ผ์ž‰๊ต์œก์šฉ

          ์ˆ˜๊ฐ•ํ‰ 1

          โˆ™

          ํ‰๊ท  ํ‰์  5.0

          5

          100% ์ˆ˜๊ฐ• ํ›„ ์ž‘์„ฑ

          ์ •๋ง ์ข‹์€ ๊ฐ•์˜์ž…๋‹ˆ๋‹ค. jooq๊ฐ€ ์‹ ๊ธฐ์ˆ ์ธ์ค„ ์•Œ์•˜๋Š”๋ฐ 10๋…„์ด ๋„˜์—ˆ๊ตฐ์š”. ์ด๋Ÿฐ ์ข‹์€ ๊ธฐ์ˆ ์ด ๋ฌปํž ๋ป” ํ–ˆ๋Š”๋ฐ ํ•œ๊ตญ์— ์†Œ๊ฐœํ•ด์ฃผ์…”์„œ ๊ฐ์‚ฌํ•ฉ๋‹ˆ๋‹ค. ๊ทธ ์™ธ ๊ธฐํƒ€ ๊ธฐ๋Šฅ๋“ค ๋„ˆ๋ฌด ์ข‹์•„์š”.

          • ์ด์ฐฌํ˜•๋‹˜์˜ ํ”„๋กœํ•„ ์ด๋ฏธ์ง€
            ์ด์ฐฌํ˜•

            ์ˆ˜๊ฐ•ํ‰ 7

            โˆ™

            ํ‰๊ท  ํ‰์  5.0

            5

            100% ์ˆ˜๊ฐ• ํ›„ ์ž‘์„ฑ

            R2DBC ์‚ฌ์šฉํ•˜๋Š” ํ™˜๊ฒฝ์—์„œ jOOQ์„ ๋ฐ˜์˜ํ•ด๋ณด๊ธฐ ์œ„ํ•ด์„œ ์ฐพ์•„๋ณด๋‹ค๊ฐ€ ์ด๋Ÿฐ ์ข‹์€ ๊ฐ•์˜๋ฅผ ์ฐพ๊ฒŒ ๋˜์–ด์„œ ํ–‰์šด์ด์—ˆ์Šต๋‹ˆ๋‹ค. jOOQ์— ๋Œ€ํ•œ ๊ธฐ์ดˆ ์ง€์‹์„ ๋‹ค๋ฃจ๊ธฐ์— ๋งค์šฐ ์ข‹์€ ๋‚ด์šฉ๋“ค์ด ๋งŽ์•„์„œ ์ดํ•ดํ•˜๋Š”๋ฐ ํฐ ๋„์›€์„ ๋ฐ›์•„์„œ, ์•„์ง์€ ํ™˜๊ฒฝ์— ๋งž๊ฒŒ ์„ค์ •์„ ์ด๊ฒƒ์ €๊ฒƒ ๋งŒ์ ธ๋ณด๊ณ , R2DBC์— ๋งž๊ฒŒ ์ฝ”๋“œ๋ฅผ ์ž‘์„ฑํ•˜๋Š” ๋ฐฉ๋ฒ•๋„ ์ฐพ์•„๋ณด๊ณ  ์žˆ์ง€๋งŒ, ๊ฐ•์˜์—์„œ ๋ฐฐ์šด ๋‚ด์šฉ์„ ๋’ท๋ฐ›์นจํ•ด์„œ ์ƒ๊ฐ๋ณด๋‹ค ์ˆ˜์›”ํ•˜๊ฒŒ ํ•œ ๊ณ„๋‹จ์”ฉ ๋‚˜์•„๊ฐ€๊ณ  ์žˆ์Šต๋‹ˆ๋‹ค. ์ด๋Ÿฐ ์ข‹์€ ๊ฐ•์˜๋ฅผ ๋งŒ๋“ค์–ด์ฃผ์…”์„œ ๊ฐ์‚ฌํ•ฉ๋‹ˆ๋‹ค.

            ๋น„์Šทํ•œ ๊ฐ•์˜

            ๊ฐ™์€ ๋ถ„์•ผ์˜ ๋‹ค๋ฅธ ๊ฐ•์˜๋ฅผ ๋งŒ๋‚˜๋ณด์„ธ์š”!

            โ‚ฉ55,000