회사 입사했을때부터 당연스럽게 써왔던 #{} 다른 방법도 있을거라고 생각도 못했는데 최근 알아버린 사실이 있었으니.. 마이바티스(MyBatis)를 사용하는 프로젝트에서 mapper 쿼리문이 담긴 XML 파일을 보면 XML에 쿼리문을 작성할 때 파라미터 값을 설정하게 될텐데 이때 ${}과 #{}를 사용하게 된다. 이 둘은 용도가 다르므로 명확하게 구분하여 사용 해야 한다! (보안을 고려한다면 #{}를 사용) #{ } ${ } 1 파싱된 쿼리문이 재활용(캐싱)되기 때문에 효율적 (성능상의 단점) 값이 넣어진 채로 쿼리문이 수행되기 때문에 파라미터의 값이 바뀔 때마다 항상 쿼리문 파싱을 진행 2 *SQL Injection을 방어(*PreparedStatement 방식으로 수행) *SQL Injection에 취..