<Google Cloud Translate auth>
export GOOGLE_APPLICATION_CREDENTIALS ...
<API key>
GOOGLE_API_KEY ...
<Nginx config>
/usr/local/etc/nginx/nginx.conf - MAC
/etc/nginx/nginx.conf - LINUX
server {
listen 80;
server_name localhost;
location / {
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header Host $http_host;
proxy_pass http://127.0.0.1:9090;
}
}
server {
listen 443 ssl;
server_name localhost;
ssl_certificate ํ์ผ๊ฒฝ๋ก.crt;
ssl_certificate_key /etc/ssl/private/nmsg.nicovideo.jp.key; (์์)
location / {
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header Host $http_host;
proxy_pass http://127.0.0.1:9090;
}
}
์ฐธ๊ณ : https://zetawiki.com/wiki/%EB%A6%AC%EB%88%85%EC%8A%A4_%EC%9E%90%EC%B2%B4%EC%84%9C%EB%AA%85_SSL_%EC%9D%B8%EC%A6%9D%EC%84%9C_%EC%83%9D%EC%84%B1
<Host config>
/etc/hosts
127.0.0.1 nmsg๋ทnicovideo๋ทjp
202๋ท248๋ท252๋ท234 pobi.god
- http://nicovideo.jp/watch/sm5361236 ์ ๊ฐ์ด ๋์์ ์ฃผ์๋ก ์ ์์ ํ๋ค.
- ์น ํ์ด์ง๊ฐ 1์ฐจ์ ์ผ๋ก ๋ก๋ฉ์ด ๋๊ณ ๋ค์ ๋ธ๋ผ์ฐ์ ์์ post ์์ฒญ์ด ์ฝ๋ฉํธ ์๋ฒ์ธ nmsg.nicovideo.jp/api.json ์ผ๋ก ๊ฐ๋ค.
- ์ฝ๋ฉํธ ์๋ฒ์์ ํด๋น ๋์์์ ๋ง๋ ์ฝ๋ฉํธ๋ฅผ json์ผ๋ก ๋ฆฌํดํ๋ค.
- ๋ธ๋ผ์ฐ์ ๋ ์ฝ๋ฉํธ๋ฅผ ๋ฐ์์ ์น๋ธ๋ผ์ฐ์ ์ ๋์์ ์์ ๋ ๋๋ง ํ๋ค.
์ฝ๋ฉํธ์ ๊ฒฝ์ฐ ์ค์ ๋ก ํ๋ํ๋๊ฐ ์ค์๊ฐ์ผ๋ก ์ ์ก๋๋ ๊ฒ์ ์๋๊ณ ์ ์ฒด ๋ฐ์ดํฐ๊ฐ ํ๊บผ๋ฒ์ ์จ๋ค. ๋์์ ์ฌ์ ์ค ์ ์ ๊ฐ ์ฝ๋ฉํธ๋ฅผ ๋จ๊ธฐ๋ฉด ๊ทธ ํ์ด๋ฐ์ด ์ ์ฅ๋๊ณ ๋์ค์ ๋ค๋ฅธ ์ ์ ๊ฐ ํด๋น ๋์์์ ์ฌ์ํ์๋ ๊ฐ์ ํ์ด๋ฐ์ ๋ค๋ฅธ ์ ์ ๊ฐ ๋จ๊ธด ์ฝ๋ฉํธ๋ฅผ ๋ณผ ์ ์๋ค.
- http://nicovideo.jp/watch/sm5361236 ์ ๊ฐ์ด ๋์์ ์ฃผ์๋ก ์ ์์ ํ๋ค.
- ์น ํ์ด์ง๊ฐ 1์ฐจ์ ์ผ๋ก ๋ก๋ฉ์ด ๋๊ณ ๋ค์ ๋ธ๋ผ์ฐ์ ์์ post ์์ฒญ์ด ์ฝ๋ฉํธ ์๋ฒ์ธ nmsg.nicovideo.jp/api.json ์ผ๋ก ๊ฐ๋ค.
- nmsg.nicovideo.jp/Api.json ๋ก์ ์์ฒญ์ด host ์ค์ ์ ์ํด localhost:80 ์ผ๋ก ๊ฐ๋ค.
- Localhost:80 ์ผ๋ก ๊ฐ ์์ฒญ์ด nginx์ ์ํด ๋ค์ localhost:8080์ผ๋ก ๊ฐ๋ค.
- ์คํ๋ง๋ถํธ ์๋ฒ๊ฐ 8080ํฌํธ๋ก์ ์์ฒญ์ ๋ฐ๋๋ค.
- ์์ฒญ์ ํค๋๋ฅผ ์ฌ์ฉํด์ ์ปจํ ํธ ํ์ ๊ณผ Origin ๋ฑ์ ์ ๋ณด๊ฐ ๋ด๊ธด ์ผ์ข ์ ๋ณต์ ๋ ํค๋ ๊ฐ์ฒด๋ฅผ ์์ฑํ๊ณ , ์๋ ์์ฒญ์ ๋ฐ๋๋ฅผ ํฉ์ณ HttpEntity ์ธ์คํด์ค๋ฅผ ์์ฑํ๋ค.
- ์์ฑํ ์ธ์คํด์ค๋ก http://pobi.god/api.json์ ์์ฒญ์ ๋ณด๋ด์ json ๊ฐ์ฒด๋ฅผ ์คํ๋ง๋ถํธ ์๋ฒ๋ก ๋ฐ์์จ๋ค. ( ์ฌ๊ธฐ์ https ๋๋ฌธ์ ๋ฌธ์ ๋ฐ์ )
- ์๋ ์ฝ๋ฉํธ ์๋ฒ์ url๋ก ๋ณด๋ด๋๊ฒ ์๋ http://pobi.god/api.json ๋ก ๋ณด๋ด๋ ์ด์ ๋ ์ด์ ์ host ์ค์ ์ ์ํด ๋ค์ localhost:80์ผ๋ก ์ด๋ํ๊ธฐ ๋๋ฌธ์ด๋ค. host์ค์ ์ ๋ณ๋๋ก http://pobi.god/api.json ์ 202.248.252.234 ์ผ๋ก ๊ฐ๋๋ก ์ค์ ํด ๋์๋ค.
- ๋ฐ์์ฌ๋ ์ํ์น์ http ๋ผ์ด๋ธ๋ฌ๋ฆฌ๋ฅผ ์ฌ์ฉํด์ gzip์ผ๋ก ์์ถ๋ json ํ์ผ์ ๋ฐ๋๋ค.
- ๋ฐ์ json์ List ํ์ผ๋ก ์ญ ์ง๋ ฌํ ํ๋ค. Item์ HashMap<String, Contents>์ ํ์ฅํ ๊ฐ์ฒด์ด๋ค.
- List์์ Item์ key๊ฐ โcontentโ ์ธ value์ ํด๋นํ๋ Content ์ธ์คํด์ค๋ฅผ ์ฐพ๋๋ค. Contents๋ HashMap<String, Object>์ ํ์ฅํ ๊ฐ์ฒด์ด๋ค.
- ์ฐพ์ Content ์์์ ๋ค์ key๊ฐ โcontentโ์ธ ์์๋ฅผ ์ฐพ์์ ํด๋น ์์์ ๋ ํผ๋ฐ์ค์ value์ธ ๋ฒ์ญํ ํ ์คํธ๋ฅผ Pairํด๋์ค์ ์๋ก์ด ์ธ์คํด์ค๋ก ๋ฐํํ๋ค.
- ๊ทธ๋ฆฌ๊ณ ์ด๋ ๊ฒ ์์ฑ๋ Pair ์ธ์คํด์ค๋ค์ ๋ชจ์์ List๋ก ๋ค์ ๋ฐํํ๋ค.
- List์์ ๋ฒ์ญํ ํ
์คํธ๋ง ๋ฐ๋ก ๋ฆฌ์คํธ๋ก ์ถ์ถํด์ ๋ฒ์ญํ๋ค.
- ์ด๋ ๋ฒ์ญ์ ํ๊บผ๋ฒ์ ํ ๊ฒฝ์ฐ ๋ฒ์ญ์ด ๋์ง ์๋๋ค. ๋ฐ๋ผ์ GUAVA๋ฅผ ํ์ฉํด 100๊ฐ ๋จ์์ ๋ฆฌ์คํธ๋ก ๋๋ ํ ๋๋ ์ง ๋ฆฌ์คํธ๋ฅผ ์คํธ๋ฆผ์ผ๋ก ๊ฐ๊ฐ ๋ฒ์ญํ ๋ค์ ํฉ์ณ์ ํ๋์ ๋ฆฌ์คํธ๋ก ๋ฆฌํดํ๋ค.
- List๋ฅผ ๋๋ฉด์ Pair์์ Content์ ๋ ํผ๋ฐ์ค๋ฅผ ์ด์ฉํด์ ์๋ Content์ ์ฝ๋ฉํธ ๋ถ๋ถ์ ๋ฒ์ญํ ์ฝ๋ฉํธ๋ก ๊ต์ฒดํ๋ค.
- ๋ฒ์ญ์ด ์๋ฃ๋ List์ json์ผ๋ก ๋ณํํด ๋ฆฌํดํ๋ค. ๋ฆฌํด๋ json์ ๋ธ๋ผ์ฐ์ ๋ก ๊ฐ๋ค.
- ๋ธ๋ผ์ฐ์ ๋ ์ฝ๋ฉํธ๋ฅผ ๋ฐ์์ ์น๋ธ๋ผ์ฐ์ ์ ๋์์ ์์ ๋ ๋๋ง ํ๋ค.