새로운 강의는 이제 https://memi.dev 에서 진행합니다.
memi가 Vue & Firebase로 직접 만든 새로운 사이트를 소개합니다.
npm geoip
현재 웹사이트를 미국에서도 쓰고.. 프랑스에서도 쓰고 독일에서도 쓸 때 개발자라면 어떻해야할까?
우선 인터내셔널 버튼을 만들어서 선택하게 해야겠지 플래그를 그리고 쿠키에 저장하고 다음에 켜지면 그 쿠키의 플래그의 언어를 사용하면되고..
거기까진 좋다..
하지만 최소한 기본페이지는 영어로했을 때 이야기다..
한국인이 접속해야할 사이트를 만들다 고민에 빠졌다..
접속해야할 대상자들이 5,60대의 컴퓨터에 무지하신 분들 상당수인데..
영어가 바글바글 있는 사이트에서 인터내셔널 버튼하나 누르기가 힘들 수 있기 때문이다..
그래서 고민 후 생각한 것이 아이피 대역으로 속한 나라를 판단하여 html 페이지를 그 나라언어로 렌더링하는 것이다..
이미 글로벌 대기업들은 그렇게 하고있다.. 상용디비로..
물론 아이피로는 어찌되었든 부정확하지만..
오늘 설치해본 패키지는 geoip-lite
https://www.npmjs.com/package/geoip-lite
사용
사용법은 간단하다. 위의 링크 예제를 하나 node에 적어서 실행해보면 바로 나온다..
var geoip = require('geoip-lite');
var ip = "207.97.227.239";
var geo = geoip.lookup(ip);
console.log(geo);
{ range: [ 3479297920, 3479301339 ],
country: 'US',
region: 'TX',
city: 'San Antonio',
ll: [ 29.4889, -98.3987 ],
metro: 641,
zip: 78218 }
geo.country 가지고 렌더링을 하면되는 것이다..
res.render('signin',{geo:geo});
//signin.pug에서는
doctype html
html(lang=geo.country)
head
meta(charset='utf-8')
title
if(geo.country === 'KR')
| 한글타이틀
else
| ENGLISH title
pug 사이트의 condition에 예제가 잘 나와있다.
결론
npm에는 보물이 너무 많다.. 콜백으로 리턴을 안받아서 행복하다.
댓글남기기