D +1
앞으로 8주동안 진행할 프로젝트에 대한 계획을 세우고 그의 첫번째 단계인 리서치를 진행하였다.
8주 동안 내가 해야할 프로젝트는 language pack(언어팩)과 같은 개념으로, 다양한 언어로 웹 페이지를 볼 수 있도록 구현하는 것이다. 내가 언어팩도 만들어야 할 것이고, 그것을 어떻게 적용시켜서 구현할 것인지 리서치하고 해결해 나가야할 것이다.
1. 용어 정리
language pack이란? 일반적으로 인터넷에서 다운로드 받을 수 있는 파일로 구성되어 있으며, 설치하면 사용자가 응용 프로그램이 처음 작성된 언어가 아닌 다른 언어로 시스템에 적용시킬 수 있다. 이때, 글꼴도 함께 적용된다.
웹 서버란? 웹 브라우저를 이용하여 World Wide Web을 사용하는 클라이언트에게 미리 저장된 하이퍼 텍스트를 제공하는 서버를 지칭한다. 웹 서버의 종류에는 아파치, IIS등이 있으며 내가 현장실습으로 있는 회사에서는 express를 사용한다고 한다.
Qt란? 컴퓨터 프로그래밍에서 GUI 프로그램 개발에 널리 쓰이는 크로스 플랫폼 프레임워크이다. 서버용 콘솔과 명령 줄 도구와 같은 비GUI 프로그램 개발에도 사용된다. 그래픽 사용자 인터페이스를 사용하는 경우에는 Qt를 위젯 툴킷으로 분류한다.
NLS이란? National Language Support 국가별 언어 지원을 말한다.
라우터란? 서로 다른 네트워크를 연결해주는 장치를 말한다. 서로 다른 네트워크들이 연결되어 있을 때 각각의 네트워크들의 통신 방법이나 신호가 다르기 때문에 이들이 서로 송수신하기 위해서 중간에서 정리하고 안내해 줄 장치를 라우터라고 한다.
라우팅이란? internetwork을 통하여 근원지에서 목적지로 데이터가 전달될 수 있도록 하는 기능을 말한다. 라우터가 가지고 있는 소프트웨어적 기능으로 패킷의 주소 정보를 읽어 데이터를 목적지별로 분류한다. 네트워크 상에서 정보를 주고 받을 때에는 데이터 앞뒤에 발신지와 목적지 그리고 수신상황과 관련한 각종 정보데이터를 덧붙인 패킷 형태로 송수신 된다.
2. 다국어가 지원되는 웹사이트 만들기 - 방법 리서치
(1) IP 주소 사용
ip 주소를 이용하여 접속한 국가명에 맞는 언어 페이지를 보여주도록 하는 방법
(2) NLS
> I18N = Internationalization 국제화, 한 언어를 여러 언어들에 대응시켜 다른 국가의 사람들에게도 읽힐 수 있게 만드는 작업이다.
① 자바 스크립트에서 적용
② jquery.i18n.properties를 사용
* 모든 다국어 처리를 서버 사이드에서 진행하기에는 부담이 크며, 외부 자바스크립트 파일로도 처리가 힘들기 때문에 jquery.i18n.properties를 사용한다.
* 서버사이드 언어에서 사용하고 있는 message properties 파일을 재활용할 수 있도록 한다.
* 서버사이드 언어로부터 프로퍼티 내용을 읽어오기 위해 서버로 요청을 보내야 한다.
// This will initialize the plugin // and show two dialog boxes: one with the text "Olá World" // and other with the text "Good morning John!" jQuery.i18n.properties({ name:'Messages', path:'bundle/', mode:'both', language:'pt_PT', callback: function() { // We specified mode: 'both' so translated values will be // available as JS vars/functions and as a map // Accessing a simple value through the map jQuery.i18n.prop('msg_hello'); // Accessing a value with placeholders through the map jQuery.i18n.prop('msg_complex', 'John'); // Accessing a simple value through a JS variable alert(msg_hello +' '+ msg_world); // Accessing a value with placeholders through a JS function alert(msg_complex('John')); } }); |
③ node.js에서 적용
* 모듈 설치($ npm i -S i18n) 후 모듈을 불러와서 사용 한다.
var i18n = require('i18n'); i18n.configure({ locales: ['ko', 'en'], fallbacks: { nl: 'ko' }, defaultLocale: 'ko', //디폴트 언어 cookie: 'lang', //쿠키 이름 설정 directory: __dirname + '/locales' //폴더 생성위치 }); |
json 파일에 언어들을 각각 저장하여 실행 (kr.json, en.json)
* 템플릿 파일에서 코딩(호출)
<%= __('json 파일에서 설정한 이름') %> |
* 코드 사용방법 : https://stackoverflow.com/questions/8972639/how-do-you-use-i18n-with-node-js
> L10N = Location 현지화, 좀 더 심화적으로, 단순히 내용이 읽히는 것에 더해서 지역명이나 인물을 바꾸거나, 숙어와 속담, 문화와 생활 양식 등을 대상 국가에 맞춰 치환해서 현지화하는 작업이다.
(3) 쿠키 이용,,(?)
언어 선택과 관련하여 발급했었던 쿠키가 있다면 이 쿠키 언어를 사용한다. 특정 요청시 쿠키에 언어 추가하고, 이후에 쿠키에 언어값에 따라 로케일을 변경하는 방식을 사용한다.
*로케일 : 사용자의 언어, 국가뿐 아니라 사용자 인터페이스에서 사용자가 선호하는 사항을 지정한 매개 변수의 모임이다. 보통 로케일 증명자는 적어도 하나의 언어 증명자와 하나의 지역 증명자를 가지고 있다.
*파싱 : 주로 어떤 데이터를 다른 모양으로 가공하는 걸 말한다.
*크롤러 : 조직적, 자동화된 방법으로 월드 와이드 웹을 탐색하는 컴퓨터 프로그램이다.
*크롤링 : 새로운 페이지나 업데이트 된 페이지를 찾아 구글에 추가하는 과정을 말한다.
(4) URL사용
언어의 버전별로 다른 URL을 사용한다.
예시) example.ko, ko.example.com, example.com/ko/ 등등
(5) 엔진 사용
Xpress엔진
firebase
--------------------------------------------------------------------------------------------------
단어에 대한 개념이 부족해서 하나를 검색하면 이 단어를 모르고 검색이 꼬리에 꼬리를 물다보니 뜻 찾아보고 이해하는데에만 하루 종일이 걸렸다. 사실 아직도 이해하지 못했다 ㅎㅎ 그래서 여기저기서 짜깁기해서 정리한 느낌이 굉장히 크다. 지금 한 것도 맞게 한건지, 내가 뭘 한건지 사실 잘 모르겠다! 그냥 지금 개념이 없는 듯... 증말 눈 빠지는 줄 알았는디,,, 정리한 거 제출하려고 보니까 정리 내용이 없어서 당황함ㅋㅋ 망했다 ㅠㅜ 앞으로 8주 어떡하지...
* 그냥 혼자 정리한거니 참고 X, 틀린거 많아요!
'동계현장실습' 카테고리의 다른 글
19.01.14 월요일 (0) | 2019.01.14 |
---|---|
19.01.11 금요일 (0) | 2019.01.11 |
19.01.10 목요일 (0) | 2019.01.10 |
19.01.09 수요일 (0) | 2019.01.09 |
19.01.08 화요일 (0) | 2019.01.08 |