메타문자와 이스케이프

Cura·2023년 12월 16일
0

기타 정보

목록 보기
1/6

메타문자

메타 문자는 특별한 의미를 지니는 영문자가 아닌 문자입니다
-IBM Docs

URL 에서의 예시

http://www.example.com/path/file?name=Cura&age=26

기호의미(내용)
?요청 파라미터의 시작점
=파라미터의 이름과 값의 구분점
&파라미터와 파라미터간의 구분점

SQL문에서의 예시

select * from users where id = 'Cura' and pw = 'p@ssw0rd'	#query for login
기호의미(내용)
*'모든'을 의미하는 문자
'문자열의 시작과 끝을 나타냄
#인라인 주석을 나타냄
--인라인 주석을 나타냄

이스케이프

이스케이프는 의미를 가지는 문자에서 의미를 제거하고 다른 용도로 사용하는 것 입니다

C언어에서의 예시

printf("back space\b new line\n horizontal tab \t")
기호의미내용
\b백스페이스백스페이스
\n개행(new line)커서를 다음줄 첫번째 위치로 옮김
\t수평 탭키보드 TAB 키와 동일
\'작은 따옴표C언어 문자 표현 기능인 'a' 와 충돌을 방지하기 위함
\"큰 따옴표C언어 문자열 표현 기능인 "asdf"와 충돌을 방지하기 위함
  • 이상 외 다수

SQL문에서의 예시

selet * from users where name ='Cura' # ' pw = 'p@ssw0rd'
  • #뒤로는 주석으로 처리되어 본래 의미를 잃고 SQL 기능문이 아닌 일반 문자열로 인식되는 것을 확인할 수 있다

URL에서의 예시

http://www.example.com/path/file?team_name=Cura & Tapperbox

  • URL에서 &기호는 파라미터간의 구분이라는 의미를 가짐
  • 개발자가 원하는 Cura & Tapperbox 라는 값이 전달되지 않음

http://www.example.com/path/file?team_name=Cura __%26__ Tapperbox

  • 특수기호를 URL인코딩 방법을 사용하여 & 를 %36 으로 치환

이스케이프 방법 정리

  1. 이스케이프를 의미하는 의미문자(\)를 사용하여 처리
  2. 특정 기능에서 약속한 방법으로 처리 (# 은 주석)
  3. 인코딩 방법을 이용해서 다른 형태로 변경해서 처리)
profile
우리는 울지 않는 부엉이요, 발자국 없는 범이다.

0개의 댓글