IT 성장일기
[Spring] 다국어 지원 버전을 만들다가 만난 상황들 -2- 본문
다국어 지원 버전을 만들다가 만난 상황들 -2-
한국어 외 3개 국어를 지원하는 글로벌 버전 어플리케이션을 개발하다보니 이런 저런 상황을 다양하게 마주했습니다.
오늘 재미있는 경험을 해서 기록으로 남겨봅니다.
따옴표 조심하세요
기존에 오류 없이 잘 돌아가던 화면에서 갑작스럽게 오류가 발생해 원인을 찾아보았습니다.
오류 내용은 Uncaught SyntaxError.. 스크립트 부분에서
괄호나 따옴표가 제대로 된 쌍을 이루지 않았을 경우 자주 볼 수 있는 오류였습니다.
분명 해당 화면을 한국어나 일본어로 사용할 때는 이상이 없었는데 영어버전일 때에만 이 오류가 발생했습니다.
오류를 표시하는 해당 라인을 찾아보니 alert 함수에 다국어 메시지를 삽입한 부분이었습니다.
원인이 뭘까 곰곰히 생각해보다가 아차 싶었던게 있었습니다.
얼마 전 "can not" 이라는 표현을 "can't"라고 일괄적으로 변경했던 것이 그 원인이었습니다.
아포스트로피로 쓰인 홑따옴표를 홑따옴표로서 표시하려면 백슬래쉬를 붙여줘야 하고, 백슬래쉬는 백슬래쉬대로 이스케이프 문자로서 알맞게 처리해줬어야 했는데 그러지 않았으니 문장 중간에서 문자열이 닫혀버린 것이었습니다...
예) alert('I can't go home');
파란 부분까지만 문자열로 취급되어 빨간 부분은 스크립트 에러를 발생시킵니다.
문제를 야기한 부분입니다. 기초 중의 기초를 간과한 부분이었습니다...
아래 문장의 경우 아포스트로피를 이스케이프 문자로서 처리 한 예시입니다.
해당 처리를 하고 alert 함수로 메시지를 출력해봤더니 오류가 말끔하게 사라졌습니다.
한가지 더
문제를 해결하고 보니 한가지 더 궁금한 점이 생겼습니다.
'그렇다면 따옴표나 쌍따옴표가 올바르게 한 쌍을 이루는 경우는 이스케이프 문자 처리를 안해줘도 괜찮을까?'
결론부터 말하자면 '그렇다'였습니다 아래 스크린샷은 한 쌍을 이루는 쌍따옴표가 포함된 문장입니다.
해당 메시지에는 쌍따옴표 앞에 백슬래시 두개를 붙이지 않아도 아무런 에러 없이 메시지가 나오는 것을 확인할 수 있었습니다.
마무리하며
앞서 기록한 사례 외에도 어디서 발생할 지 모르는 사이드이펙트를 최소화하기 위해서는
따옴표나 괄호 등의 특수기호 앞에 백슬래쉬 등으로 적절한 처리를 해주는 것이 안전하고 바람직합니다 😊
도움이 되어드렸다면 구독 / 좋아요 부탁드립니다.👏🏻
감사합니다.🙂
'Java > Spring' 카테고리의 다른 글
[Spring] Spring Tool Suite4 설치하기 (0) | 2023.09.08 |
---|---|
[Spring] BeanCreationException 해결하기 (0) | 2023.09.08 |
[Spring] 외부 JS 파일에서 Spring message 사용하기 (0) | 2023.09.08 |
[Spring] 다국어 지원 기능을 만들다가 만난 상황들 (0) | 2023.09.08 |
[Spring] Annotation의 중요성을 느끼다 (0) | 2023.09.08 |