2014년 6월 26일 목요일

구글 IO 2014 및 Velocity Santa Clara 2014

이틀동안 구글I/O와 Velocity Santa Clara 2014를 왔다갔다 했습니다. 하나는 샌프란시스코, 하나는 산타클라라... 둘이 약 45마일 떨어져 있는데 한번 이동하는데 한시간이라...

이하 간단한 감상

- 구글I/O: 사실 팬부심으로 가야 하는데, 팬 수준은 아닌 사람이라... 아이폰 천국인 미국에서 안드로이드 사용자 밀도가 가장 높은 곳일듯 하더군요. 구글 글래스 쓴 사람도 많고요.
구글 글래스는 1층 부스에서 $1500에 팔고 있는데 여전히 사고 싶지 않습니다... 그 돈이면 PS4 + 크롬북 사고도 남겠다. 근데 거기 돌아다니면 워낙 글래스 쓴 사람이 많아서 지름신이 떠다니긴 하죠.

키노트는 너무 많은걸 나열하느라 핵심을 놓쳐 보입니다. 안드로이드 L 위주이긴 한데 안드로이드오토 (vs 카플레이) 안드로이드웨어(vs 아이워치) 안드로이드핏 (vs 헬스) 등 모바일 분야에서는 애플을 따라가야 하고, 클라우드 플랫폼은 아마존을 따라가야 하는데, 클라우드의 경우 Docker 통합과 더불어서 PaaS라는 면에서는 한단계 이상에 접근한 것으로 보이지만 구글이 아무리 크다고 해도 두 거물을 동시에 따라가기에는 한계가 있어 보입니다.

신 서비스 데이터플로는 멋져 보이긴 한데 모르는 사람은 통 모르는 서비스이고, 키노트에서 라이브 디버깅은 마찬가지로 공돌이의 로망이겠지만 모르는 사람은 통 모르는 일이죠. 주목도 면에서는 차라리 셀프드라이빙카나 구글글래스 차기버전을 팡팡 터뜨리는게 더 낫지 않았을까요. 뭐 그걸 모르는 바 아닐 테지만 안드로이드 L의 이름도 못정한 걸로 보아서 여러가지 사정이 있지 않았을까 합니다.

나머지는... 여전히 밥은 맛있고 선물은 좋긴 한데 안드로이드웨어 시계는 연동하려면 안드로이드 4.3이상 되는 폰이 있어야 하는데 저는 아이폰과 파이어폭스OS폰 그리고 안드로이드 4.2폰만 있어서 꽝. 킨들파이어에 루팅한 킷캣이 깔려 있는데 그건 블루투스가 안달려 있고... 막상 모토롤라의 스마트워치는 LG나 삼성것이랑 시간을 못맞추어서 나중에 보내 준다는 굴욕이... 뭐 이젠 구글 아니라 관심이 떨어진것 같습니다.

키노트에서 무언가 발표할 때 마다 환호성이 영 시원찮은게 원인이 1) 공돌이라 그런 타이밍을 못맞춘다 (미드 실리콘밸리를 보시길) 2) 발표자가 박수를 이끌어내는 타이밍이 애매하다 둘 다에 속하는듯. 애플이 그런 프레젠테이션 기술에서는 갑이지요...

- Velocity Santa Clara: 사실 많이는 못봤는데 CDN, 성능 모니터링, 자동 디플로이 관계된 회사가 점점 더 많이 나옵니다. 웹 성능 모니터링은 국내에서는 주목도가 높지 않은 분야인데 이 분야에는 대기업 (Compuware라든가) 중소기업 스타트업 모두 몰려드는 분야이고 요즘의 빅데이터 바람을 타고 있어 보임. 국내 스타트업도 이런 회사들이 나와 주었으면 좋곘는데... 최근에 관심 있는 회사는 New Relic, Appneta 같은 성능 측정 회사나 관리엔진의 신예 Ansible 등입니다.

2014년 6월 18일 수요일

Unbound win32 버전으로 PC에 DNS 리졸버 만들기

unbound 는 DNS서버이긴 한데 캐시 모드만 동작 시키면 기존 ISP의 DNS서버를 지정하는 대신 자신의 PC에 DNS 로컬 리졸버를 설치할 수 있습니다. 즉 ISP에서 제공하는 DNS서버를 자신의 PC에 설치한다고 보면 됩니다.

