XML - #과 $의 차이점

cheongyeong·2024년 4월 17일

'#'

주로 조건문이나 반복문을 나타냄

<if>, <foreach> 와 같은 제어 구조를 나타낼 때 사용. 주로 템플릿 엔진에 사용.

<if>, <foreach>는 SQL 쿼리의 조건을 동적으로 구성하기 위해 사용.
  1. #{...} 문법은 MyBatis에서 파라미터 바인딩을 위해 사용되는 것.
    • 해당 위치에는 값을 바인딩할 때 사용.
  2. 해당 위치에 값이 쿼리에 바인딩되어 PreparedStatement와 유사한 방식으로 동작하여 SQL Injection 공격을 방지

** 값을 바인딩한다는 것은 SQL 쿼리에 변수나 파라미터 값을 전달하여 해당 값을 사용하여 쿼리를 실행하도록 만드는 것을 의미

'$'

  1. 주로 변수나, 표현식을 나타냄.
  2. 변수의 값을 출력하거나, 표현식의 결과를 삽입할 때 사용.
  3. SQL 쿼리의 파라미터나 동적 쿼리의 값을 삽입하기 위해서 사용.
  4. 주로 텍스트 치환에 사용. 즉, 해당 위치에 변수의 값을 삽입하거나 표현식을 평가하여 그 결과를 삽입하는 데 사용.
  5. SQL 매퍼 프레임워크에서는 주로 $ 기호를 사용하여 동적으로 쿼리를 생성하거나 조건문을 처리.
    예를 들어, MyBatis에서는 ${...}를 사용하여 동적인 SQL 쿼리를 생성하거나 조건에 따라 쿼리 변경 가능.
 ${...}는 해당 변수나 표현식의 값을 쿼리에 삽입하는 데 사용.
 ${...} 안에는 표현식이나 변수가 올 수 있음

차이점 요약

'#'

주로 파라미터 바인딩에 사용되며, SQL Injection을 방지하고 템플릿 엔진에서 변수를 처리하는 데에도 사용.

'$'

주로 텍스트 치환에 사용되며, 동적 쿼리 생성이나 변수 처리를 위해 사용.

profile
👩‍💻💡

0개의 댓글