요즘 소프트웨어 국제화에 대해 공부하고 있다.
국제화는 소프트웨어가 지역의 문화 언어에 상관 없이 사용될 수 있도록 설계하는 것을 뜻한다.
유저가 선호하는 언어, 나라를 브라우저에서 탐색해 자동으로 세팅해주는 방식이다.
국제화 공부를 하다보면,
생각보다 신경써야할 부분들이 많은 걸 배우게 된다.
나라마다 측량 단위가 다른 것도 고려해야하고
같은 언어를 사용하더라도, 숫자를 세는 단위와 문화적 특성이 다르다.
무엇보다, 아랍쪽으로 넘어가면 글을 쓰는 방향조차도 다르다.
그래서 웹 브라우저가 어느 문화권의 유저가 사용하건, 자연스럽게 그 나라에서 사용되는 문화적 특성을 모두 반영하는 것이
좋은 글로벌 소프트웨어라고 말 할 수 있다.
이번 글을 적게 된 건, 기술적 선택을 고려할때, 어떤 부분을 생각해야하는지에 대해 고민하고 싶었다.
글의 방향을 예시로 들어보자.
한글이나 영어처럼 왼쪽에서부터 읽을 수 있는 글을 ltr(left to right)
문자라고 한다.
반면 아랍어처럼 오른쪽에서부터 읽는 글을 rtl(right to left)
라고 한다.
이를 구현하기 위해서는, html 내에 코드 한줄만 적으면 충분하다.dir = 'ltr'
, dir = 'rtr'
이렇게만 하면 글의 방향을 그냥 정할 수 있다.
그런데 웹페이지를 디자인하는 css로도 가능하다.direction:'ltr'
,direction:'rtl'
결국 보여지는 화면은 같은데, 어느 기술을 써야할까?
일을 하다보면, 자신만의 기준과 왜 이걸 사용해야하는지에 대해 끊임없이 생각하게 된다.
그저 공식문서에서, 다른 사람들이 많이 사용해서라는 건 이유가 되지 않는다. (실제로 CTO님한테도 이걸로 많이 깨졌다)
다른 곳에서 사용했다해서, 나도 그렇게 사용해야하는 건아니다.
그 정보를 보고, 나만의 기준으로 왜 그렇게 생각했는지에 대해 글을 작성해보는 것이 중요하다고 느낀다.
그냥 기능만 돌아가게 만들면 결국 남는게 없다.
깊게 파고 본질을 알게 되면 흔들리지 않는 지식이 몸에 쌓이게 된다.
정답은 없겠지만, 결과만 말하자면 나는 html에 기입하는 방향으로 결정했다.
왜냐고?
앞서 말했듯 본질을 고려해서다.
다음은 mdn 공식문서에 따른 html과 css의 정의다.
HTML(HyperText Markup Language)은 웹을 이루는 가장 기초적인 구성 요소로, 웹 콘텐츠의 의미와 구조를 정의할 때 사용합니다. HTML 이외의 다른 기술은 일반적으로 웹 페이지의 모양/표현 (CSS), 또는 기능/동작 (JavaScript)을 설명하는 데 사용됩니다.
CSS(Cascading Style Sheets)는 웹 페이지에 스타일과 레이아웃을 적용할 때 사용합니다. 예시를 몇 가지 들자면 글꼴, 색상, 크기를 조절하고, 콘텐츠의 간격을 조정하고, 페이지를 여러개의 열로 나누고, 애니메이션 등 장식을 추가할 수도 있습니다.
ltr, rtl 방식은 레이아웃이나 디자인의 영역이 아니다.
해당 문화를 반영한 구조다.
그리고 중동권에서는 인터넷에 대한 지원이 한국만큼 빠르진 못하다.
인터넷이 느릴 경우 css파일을 로드하지 않은체로, html 파일만 로드받아 사용될 경우가 있다고 한다.
따라서, 정말 최악의 상황에도 대비할 수 있도록 html에 dir을 정의하는게 맞다고 판단했다.
마찬가지로 이미지 태그를 넣을때,
보여지지도 않는 alt 태그르 넣는 것도 마찬가지다.
voice Over와 같은 화면인식 음성 출력 서비스를 위해서다.
해당 사진이 어떤 사진을 나타내고 있는지 대체해야할 소스를 제시하는 것이다.
모든 기술에는 이유가 있다.
기술이 적용됐다고해서, 손을 놓지 말자.
'생각정리' 카테고리의 다른 글
내가 틀렸을 수 있겠다 - 수습 중간 면담 (1) | 2022.10.13 |
---|---|
개발자의 자질 (0) | 2022.09.29 |
현실에 의존하지 않기 (1) | 2022.09.19 |
새우잠을 자도 고래꿈을 꿔라 (0) | 2022.09.18 |
블로그 새로 시작합니다 :) (0) | 2022.09.09 |