1. 설치


http://unbound.net/download.html

에서 Win32 (32비트 버전 또는 64비트 버전)을 설치하면 됩니다. 설치시에 특별히 해 주어야 할 일은 없습니다. 저는 XP에서 해 보았지만 Vista 이후 버전에서도 문제 없을 겁니다.

2. 설정


C:\Program Files\Unbound 에 설치 되었다고 가정 하고, 다음과 같이 설정 합니다. DNS서버로 설정 하려면 더 복잡한 설정이 필요하겠지만 이건 캐시 용도로만 사용할 거니까요.

C:\Program Files\Unbound\service.conf :
server:
directory: "c:\Program Files\Unbound"
root-hints: "c:\Program Files\Unbound\root.hints"
interface: 127.0.0.1
access-control: 127.0.0.0/8 allow_snoop
verbosity: 1
hide-identity: yes
hide-version: yes
prefetch: yes
do-ip4: yes
do-ip6: no
do-udp: yes
do-tcp: no
private-address: 10.0.0.0/8
private-address: 172.16.0.0/12
private-address: 192.168.0.0/16
private-address: 127.0.0.1/8
logfile: "c:\unbound.log"


그리고 root 서버의 목록인 root.hints를 만들어야 합니다. 이 파일은 IANA에서 보급하는 네임서버용 root.hints를 사용하면 되므로, http://www.internic.net/domain/named.root 를 다운로드해서 C:\Program Files\Unbound\root.hints 로 저장하면 됩니다. 이 파일을 종종 업데이트되니 위 URL에서 최신 버전을 다운로드받아 쓰는게 제일 좋습니다.

C:\Program Files\Unbound\root.hints :
;       This file holds the information on root name servers needed to
;       initialize cache of Internet domain name servers
;       (e.g. reference this file in the "cache  .  "
;       configuration file of BIND domain name servers).
;
;       This file is made available by InterNIC 
;       under anonymous FTP as
;           file                /domain/named.cache
;           on server           FTP.INTERNIC.NET
;       -OR-                    RS.INTERNIC.NET
;
;       last update:    June 2, 2014
;       related version of root zone:   2014060201
;
; formerly NS.INTERNIC.NET
;
.                        3600000  IN  NS    A.ROOT-SERVERS.NET.
A.ROOT-SERVERS.NET.      3600000      A     198.41.0.4
A.ROOT-SERVERS.NET.      3600000      AAAA  2001:503:BA3E::2:30
;
; FORMERLY NS1.ISI.EDU
;
.                        3600000      NS    B.ROOT-SERVERS.NET.
B.ROOT-SERVERS.NET.      3600000      A     192.228.79.201
B.ROOT-SERVERS.NET.      3600000      AAAA  2001:500:84::B
;
; FORMERLY C.PSI.NET
;
.                        3600000      NS    C.ROOT-SERVERS.NET.
C.ROOT-SERVERS.NET.      3600000      A     192.33.4.12
C.ROOT-SERVERS.NET.      3600000      AAAA  2001:500:2::C
;
; FORMERLY TERP.UMD.EDU
;
.                        3600000      NS    D.ROOT-SERVERS.NET.
D.ROOT-SERVERS.NET.      3600000      A     199.7.91.13
D.ROOT-SERVERS.NET.  3600000      AAAA  2001:500:2D::D
;
; FORMERLY NS.NASA.GOV
;
.                        3600000      NS    E.ROOT-SERVERS.NET.
E.ROOT-SERVERS.NET.      3600000      A     192.203.230.10
;
; FORMERLY NS.ISC.ORG
;
.                        3600000      NS    F.ROOT-SERVERS.NET.
F.ROOT-SERVERS.NET.      3600000      A     192.5.5.241
F.ROOT-SERVERS.NET.      3600000      AAAA  2001:500:2F::F
;
; FORMERLY NS.NIC.DDN.MIL
;
.                        3600000      NS    G.ROOT-SERVERS.NET.
G.ROOT-SERVERS.NET.      3600000      A     192.112.36.4
;
; FORMERLY AOS.ARL.ARMY.MIL
;
.                        3600000      NS    H.ROOT-SERVERS.NET.
H.ROOT-SERVERS.NET.      3600000      A     128.63.2.53
H.ROOT-SERVERS.NET.      3600000      AAAA  2001:500:1::803F:235
;
; FORMERLY NIC.NORDU.NET
;
.                        3600000      NS    I.ROOT-SERVERS.NET.
I.ROOT-SERVERS.NET.      3600000      A     192.36.148.17
I.ROOT-SERVERS.NET.      3600000      AAAA  2001:7FE::53
;
; OPERATED BY VERISIGN, INC.
;
.                        3600000      NS    J.ROOT-SERVERS.NET.
J.ROOT-SERVERS.NET.      3600000      A     192.58.128.30
J.ROOT-SERVERS.NET.      3600000      AAAA  2001:503:C27::2:30
;
; OPERATED BY RIPE NCC
;
.                        3600000      NS    K.ROOT-SERVERS.NET.
K.ROOT-SERVERS.NET.      3600000      A     193.0.14.129
K.ROOT-SERVERS.NET.      3600000      AAAA  2001:7FD::1
;
; OPERATED BY ICANN
;
.                        3600000      NS    L.ROOT-SERVERS.NET.
L.ROOT-SERVERS.NET.      3600000      A     199.7.83.42
L.ROOT-SERVERS.NET.      3600000      AAAA  2001:500:3::42
;
; OPERATED BY WIDE
;
.                        3600000      NS    M.ROOT-SERVERS.NET.
M.ROOT-SERVERS.NET.      3600000      A     202.12.27.33
M.ROOT-SERVERS.NET.      3600000      AAAA  2001:DC3::35
; End of File

