문제/맥락
문자열을 감싸는 따옴표 한 쌍은 단순한 문법 요소가 아니다. 실무에서 따옴표 처리 실패는 로그 역주입, SQL/쉘 인젝션, JSON/YAML 파싱 오류로 이어진다. 예를 들어 쉘에서 변수를 따옴표로 감싸지 않으면 공백이나 특수문자 때문에 명령이 분해되고, DB에 문자열을 직접 연결하면 작은따옴표 하나로 쿼리가 깨진다. 언어마다 기본 규칙과 제공하는 안전한 도구가 있으니 무심코 넘어가면 문제를 만들기 쉽다.
핵심 포인트
사용자 입력을 SQL에 넣을 때는 파라미터화된 쿼리만 사용하고 직접 작은따옴표를 붙이지 말 것.
쉘에서는 변수를 ""나 ''로 감싸고, 복잡한 값은 printf %q(또는 shlex.quote)를 사용해 안전하게 이스케이프할 것.
JSON이나 HTML에 삽입할 때는 해당 형식의 인코더/이스케이프 함수를 사용해 특수문자를 변환할 것.
템플릿 문자열(backtick 등)은 편리하지만 내부 표현식이 있는 경우 이스케이프와 검증을 병행할 것.
로그에는 원본을 그대로 출력하지 말고, 민감정보는 마스킹하고 포맷을 통일할 것.
정리
따옴표는 단순 문법을 넘어 입력의 경계와 신뢰성을 지킨다. 언어별 권장 방식과 제공 함수만 일관되게 쓰면 대부분의 오류와 보안 문제를 예방할 수 있다.
댓글
관련 포스트
모두보기이미지 없음
최근 작성글
모두보기이미지 없음
이미지 없음