Notice
Recent Posts
Recent Comments
Link
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | ||||||
2 | 3 | 4 | 5 | 6 | 7 | 8 |
9 | 10 | 11 | 12 | 13 | 14 | 15 |
16 | 17 | 18 | 19 | 20 | 21 | 22 |
23 | 24 | 25 | 26 | 27 | 28 |
Tags
- 셰프의찾아가는구내식당
- 도커
- .dockerignore
- 개발자 인턴
- 신입 개발자 면접
- 개발자 면접
- 자바 암호화 알고리즘
- 개발자 정규직
- 프로그래머스 코딩테스트
- docker image
- 직장인점심구독
- 식단일기
- docker
- 식단
- 신입 개발자 자바 면접 질문
- 플레이팅
- 개발자 채용연계형인턴
- 개발자 면접 질문
- 프로그래머스
- Plating
- 샐러드
- 개발자 코딩테스트
- 자바 암호화
- 신입 개발자 면접 질문
- Linux
- 자바 stream
- 신입 개발자 필수 면접 질문
- 신입 개발자 자바 면접
- 코딩테스트 연습
- 자바 암호화 복호화
Archives
- Today
- Total
달리는 두딘
[Spring] #{} / ${}의 차이 본문
#{}
- 파라미터가 String 형태로 들어와 자동적으로 '파라미터' 형태가 됨 예를 들어, #{user_id}의 user_id 값이 abc라면 쿼리문에는 USER_ID = 'abc' 형태가 됨
- 쿼리 주입을 예방하여 보안 측면에서 유리함
- 타입 별로 '' 붙는 여부는 달라짐
${}
- 파라미터가 바로 출력됨
- 해당 컬럼의 자료형에 맞추어 파라미터의 자료형이 변경됨
- 쿼리 주입을 예방할 수 없어 보안 측면에서 불리함 → 그러므로, 사용자의 입력을 전달할 때는 사용하지 않는 편이 낫게 됨
- 테이블이나 컬럼명을 파라미터로 전달하고 싶을 때 사용함 #{}은 자동으로 ''가 붙어서 이 경우에는 사용 불가함
정리
- #{} - 자동으로 값에 따옴표가 붙고, 성능 좋음
- ${} - 값 그대로 전달 따옴표 안 붙음 / 성능 좋지 않음 / 보안 취약
- ORDER BY 아니면 #{} 쓰기.
'지식노트' 카테고리의 다른 글
[Spring] RestAPI (0) | 2022.04.29 |
---|---|
[JAVA] Collection Frameworks (1) | 2022.04.28 |
[Spring] Controller - class method가 가질 수 있는 파라미터 (1) | 2022.04.28 |
[Spring] Logback 적용 여정기 (2) | 2022.04.28 |
[Spring] Thymeleaf 기본 문법 (3) | 2022.04.28 |