2.1. 설정 확인


cmd 를 쓰면 쉽게 할 수 있습니다.

> cd c:\program files\unbound
> unbound-checkconf
unbound-checkconf: no errors in C:\Program Files\Unbound\service.conf

이렇게 나오면 문제 없습니다. 다른 오류가 나오면 설정 파일을 수정하시기 바랍니다.

2.2. 서비스로 실행


이미 서비스로 설치가 되어 있으니, cmd 또는 services.msc 에서 재시작만 해 주면 됩니다.

> net stop unbound
> net start unbound

2.3. DNS resolver 변경


이제 사용하는 PC 네트워크 장치의 DNS resolver 를 127.0.0.1 로 변경해 주세요.

동작 확인은 직접 브라우저를 띄워 보거나, nslookup 명령으로 해 볼 수 있습니다.

> nslookup daum.net
Server: localhost
Address: 127.0.0.1

Non-authoritative answer:
Name: daum.net
Addresses: 110.45.215.23, 114.108.157.19, 61.111.62.173, 114.108.157.50


3. 끝으로


굳이 ISP의 네임서버를 쓰면 되지 이게 왜 필요할까 하지만... ISP의 네임서버에 문제가 있을 경우 (오래전의 인터넷대란)라든가, ISP 네임서버의 정책을 우회하고 싶다거나 (접속이 안되는 사이트), DNS 기반으로 로드밸런싱을 하는 CDN 에게 자신의 위치를 더 정확하게 알려 주어서 인터넷 속도가 (주로 웹 브라우징이나 비디오이겠죠) 향상되는 효과를 거둘 수 있습니다. 기존에 이런 용도로 Google DNS (8.8.8.8)이나 OpenDNS를 쓰기도 하는데, 이런걸 자신의 PC에 설치한다고 생각하면 되겠죠. Google DNS나 OpenDNS가 edns-client-subnet extension을 지원해서 CDN의 로드밸런싱을 방해하는 일은 거의 없어졌지만, 아직 모든 DNS서버가 그걸 지원하는 것도 아니고 아무래도 자신의 PC에 DNS서버 (127.0.0.1 로만 뜨니까 외부에서 접속 염려는 없습니다)가 있다는 점에 안심하는 분들도 있겠죠.

이 글은 http://npr.me.uk/unbound.html의 내용을 많이 참고하고 있습니다 (설정 파일 등은 거의 그대로). 위 링크에 가시면 필터링 등의 추가 예제도 있으니 살펴 보세요.

2014년 6월 6일 금요일

FF X HD 데어리히터 클리어


