IT 성장일기

[Spring] 다국어 지원 버전을 만들다가 만난 상황들 -2- 본문

Java/Spring

[Spring] 다국어 지원 버전을 만들다가 만난 상황들 -2-

고 양 2023. 9. 8. 10:14
반응형
다국어 지원 버전을 만들다가 만난 상황들 -2-

한국어 외 3개 국어를 지원하는 글로벌 버전 어플리케이션을 개발하다보니 이런 저런 상황을 다양하게 마주했습니다.
오늘 재미있는 경험을 해서 기록으로 남겨봅니다.

 

따옴표 조심하세요

기존에 오류 없이 잘 돌아가던 화면에서 갑작스럽게 오류가 발생해 원인을 찾아보았습니다.

오류 내용은 Uncaught SyntaxError.. 스크립트 부분에서
괄호 따옴표가 제대로 된 쌍을 이루지 않았을 경우 자주 볼 수 있는 오류였습니다.

 

 

분명 해당 화면을 한국어나 일본어로 사용할 때는 이상이 없었는데 영어버전일 때에만 이 오류가 발생했습니다.

오류를 표시하는 해당 라인을 찾아보니 alert 함수에 다국어 메시지를 삽입한 부분이었습니다.
원인이 뭘까 곰곰히 생각해보다가 아차 싶었던게 있었습니다.

 

얼마 전 "can not" 이라는 표현을 "can't"라고 일괄적으로 변경했던 것이 그 원인이었습니다.

아포스트로피로 쓰인 홑따옴표를 홑따옴표로서 표시하려면 백슬래쉬를 붙여줘야 하고, 백슬래쉬는 백슬래쉬대로 이스케이프 문자로서 알맞게 처리해줬어야 했는데 그러지 않았으니 문장 중간에서 문자열이 닫혀버린 것이었습니다...

예) alert('I can't go home');
파란 부분까지만 문자열로 취급되어 빨간 부분은 스크립트 에러를 발생시킵니다.

 

 

문제를 야기한 부분입니다. 기초 중의 기초를 간과한 부분이었습니다...

 

 

아래 문장의 경우 아포스트로피 이스케이프 문자로서 처리 한 예시입니다.

해당 처리를 하고 alert 함수로 메시지를 출력해봤더니 오류가 말끔하게 사라졌습니다.

 


한가지 더

문제를 해결하고 보니 한가지 더 궁금한 점이 생겼습니다.

'그렇다면 따옴표나 쌍따옴표가 올바르게 한 쌍을 이루는 경우는 이스케이프 문자 처리를 안해줘도 괜찮을까?'

결론부터 말하자면 '그렇다'였습니다 아래 스크린샷은 한 쌍을 이루는 쌍따옴표가 포함된 문장입니다.

 

 

해당 메시지에는 쌍따옴표 앞에 백슬래시 두개를 붙이지 않아도 아무런 에러 없이 메시지가 나오는 것을 확인할 수 있었습니다.

 

 

 

 


 

마무리하며

 

앞서 기록한 사례 외에도 어디서 발생할 지 모르는 사이드이펙트를 최소화하기 위해서는
따옴표나 괄호 등의 특수기호 앞에 백슬래쉬 등으로 적절한 처리를 해주는 것이 안전하고 바람직합니다 😊

 

도움이 되어드렸다면 구독 / 좋아요 부탁드립니다.👏🏻

감사합니다.🙂

반응형