본문 바로가기
프로그래밍/JPA

[JPA] QueryDSL의 DSL이 궁금하다!

by 노잼인간이라불립니다 2023. 3. 3.

갑자기 뜬금포로 DSL이 궁금해서 ChatGPT에게 질문했다.

 

DSL은 Domain-Specific Language의 약어로 특정 도메인에 적합한 언어를 의미한다고 한다.

 

그럼 QueryDSL은 SQL, Structured Query Language, 즉 데이터베이스라는 도메인에 적합한 언어일 것이다.

 

특정 도메인에 적합한 언어라... 그럼 JAVA에 적합한 DSL도 있을까?

 

구글 검색을 시작했다.!!!

 

그랬더니 자바에도 DSL이 있었다!! (정확히 말하자면 자바와 관련된 DSL!)

 

평소에도 자주 쓰고 있던~~ 스트림이!!!!!

 

컬렉션을 조작하는 DSL이었던 것!!

 

오호~

 

DSL에 대해서 좀 더 이해되기 시작했다.

 

DSL은 특정 도메인에 국한 되어서 그 도메인을 가지고 놀 수있는 언어랄까?

 

즉 도메인이 DB라고 하면 편리하게 DB에 CRUD 할 수 있고,

 

도메인이 컬렉션이라고 하면 편리하게 자바컬렉션에 CRUD 할 수있다.

 

즉 도메인에 따라 그것을 사용자가 편리하게 자유자재로 가지고 놀 수 있게 제공한다면, DSL이 되는 것이다.

 

그래서 중간에 Specific이라는 단어가 붙지 않았을까?

 

정말정말 구체적인, 특징적인 것에만 사용되는 Language인 것이다. -> 그것이 도메인이 되는 것이고..

 

이 외에도 자바에 Collector라든지 람다라던지 하는 것들이 DSL이라고 불리고 있는 듯하다.

 

자세한건 읽다 접은 모던 자바 인 액션을 읽어봐야 할 듯하다.

 

구글 검색했더니 모던 자바 인 액션에 나오는 내용들을 정리해 놓은 것이 즐비하다.

 

시간이 되면 공부하고, 정리도 한번 해봐야 겠다.