메타문자와 이스케이프

메타문자(meta character)

메타문자는 어떤 기능에서 특별한 용도 또는 의미를 가지고 있는 문자를 뜻하며, 의미문자, 특수문자(기호)라고도 부릅니다.

 

ex) URL에서 https://www.test.com/lab/file?name=repo&date=231215 

=> ? : 요청 파라미터의 시작

=> = : 파라미터의 이름과 값을 구분

=> & : 파라미터와 파라미터를 구분

 

ex) SQL문에서 select * from users where id = 'susujin' and pw = '1234'

=> ' '(작은따옴표) : 문자열 데이터의 시작과 끝

 

이스케이프

이스케이프는 의미문자에서 의미를 제거하고 문자 그 자체로 사용하고자 할 때 씁니다.

 

이스케이프 방법

1) 인코딩 방법을 이용해서 다른 형태로 변경하여 처리

2) 특정 기능에서 약속한 방법으로 변경하여 처리

3) 이스케이프를 의미하는 의미문자(\)를 이용하여 처리

 

ex) id 요청 파라미터 값으로 Park & Kim을 전달하고자 할 때

X => https://www.test.com/lab/person?id=Park&Kim

X => id 요청 파라미터 값으로 Park가 설정되고 Kim은 없는 것으로 설정

O => https://www.test.com/lab/person?id=Park%26Kim

O => URL에서 특수기호를 사용하고자 할 때는 URL 인코딩 방법을 사용

 

ex) id 값으로 i'm susujin의 값을 가지는 정보를 조회

X => select * from users where id = 'i'm susujin' (구문오류 발생)

O => select * from users where id = 'i''m susujin' (MySQL DB에서 홑따옴 글자로 인식)

O => select * from users where id = 'i\'m susujin' (이스케이프 문자를 이용하여 처리)