🏕️상황
- Querydsl을 사용하다보니 DSL이란 용어가 나왔고, 처음에는 이 둘이 같은 말인줄 알았다.
- 그런데 DSL이 더 넓은 개념이었고 확실하게 알고싶어서 정리하며 공부하기로 하였다.
💛DSL(Domain-Specific Language)
특정 도메인이나 문제 영역에 특화된 언어입니다.
이는 해당 도메인의 용어, 구문, 추상화 등을 통해 해당 도메인의 작업을 더 쉽게 표현하고 코드를 읽기 쉽게 만드는 것을 목표로 합니다. 일반적으로 DSL은 크게 두 가지로 분류됩니다.
- External DSL (외부 DSL):
- 외부 DSL은 독립적인 언어로서 도메인 특화 언어를 말한다.
- 예시로는 SQL, HTML, CSS 등이 있다. - Internal DSL (내부 DSL):
- 내부 DSL은 일반 프로그래밍 언어 내에 도메인 특화 언어를 정의하는 것을 말한다.
- 기존 프로그래밍 언어의 문법과 구문을 사용하며, 해당 도메인의 특정 작업을 간결하게 표현
- 예시로는 Querydsl, mockito 등이 있다.
💛Querydsl
- Querydsl은 DSL의 한 종류로서, 특히 데이터베이스 쿼리 작성을 위한 DSL을 제공하는 라이브러리이다.
- 내부 DSL의 한 종류로서, 데이터 베이스 쿼리 작성을 위한 도메인 특화 언어를 자바 코드로 제공하는 것이다.
- 자바로 쿼리를 작성하기 위한 편리한 문법과 API를 제공하며, 자바 코드로 쿼리를 표현할 수 있게 해준다.
- 이는 쿼리 작성 시 타입 안정성을 제공하고, IDE의 자동완성 및 정적 분석을 활용할 수 있다.
나만의 해석법으로 기억하고자 정리를 해보자면....
DSL은 어느 곳에서나 있을 수 있는 사용자의 편리함을 위한 방식(도구)인데, 편리함을 위해서 밖에(?)있으면 SQL, HTML이 되는거고, 다른 언어에 의존해서 있으면 Querydsl이 되는거지...!!ㅎㅎ

'개발공부 > spring boot' 카테고리의 다른 글
Test code - MockMvc란? (0) | 2024.05.23 |
---|---|
[java] Optional - Optional의 매핑 메소드 (1) | 2023.10.24 |
spring boot - JPQL과 Querydsl의 개념과 차이점 파헤치기🕵🏻 (0) | 2023.07.12 |
JWT_인증/인가 (0) | 2023.06.05 |
💡깨달음 - entity클래스가 있는데 DTO가 필요한가? (0) | 2023.05.10 |