갑자기 뜬금포로 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이라고 불리고 있는 듯하다.
자세한건 읽다 접은 모던 자바 인 액션을 읽어봐야 할 듯하다.
구글 검색했더니 모던 자바 인 액션에 나오는 내용들을 정리해 놓은 것이 즐비하다.
시간이 되면 공부하고, 정리도 한번 해봐야 겠다.
'프로그래밍 > JPA' 카테고리의 다른 글
[JPA] JPA 복합키 매핑 정리 (0) | 2022.08.09 |
---|---|
[JPA] 연관관계 매핑[실무] (0) | 2022.07.26 |
[JPA] JPA로 다른 스키마에 있는 테이블에 쿼리 날리기(with mysql) (0) | 2022.07.25 |
[JPA] Spring Data JPA를 이용한 JPA Auditing 날짜 자동 생성, 저장(Auditing in JPA ). (0) | 2022.07.25 |