길고 긴 여정이 (거의) 끝났군요. 파이널판타지 중 이렇게 시간 많이 쓴 건 없을듯. 사실 7도 웨폰 다 잡는다고 시간 많이 쓰긴 했는데 이정도로 괴로운 여정은 아니었습니다.

공략에 참고할 수 있는 사이트는 대략 다음 두 사이트를 보면 해결 됩니다.


특히 후자의 경우 본편 이후의 부분에 매우 초점이 맞추어져 있으니 후편 공략에 큰 도움이 됩니다.

데어리히터의 경우 제1형태 3백만, 제2형태 9백만이라는 말도 안되는 HP를 자랑합니다. 그게 어느정도인가 하면 시나리오의 최종보스인 ??? (누군지 알려주면 스포이므로)의 HP가 제1형태 6만, 제2형태 12만입니다.

물론 캐릭터도 기본 다음 정도는 해 주어야 그럭저럭 싸울만해 집니다. 어느정도인가 하면...

  • 전 캐릭터 스피어판 1회 완주. 모든 기술과 마법을 얻어 두어야 편하게 싸울 수 있습니다.
  • 몬스터사냥터 전 몬스터 클리어. '모든것을 초월하는 자'의 경우 그냥 참마도로... 사실 이게 데어리히터보다 더 짜증나긴 합니다. 데어리히터는 패턴이나 있지 이쪽은 죽고 살리기를 반복해야 해서...
  • 각종 능력치 스피어 모음. 대략 다음 목표를 잡습니다: HP스피어 - HP 35,000 정도. MP스피어 - 999, 운 - 130, 명중은 안해도 됨, 빠르기는 180, 나머지 공격, 마법공격, 물리방어, 마법방어는 모두 255.
본편이후 노가다에 대해서 이야기하면,
  • 제일 짜증나는 노가다는 HP노가다 (스피어판 완주하면 대략 17,000 정도니까 18,000 정도를 모아야 합니다. HP스피어는 300씩 증가하니까 대략 60개 수집)와 운 스피어입니다 (4씩 증가하니까 약 25개 정도 있으면 기본치 포함해서 충분). 이건 잡아야 하는 몬스터가 워낙 쎄서 시간이 오래 걸려서 그렇고요.
  • 칠요의 무기 - 결국 얻은건 와카, 아론, 유우나, 류쿠 뿐이었습니다. 따라서 최종멤버도 아론, 와카, 류쿠입니다. 왜냐하면 아론, 유우나, 류쿠는 대략 쉽게 얻을 수 있습니다만 나머지는 말도 안되는 미니게임을 통해서 (번개피하기 200번이라든가... 저는 128회에서 포기) 얻어야 하기 때문입니다. 와카는 결국 블리츠볼을 해야 하는데 위 사이트에 있는 공략법을 참고하면 노가다는 뛰지만 운에 맡길 일은 없어서 할만 합니다. 물론 그렇다고 블리츠볼이 좋아질 리는 없고요...
  • 칠요의 무기가 없는 경우 대미지한계돌파 무기가 필요 합니다. 이것들은 헤레틱 소환수정도까지 오면 대략 2-3캐릭터 정도는 갖추어져 있을 겁니다. 본격적인 노가다는 헤레틱 요짐보에서.
  • 방어구의 경우 칠요의 무기같이 정해진 건 없으므로 만들어야 합니다. 이것도 본격적인 노가다는 헤레틱 요짐보에서.
  • 헤레틱 요짐보 노가다를 하는 이유는 결국 전 멤버용 최강방어구 - 기본 HP한계돌파와 리본 - 을 얻기 위함입니다. 물론 칠요의 무기가 없는 캐릭용의 대미지한계돌파 무기도 얻도록 합니다. 여기서 진짜 필요해지는건 HP한계돌파 + 리본 만 있는 4칸짜리가 필요한데 그 확률은 위 위키에서는 0.3% 라고 하므로 열심히 노가다를 뛰어야 합니다.
  • 다만 헤레틱 요짐보의 경우 오버킬 하면 기본 다크매터 x2 가 떨어집니다. 레어아이템이 마스터 스피어라 레어 떨어지면 오히려 실망... 요짐보전은 총 5회인데 4회만 하고 루프를 도니까 동굴을 한번 돌때 얻을 수 있는 최대 다크매터의 수는 8. 99개 모으려면 13회 돌면 됩니다. 1회 도는데 빨리 돌면 8-9분 정도로 걸리니까... 약 두시간 정도 열심히 돌면 다크매터 99개가 나옵니다. 이걸로 리본을 달 수 있으니 그 동안에 리본 달린게 (단 저주방어 없는것) 떨어지면 행운이겠죠.
  • 그리고 HP한계돌파가 죽어도 안나오면 개조해야 하는데 필요한 아이템인 미지로의 날개는 몬스터사냥터의 신룡을 잡으면 두개씩 나옵니다. 30개 필요하므로 총 15회 싸워야. 위키에 빨리 도는 법이 나와 있으므로 참고하면 그럭저럭 빨리 구하는데 한시간 반 정도는 걸릴 겁니다.
