비싼 AppleTV가 내 눈에 들어왔던 이유 중 하나는 편리 해보이는 Airplay 연결이었다. 최소 20만원 정도나 하는 비싼 가격때문에 망설이던 차에 Anycast M2 plus가 눈에 들어왔다 Airplay 뿐만 아니라 DLNA, Mirracast 등의 다양한 무선 display연결들을 지원한다고 하니 고려해볼만 하다고 생각했다. 가격은 대략 4만원 정도 된다.
DLNA나 Mirracast는 사용해보지 않았고 iPad mini와 Macbook pro에서 Airplay만 사용해본 결과는 실망스러웠다.
가장 큰 문제점은 연결이 계속 끊어진다는 것인데, 끊어진 후에 연결 상태가 갱신되지 않기 때문에 디바이스를 다시 껐다가 켜야하는 경우가 많았다. 두번째로 Netflix를 재생할 수 없다는 점인데 이 문제는 Anycast M2 plus 뿐만 아니라 AppleTV에서도 있는 문제로 “기술적 한계” 때문에 지원되지 않는다고 한다. 아마도 Netflix에서 Airplay로 HDCP contents가 forwarding되는 것을 막은게 아닐까 추측해 본다. 혹시나 추후에 펌웨어 업데이트 등으로 문제가 해결 될 수도 있겠지만 그게 바로 세번째 문제점이다. 현재도 업그레이드 가능한 펌웨어가 있다고 표시되기는 하지만 업데이트 기능이 제대로 동작하지 않는다.
하지만, iPad mini와 달리 Macbook pro로는 Airplay 연결이 유지되도록 할 수 있는 방법이 있긴한데, lid를 열어 두거나 유선 display를 활성화 시켜 두는 것이다. 유선 display를 끄거나 lid를 닫으면 얼마 후에 연결이 끊어지게 되서 전원 옵션과 관련이 있지 않을까 여기저기 뒤져봤는데 찾지는 못했다.
결론은 제한적인 Macbook pro display 환경에서는 쓸만할 수도 있으나 iPad에서 연결하는 용도는 돈 값 못한다.
설치된 Java runtime에 맞게 Tomcat download page에서 적절한 binary distribution을 download받고 설치해준다. Tomcat website에 있는 Which version? 항목을 보면 아래와 같이 표가 나오는데, “Supported Java Version”을 참고해서 적합한 “Apache Tomcat Version”을 선택하면 된다. 예를 들어, OpenGrok의 경우 Java 1.8이 requirement이므로, Tomcat version 9.0.x이상을 선택하면 된다.
모든 설정이 끝났다면 Tomcat을 설치한 머신에서 http://localhost:8080/manager/html 주소에 접근해서 Tomcat 서버 설정을 관리 할 수 있다. ID와 password를 묻는 prompt가 뜨면 위의 tomcat-users.xml에서 설정한것 처럼 ID/비밀번호(tomcat/비밀번호(password)를 입력한다.
Remote Access 허가
Tomcat 관리자 page를 접근할 때 localhost가 아닌 remote에서 접속을 시도하면 403 access denied 오류가 뜰 수 있다. Localhost외에서도 tomcat 관리자 page 접근을 허용하려면 아래 경로에 있는 context.xml file의 allow= 부분을 수정해서 모든 IP를 받아들이도록 변경해 주면된다. context.xml은 여러개 있으니 경로에 주의.
Firewall등이 막고 있어서 외부의 git repository를 HTTPS로는 clone할 수 있지만 SSH로는 막히는 경우가 있다. 특히나 GitHub의 two-factor authentication을 설정한 경우라면 매번 token값을 입력하는 것 때문에 commit을 push하는게 매우 귀찮아진다.
이 문제는 ssh config file에 Proxy command를 설정해서 해결할 수 있는데 ${HOME}/.ssh/config에 다음과 같이 추가해 주고, credential caching을 설정해 준다. (-S option에는 SOCKS port를 설정해야 함)
Host GitHub.com
HostName github.com
User git
Port 22
PorxyCommand connect-proxy -S {proxy-server}:{socks-port} %h %p