데어리히터전에 대해서 이야기하면...
  • 헤레틱 소환수를 모두 물리치면 (순서는 중요하지 않음) 자동으로 등장신이 나오고, 비공정의 리스트 맨 위에 디어리히터가 나타납니다. 전투는 신과 싸울때 처럼 비공정 위에서.
  • 사전준비 - 칠요의 무기가 있는 캐릭터로, 류쿠는 필수. 나머지는 최대한 빠른 캐릭터로 합니다. 유우나, 와카, 아론, 티더 중에서 고르면 될듯. 캐릭터 교체할 일 없으므로 3인으로 고정하면 됨. 패턴을 잘 맞추면 죽을 일이 없습니다. 캐릭터 능력치는 위에 있는 것은 필수. 뭐 이정도까지 오면 당연히 갖추어져 있을 겁니다. HP가 많으면 더 좋은데 제 경우는 약 35,000 대. 방어구는 3인 모두 HP한계돌파 + 리본 + 오토헤이스트 + 오토프로테스. 오버드라이브타입은 모두 '대치'.
  • 본체, 왼팔, 오른팔이 있습니다.
  • 본체의 경우 제1형태 (HP 3백만)인데 '프로비덴스'만 씁니다. 전체공격이고 HP가 약 11,000 정도 닳는데, 류쿠 '조합'의 '하이메가바이탈W' 를 쓰고 난 후면 7,800 정도로 줄어 듭니다. HP도 두배가 되고요. 즉 당장 죽을 일은 없고...
  • 왼팔과 오른팔이 쓰는 기술들이 주로 까다로우므로, 이 전투의 초점은 '어떻게 하면 팔들이 공격하기 전에 팔을 먼저 없애는가'랑 '양팔이 없는 시간을 최대한 늘려서 그 사이에 본체를 공격한다'가 됩니다. 공격은 오직 '퀵트릭'. 마법은 아래 경우만 쓰고 소환후, '조합'이외의 오버드라이브기 사용 금지.
  • 위키를 보면 양팔에게 각 99,999 x 5 의 대미지 (HP가 500,000 이므로 99,999 x 5 를 때리면 HP가 5가 남습니다)을 주고, 연속마법으로 '드레인'이나 '알테마'를 양팔에 1회씩 써서 한꺼번에 양팔을 날려 버리는 전법을 추천 합니다만, 아무래도 그건 HP가 99,999 라 여유가 넘칠때나 잘 되지 시작하면 HP2배 올리고, HP채우고 등등 하려면 그렇게 하기 힘듭니다.
  • 따라서 초반 이후는 팔을 하나씩 없애면서 그 사이에 본체를 공격하는 방법을 추천 합니다.
  • 시작하면 다른 것 하지 말고 (아론이 '먼저공격(사키가케)'가 있으므로 그 경우 스리스타즈 정도 써 줄 수 있습니다) 일단 양팔에 99,999 x 5 씩 공격 하고, 본체의 '프로비던스'는 그냥 맞아 줍니다. 11,000 정도 맞으니까 4번까지는 그냥 맞아줄 수 있습니다.
  • 준비가 되면 연속마법으로 양 팔을 한번에 날려 줍니다. 그 전에 팔들이 공격을 하게 되는데, 딴건 그렇다 치고 왼팔의 '마이티가드'의 경우 데스펠이나 '정화용 소금'을 써서 리제네가 걸린 부위를 모두 제거해 줍니다. 이미 99,999 x 5 공격을 했으면 그럴 필요 없고, 알테마로 팔부터 날리고 본체에게 데스펠을 걸어 주세요. 정화용 소금은 데미지도 약간 줍니다만 1,000 대라 딱히 도움은...
  • 본체만 남은 동안 다음을 해야 합니다: 스리스타즈 사용 ('사용하다') 하이메가바이탈W ('조합') 파이널엘릭서 ('조합'), 핫스파 ('조합'), 엑센트릭 ('조합'). 순서는 중요하지 않을것 같은데 류쿠의 턴이 돌아오면 무조건 '조합'으로 위 것들을 모두 실행해야 하고, 핫스파를 먼저 실행해 두면 도움이 됩니다. 엑센트릭은 맨 나중에 쓰면 됩니다. 오버드라이브 게이지가 부족하면 다른 캐릭터가 '맡기다'를 쓰도록 해 주세요.
  • 오버드라이브 타입을 '대치'로 했으니 행동만 해도 증가 하고, 핫스파와 엑센트릭이 되어 있으면 4턴 정도면 풀로 찹니다. 오버드라이브기는 류쿠만 쓰긴 하지만 '맡기다'할 여유가 없으므로 매우 중요.
  • 위 조합 기술을 모두 쓰면 여유가 생깁니다. 이제는 팔이 나타나면 하나씩 집중 공격해서 날려 줍니다. 대략 한 팔 날리고 한두대 정도 본체를 때리면 다른쪽 팔이 재생 되니 패턴을 반복하면 됩니다. 본체가 '프로비덴스'를 자꾸 쓰니까 HP가 13,000 이하가 되면 '파이널엘릭서'를 쓰면 됩니다.
  • 그러면 본체의 제1형태는 무리없이 격파 가능.
  • 제2형태는 '프로비덴스' 를 쓰지 않고 '멸망의 빛'을 기본으로 쓰고, 본체의 턴에 양팔이 살아 있으면 '저지먼트 데이'를 씁니다. 무조건 99,999 데이지를 받으므로 리레이즈를 걸어두면 살아날 수 있습니다만 기존에 걸어둔 효과가 모두 살아나므로 재기하는건 거의 불가능. 따라서 '저지먼트 데이'를 맞지 않도록 양팔이 절대 동시에 살아 있으면 안되도록 하나씩 재빨리 제거 하고 나머지 시간에 본체를 공격 하는 패턴을 유지 합니다. 1-2턴 정도 빡빡해 지지만 할 수 있습니다.
  • '멸망의 빛'을 맞으면 다음 캐릭터가 데스펠을 써서 각종 브레이크를 제거 합니다. 브레이크류는 데스펠로만 제거가 되니 반드시 해야 합니다. 멸망의 빛의 경우 HP도 약 11,000, MP도 0가 되므로 제1형태였을 때 스리스타즈를 써서 MP소비를 0으로 미리 만들어야 합니다. 저는 류쿠를 데스펠 전문으로 사용하고 나머지 캐릭터는 최대한 퀵트릭만 실행.
  • 따라서 HP가 13,000 이하가 되면 류쿠가 파이널엘릭서로 멤버의 HP를 모두 전회복 시켜 줍니다.
  • 팔을 제거할 때, 99,999 x 5 이후에 다시 퀵트릭을 99,999를 때리는 건 낭비이기도 하고, 대신 연속마법으로 '알테마' 내지 '드레인'으로 제거하면 다음에 재생할 때 HP가 500,000 이 아니라 500,000 - 초과로 맞은 데미지가 된다고 합니다. 따라서 5 이상 때려 두면 그 다음에는 99,999 x 5 만 때려도 되니 1턴 절약 합니다. 연속마법 실행하는 캐릭터가 HP가 부족하면 '드레인' x 2 로 공격하면 약 11,000 정도 회복 가능.
이렇게 한시간 정도 싸우면 대망의 격파신을 볼 수 있습니다!


p.s. 아래는 인터넷의 공략 비디오인데 참고가 됩니다. 이쪽은 HP가 99,999 라 이렇게는 못싸우지만.