글쓰는거 미루다가 이제서야 써봅니다.

1. 외관

한마디로 예쁘다고 말할 수 있습니다. 요즘 베젤리스 디자인을 많은 휴대폰 회사에서 도입을 하는데, 아이폰 XS도 역시 마찬가지입니다. 호불호(?)가 갈리는

노치 디자인이지만, 위 상단바에 필요한 표시 요소를 최대한 간결하게 만들어서 깔끔한 느낌이 듭니다. 노치 디자인으로 탈모를 얻었지만... 상하좌우 베젤의 크기가 일정해서 세련되었다라는 느낌이 들더군요. 정말 디자인에 대해서 많은 고민을 한 것이 느껴집니다. 대칭적인 것을 잘 맞추면 안정감이 느껴지듯이 아이폰 XS도 화면을 보면 편안한 느낌이 드느거죠.

배젤이 대칭이니깐 확실히 아름답다. 아이콘도 모서리가 둥군데 화면이 약간 둥글둥글한 것과 잘 맞는듯

후면도 불필요한 버튼이 없이 미니멀리즘을 추구한 느낌입니다. 뒤에 여러 버튼 (지문인식, 볼륨 버튼) 넣는 것은 좀 지저분하다고 생각합니다. 후면은 고급스러운 유리 재질인데 만져보면 엄청 매끄럽습니다. 조금만 만졌는데도 지문이 여러개 생겼더군요. 그립감도 맨들맨들하기 때문에 좋다고 할 수 없습니다. 쓸 때 없이 마진을 추구한 이 폰의 가격의 생각해보았을 때, 생폰이 무진장 에쁘더라도 간단한 케이스를 쓰는 것을 추천드리는 이유기도 하고요. 잘못해서 떨어트리면 액정도 쉽게 박살날 것 같고, 후면 유리도 쉽게 박살날 것 같더군요.

메탈재질의 뒷면보다 확실히 고급스럽게 보입니다. 단점은 그립감과 지문

무게는 생각보다 무거운 편입니다. 지금은 적응되어서 그렇게 무겁다고 느끼지는 않는데, 가끔식 개발용도로 갤럭시 폰들 쓰면 폰이 이렇게 가벼워도 되나라는 느낌이 들더군요. 무겁긴 한데 그렇다고 그립감은 또 좋지는 않아서 아마 생폰 쓰신다면 모시고 살아야할지도 모릅니다.

2. 디스플레이

 아이폰 XS는 5.8인치 2436 x 1125 AMOLED 디스플레이를 사용합니다. 최신 플래그쉽 안드로이드 폰에 비해서는 해상도가 약간 모잘란 편입니다. 다만 AMOLED + 트루톤 디스플레이 + IOS의 뛰어난 컬러 매니지먼트로 인해 화사하고 넓은 색 영역을 지원하면서도 정확한 색을 화면으로 볼 수 있습니다. 색감이 왜곡되지 않아서 눈이 매우 편합니다. 그러면서도 사진 볼 때에는 진뜩한 색을 맛볼 수 있는 것이죠. 

 약간 걱정되는 것은 AMOLED의 번인 문제입니다. 이건 폰 오래 사용하면 당연히 생길 수 밖에 없는 문제인데 문제는 AS를 제대로 해줄건가? 인거죠. 애플 AS가 악명높고 가격도 비쌉니다 (비싼 애플케어 플러스 안먹였을시...). 번인이 있는데도 이것 저것 트집이 잡혀서 무상 수리나 무상 리퍼가 안 될 수 있기에 걱정입니다. 참고로 아이폰XS 화면 교체 비용이 35만5천원입니다 :(. 아직 애플이 AMOLED 도입한 시기가 아이폰X부터라 번인 수리 후기들도 인터넷에 그렇게 많지 않고요. 공식 홈페이지에도 번인 관련된 내용은 있지도 않아서 현재까지는 무엇하나 확실한 것이 없는 상황인 것 같습니다.아이패드는 최대 밝기이고 아이폰은 밝기 60프로인데도 아이폰이 밝다. 다만 AMOLED라서 번인이 걱정될 뿐


3. 카메라

이전에 사용한 갤럭시 S7와 비교해서 HDR기능이 확실히 더 좋다!라고 느낍니다. 하지만 폰 카메라 센서 판형의 한계 때문에 확대해보면 디테일이 뭉개지는 것은 어쩔 수 없더군요. 즉 다른 폰 카메라끼리 비교하면 차이가 많이 벌어지는 것처럼 -애플은- 선전하지만 실제로는 도토리 키재기에 불과하다는 거죠. 그래도 장점을 뽑자면 보정을 덜 해도 된다는 것이 있겠네요.  돌아다나다면서 사진을 찍어본 결과 색감과 화이트 밸런스는 좀 따뜻하게 나오는 것 같습니다. 그리고 HDR 적용 된 사진을 보면 붉은색/노란색의 명도가 상당히 어둡게 나오는 것으로 보입니다. (저도 전문 사진가는 아니라서 ...) 

요즘 새로 나오는 스마트폰 카메라의 추세가 HDR강화와 여러 화각대의 렌즈를 넣는 것인데 저는 이것을 긍적적인 변화라고 봅니다. 폰 카메라의 화각이 보통 26mm 정도의 광각인데 이게 좀 심심한 화각이기도 하고 사진 찍기에 어려운 화각입니다. 화면에 담기는 것이 많기 때문에 생각할 것이 많아지기 때문이죠. 그래서 아이폰 XS도 50mm 정도 되는 표준화각의 카메라도 제공해서 좀 더 집중력 있는 사진을 찍을 수 있게 해줍니다. 이번에 새로 나온 갤럭시 S10의 경우 트리플 카메라인데 (초광각, 광각, 표준) 정말 올바른 변화라고 봅니다. 이제는 폰 카메라로도 다양한 사진을 찍을 수 있게 되고 여러 화각으로 찍는 것이 더 재밌기도 하니깐요. 여담으로 아이폰 XR은 100만원 짜리 폰이 후면 카메라가 하나니 정말 아쉬운 제품이라고 생각합니다.

심심 풀이로 비슷한 화각대로 아이폰XS와 미러리스 카메라로 찍은 사진 비교입니다. 센서 차이가 무진장 나는 불공정한 비교이기에 재미로만 보시고 색감이나 HDR을 비교해보시길 바랍니다. 

<왼쪽이 미러리스 카메라/오른쪽이 아이폰입니다>

막 해질 무렵. 이때 HDR의 성능을 확인하기 가장 좋다


판형 차이 떄문에 디테일이 뭉개지는 것은 어쩔 수 없다.

종이 색깔을 보면 아이폰 화이트 밸런스가 약간 아쉽다.

이런 사진은 폰이나 미러리스나 차이를 느끼기 힘들다

확대해도 마찬가지. 동상이 매끈하기 때문에 더 그런듯.


4. 성능

CPU/GPU 성능 전부 다 만족스럽습니다. 이건 저번편 (안드로이드에서 ios로 넘어온 이유)에도 설명을 적었는데 엑시노스에 비해서 월등히 GPU성능이 좋습니다. 요즘 모바일 게임중에서 그래픽이 가장 뛰어나다는 게임 중 하나인 붕괴3를 조금 플레이해보았는데 매우 만족스럽게 플레이가 가능했습니다. 단점은 메모리가 4GB 임에도 불구하고 앱 리프레쉬가 잦습니다. 기존에 쓰던 갤럭시 S7의 경우도 메모리가 4GB임에도 불구하고 여러 앱을 켜놔도 리프레쉬가 잦지 않았는데 아이폰은 좀 심하더군요. 게임도 아니고 사파리, 디스코드, 카톡, 슬랙(Slack)을 왔다갔다가 하면 앱 하나가 종료되서 처음부터 로딩이 됩니다. 거의 다 채팅 앱들이고 게임도 아닌데 전원을 아끼기 위해서 일부러 IOS에서 앱을 종료시키는 것일까요?

테스트로 붕괴3 풀옵으로 플레이를 해봤는데 잘 돌아간다


5. 총평

뛰어난 디자인, 프로세서 성능, 그리고 발전된 카메라의 HDR모드는 다른 핸드폰 제조사들과 차별화되는 포인트라고 봅니다. 돈값을 하냐라고 물으면 '예'라고 단정하기 힘든게 아이폰XS의 문제아닌 문제. 반면 다른 핸드폰 제조사들도 해당 장점을 흡수하고 좋은 제품을 내놓으면 충분히 경쟁력이 있다고 봅니다. 1년 2년만 지나면 노 노치 베젤리스 디자인의 폰이 많이 나오겠죠?




필자는 스마트폰이 처음 나왔을 때부터 줄곧 안드로이드를 사용해왔습니다. 이제 더 이상 생각나지 않은 LG의 이름 모르는 폰들부터, 갤럭시 S, 넥서스 5, 갤럭시 S7까지 썼습니다.  폰 교체 주기도 가까워지고, 핸드폰에 상처도 많이 나고 저장 용량이 부족해서 새로운 폰을 사고자 하는 욕구가 솟구쳤었죠.  새로 폰 구매하는 것이라 이것저것 많이 찾아 보았습니다. (아무래도 요즘 폰 가격이 워낙 비싸져서... 고민을 안하고 싶어도 안할 수가 없겠더군요) 

결론적으로는 아이폰 XS을 구매하게 되었습니다. 아이폰 XS 사용한지 2주 정도 된 것 같은데 사용하면서 느꼈던 좋았던점/불편한점 메모를 해놓았는데 공유하고 싶어서 글을 써보자 합니다.


우선 왜 그토록 오래도록 쓰던 안드로이드를 버리고 왜 아이폰을 선택하게 되었냐!

라는 궁금증을 가지시는 분들도 있을 것 같아서 간단하게 폰을 선택하게 과정을 좀 나열해보도록 하겠습니다.

2부에서는 간단한 사용기랑 생각을 적을 예정이고요.


이전에 쓰고 있던 갤럭시 s7은 정말 만족스러운 폰이었지만 몇가지 불만족스러운 면이 있었습니다. 사소한 것이라면 동시대의 안드로이드 기기들이 대부분 채용한 USB Type-c 단자를 채용하지 않아서 여전히 구리디 구린 Micro Type-B 규격 단자를 채택한 점입니다. 그래서 매번 케이블을 방향을 보고 꼽아야 하는 불편함이 있었죠. 


하지만 가장 큰 불만족은 삼성의 느린 소프트웨어 업데이트와 버벅거리는 삼성 소프트웨어들이었습니다. 

이전에 사용하던 갤럭시 s7는 안드로이드 8.0 오레오 업데이트를 2018년 5월 중순경에 삼성이 해주었습니다. 2017년 9월에 출시한 OS를 무려 8개월 후에 업데이트 해준 것이지요. 구세대 모델이긴 하나 삼성의 플래그쉽 스마트폰이고 메이저 업데이트는 한번 밖에 받지 못한 상황이었습니다. 출시가 좀 지난 폰이라고 우선순위가 한참 멀어진 느낌이죠? 


다른 제조사를 하면 비교해보면 소니는 2016년에 나온 스마트폰들은 2017년 후반기 아니면, 2018년 2월달 내에 업데이트가 이뤄어졌습니다. 심지어 갤럭시 S7와 비슷한 시기에 제품을 출시한 LG G6보다 8.0 오레오 업데이트가 늦었습니다.  상식적으로 생각해보았을 때 개발자 인력와 자본력은 삼성이 훨 많을 것 같은데 회사 내부적으로 이미 출시된 제품의 소프트웨어를 중요시 여기지 않는 판단 때문인지 업데이트가 늦어지고 말았습니다.  또한 삼성이 갤럭시 s7 용 8.0 오레오 OS 업데이트를 해주긴 했는데.... 이게 또 다른 문제가 있었습니다.  오레오 업데이트를 한 기기들에서 발열 심화와 메인보드 사망하는 문제가 발생한다는 것이지요. 


삼성 독자 소프트웨어가 많고 OS커스터마이징이 많아서 업데이트가 늦어졌다고 생각하시는 분이 있을지도 모르겠습니다. 어느정도 맞는 말이긴 합니다. 하지만 그건 좋은 소프트웨어가 아니라는 반증이기도 합니다. 소트프트웨어 개발하는 사람들이 항상 고민하는 것 중 하나는 "Developing maintainable software" 입니다.  소프트웨어는 항상 새로운 기능을 추가해야하고 버그를 고쳐야 하는 특징을 가지고 있습니다. (제조업처럼 제품 한번 만들고 출시하면 끝이 아니지요 -_-;;). 그렇기 때문에 "Maintainable Software"는 (직역하자면 유지보수하기 쉬운 소프트웨어는)  개념이 있는데 다음과 같은 것을 의미합니다.

  • 버그를 고치기 쉽고 고칠 때 새로운 버그가 발생하지 않아야 하고
  • 새로운 기능을 넣을 때 버그가 새로 발생하지 않아야하고...
  • 새로운 환경/OS/툴에서 변화에 쉽게 수정이 가능해야한다. 등등 

읽어 보지는 않았지만 해당 주제로 한 책도 있나보다

소프트웨어는 수정하기 매우 쉽기 때문에 매일 끊임없이 수정을 할 수 있고 기능을 추가할 수 있습니다. 하지만 유지보수하기 어려운 소프트웨어들은 버그를 수정하면 다른 버그가 발생하고, 기능을 추가하면 또 다른 버그가 발생하고, OS/같이 사용하는 소프트웨어가 변경되면 버그가 발생합니다...  뭐 분명히 갤럭시 s7 업데이트 당담하는 팀이 있었을 것 같은데 다른 회사들이 업데이트 제공할동안 8개월 동안 뭐했는지 모르겠습니다. 구글이 운영체제 새버전 공개하기 훨씬 전부터 코드를 볼 수 있었을텐데 말이죠. 

그 외에도 갤럭시 설정 들어가면 뭐 때문에 이렇게 느린지... 버벅거리는 게 많은지 좀 아쉬운 상황이었습니다. 설치한 프로그램들 데이터 정리하는 것도 설정을 들어가서 해야하는데 한 세월이 걸렸었죠. 분명이 현역으로 쓰기에 좋은 ap를 가지고 있는건 맞는데 소프트웨어가 발목을 잡는 느낌이 들었습니다. 

그래도 나름 만족해서 쓰기도 했어서 다음폰 구매 후보에 갤럭시 S시리즈를 넣기는 했습니다. 또한 사실상 안드로이드 레퍼런스 같은 존재라 많은 앱/게임들이 갤럭시 기준으로 테스팅과 최적화를 하는 것이 현실이기도 하고요.
새로운 폰 구매 후보로는 갤럭시 S9+, 아이폰 Xs, 구글 픽셀 3, 소니 Xperia XZ3 이었습니다. 사실 중국 폰들도 너무 후보에 넣고 싶었지만 (샤오미 Mi Mix3 은 정말 디자인도 멋지고 성능도 좋아보이더군요) 개인 정보 이슈때문에 제외했습니다. 갤럭시 말고는 전부 순정에 가까운 안드로이드를 탑제하는 제품을 골랐습니다.

구글 픽셀 3
장점: 
  • 순정 안드로이드이기 때문에 쓸데 없는 프로그램이 적고,
  • 업데이트도 빠르고,
  • 스냅 드래곤 845 
  • 깔끔한 후면 디자인: 후광 무광 재질의 유리는 고급스러워 보임, 카메라가 그렇게 못생기지 않았음
  • 좋은 평가 받는 카메라
단점:
  • 수리: 가격은 비싼것은 그래도 납득이 되었지만 한국 정발이 안되어서 수리하려면 너무 번거로움
  • 수리2:  AMOLED는 아무리 기술이 발전하고 날아봐야 번인 오는건 불가피하기 때문에... 수리라도 쉬워야
  • QA 이슈: 이것도 한국 정발이면 쉽교 교환받을 수 있는데 아니므로 골치아픔
  • 2번 메이저 업데이트 후의 업데이트는 없음 
모든 면에서 다 마음에 들었는데 한국 정발 안한게 아쉬운 디바이스라고 생각이 들었습니다.

소니 Xperia XZ3

옆구리를 보면 사고 싶은 생각이 싹 싸그라졌습니다. 카메라 갑툭튀도 아니고 배가 불룩 틔어 나와있는 디자인입니다.  소니의 순정틱한 OS세팅 좋아하는데 디자인만 어떻게 좀 바꿔주면 다다음폰으로 소니 넘어갈수도 있겠네요. OIS도 넣어주면 좋을 것 같고요. 미러리스 카메라는 이렇게 잘 만들면서 폰 카메라는 왜 이런모양이죠...? 네?

소니 공식 홈페이지에 올라와있는 제품 디자인


갤럭시 S9+
장점:
  • 넉넉한 RAM (6기가..)
  • 비교적 저렴한 가격 (보조금 좋아용)
  • 삼성 페이
단점:
  • 엑시노스 9810: 실 성능은 전작인 S8보다 오히려 떨어질 때가 있음 + 배터리 광탈 이슈까지
  • 말리 GPU: 여전히 스냅드래곤의 Adreno GPU보다 성능이 좋지 않음
  • 영 좋지 않은 디자인: 보기에는 갤 S7보다 디자인이 퇴보한 것 같음
  • 소프트웨어 업데이트: 전작들 대하는 행보를 보았을 떄 별로 중요시 안하는듯
엑시노스 9810을 탑제한 삼성 갤럭시 S9+/S9의 경우 스케쥴러 문제로 인해서 실사용시 제 성능이 안나오는 것으로 알려져있습니다. (또 소프트웨어냐!)
심지어 공신력 있는 어떤 매체는 이렇게 평가하기도 했었죠 "Like on the Galaxy S9, the Note9’s Exynos variant is just an overall inferior device."
뭔뜻이냐 하면은 Note9의 엑시노스 탑제 제품은 갤럭시 S9 때처럼 전체적으로 떨어지는 제품이라는 것입니다. 물론 소프트웨어 열심히 수정해주면 해결될 것 같기도 한데 이전 제품들 행보를 보면 기대가 안된다는 게...

아이폰 XS
장점:
  • 독보적인 CPU/GPU 성능
  • 미려한 디자인과 마감: 보면 정말 고급스럽다는 느낌이 듭니다. 
  • 일관된 OS / APP 디자인: 감성이 중요합니까? apple을 선택하십시오
  • 지속적인 소프트웨어 업데이트
단점:

  • Love margin (마진쿡님께서 가격도 올려놨으면서 라이트닝 to 3.5단자도 빼버렷네요 고갱님?)
  • 폐쇄적인 OS:  안드 사용하다가 ios쓰면 기능이 막혀서 답답할 수 있음
  • 노치 디자인 (a.k.a 탈모)

이렇게 비교를 해보니 좀 더 비싼 돈을 주고 성능도 좋고 업데이트도 오래해주는 
아이폰을 써보는 것이 나쁘지 않겠다라는 생각이 들었습니다.
패드로는 아이패드 원래부터 사용하고 있었는데 정말 오랫동안 업데이트를 해줘서 최신 소프트웨어를 쓸 수 있는
장점도 많이 느꼈고요.
안드로이드 측도 생각보다 메리트있는 선택지가 있긴 한데 한국에 정발을 해주지 않으니 선택권이 없는 느낌입니다. 
(픽셀이라든지.. 픽셀이라든지..)

다음은 제 주관적인 아이폰 XS 리뷰입니다 2부 (작성중).


  Scala와 같은 함수형 언어를 사용하다보면 convolution(zip)라는 함수를 접하게 된다. 이 함수는 여러개의 리스트(Array)를 argument로 받아서 튜플로 이루어진 하나의 리스트를 리턴한다. 나름 유용하게 쓰이는 함수라서 비교적 비? 함수적인 언어인 python에도 built-in으로 zip함수를 제공한다.

  zip함수를 처음 접하는 사람을 위해서 python을 이용한 zip예제이다.

>>> a = [1, 2, 3, 4, 5]
>>> b = "hello"
>>> c = [0.5, 3.14, 1.414, 12.0, 1.0]
>>> zipped = zip(a, b, c)
>>> list(zipped)
[(1, 'h', 0.5), (2, 'e', 3.14), (3, 'l', 1.414), (4, 'l', 12.0), (5, 'o', 1.0)]

C++에서는 이런 함수가 당연하게도 없는데, 한번 만들어보면 재밌을 것 같아서 코딩을 해봤다.


고려할 사항들

 - zip함수는 argument로 여러개의 iterable object을 받을 수 있어야한다.

 - 리턴 value는 tuple vector (즉 vector 컨터이너 안에 tuple이 들어가있는 형태)

 - 걍 python zip함수와 동일하게 만들어야지...


핵심 코드는 다음과 같다. Variadic Template와 Index_sequence 쓰는 게 가장 중요하다.

template<typename E, typename Tuple, size_t... I>
auto combine(E e, Tuple t, index_sequence<I...>)
{
    return make_tuple(e, get<I>(t)...);
}

template<typename C>
auto zip(C first)
{
    vector<tuple<typename C::value_type>> result;
    for (auto& e : first) {
        result.push_back(make_tuple(e));
    }
    return result;
}

template<typename C, typename... Args>
auto zip(C first, Args... args)
{
    vector<tuple<typename C::value_type, typename Args::value_type...>> result;
    auto iter = first.begin();
    auto rhs = zip(args...);
    auto iter2 = rhs.begin();
    while (iter != first.end() && iter2 != rhs.end()) {
        auto e1 = *iter;
        auto e2 = *iter2;
        auto seq = make_index_sequence<tuple_size<decltype(e2)>::value>();
        auto t = combine(e1, e2, seq);
        iter++;
        iter2++;
        result.push_back(t);
    }
    return result;
}

지나친 auto 사용에 눈물을 좀 닦고-. 비효율적인 것 같지만 어떻게든 잘 돌아가는 것 같다. C++14에서 포함된 기능을 썼기 때문에 최신 컴파일러로 컴파일해야된다.

vector<int> a = {1, 2, 3, 4, 5};
string b = "hello";
vector<double> c = {0.5, 3.14, 1.414, 12.0, 1.0};
auto zipped = zip(a, b, c);
for (auto& t : zipped)
    cout << t << ", ";
cout << endl;


결론

테스트 삼아 출력해보면 (1, h, 0.5), (2, e, 3.14), (3, l, 1.414), (4, l, 12), (5, o, 1), 로 기대한 것과 같이 잘 나온다. C++이 이렇게 복잡하구나 한번 더 느끼면서, 개인 과제/플젝은 역시 갓이썬님을 사용해야지.


 멀쩡한 사이트도 차단해 놓은 방심위의 작태에 신물이 나기도 하고 프라이버시도 보장할 겸 유료 VPN서비스를 찾아보게 됐다. 외국에서도 NSA로 촉발된 프라이버시 논란 등으로해서 많은 사람들이 VPN을 사용하고 있어서 정말 많은 VPN업체가 있다. 가격도 천차만별, 기능도 천차만별이라서 이곳 저곳 비교좀 해보다가 Private Internet Access(PIA)에서 서비스하는 VPN 선택, 한 달 정도 사용했다. 이곳은 Free Trial같은게 없으니 쓸지 말지 고민하는 사람들을 위해 리뷰를 썼다. 


1. 속도

 여러 서버가 있어서 일본서버와 미국 서부서버, 둥부서버, 영국서버를 이용해봤는데 시간대별/서버별 차이가 좀 있는 편이다. 그래도 요즘 유행하는 젠메이트나 VeilDuck이런 공짜 vpn보다 확실히 빠르다. 일본서버나 영국, 미국 일부서버에서 속도가 잘 나오는 편이고, 홍콩 서버나 캘리포니아 쪽 서버의 속도는 사망... 미국업체인데 왜 미국 서버의 속도가 가장 느린지는 모르겠다.

<미국 캘리포니아 서버의 절망적인 속도, 홍콩도 비슷하다>

<영국은 괜찮은 편>

<일본서버는 비교적 빠른편>

2. 트롤러?

 무료 vpn/proxy 이용하다보면 일부 트롤들이 과도한 트래픽을 쓴다든지, 위키에서 반달질, 댓글알바로 등으로 인해서 IP가 밴된 경우가 많다. PIA VPN이 유료긴 하지만 VPN특성상 미꾸라지가 들어와서 깽판을 칠 수 있기 때문에 약간 걱정했는데, 한 달간 사용한 결과 IP가 밴된 곳은 보지 못했다. 아무래도 Free Trial가 없었던 점이 트롤러들의 무분별한 이용을 막았다고 본다. 


3. 지원 프로토콜

 메이져한 프로토콜 L2TP/IPSec+PSK, PPTP, Openvpn은 다 지원한다. PIA 사이트에서는 자체 제공한 (윈도용)클라이언트를 사용하는 것을 추천하지만 굳이 사용안해도 아무런 문제가 없다. PPTP은 보안성도 떨어지고 많은 회사/ISP에서 차단한 경우가 많으므로 사용하는 것을 추천하지는 않는다. 필자의 경우에는 개인용 Openvpn 서버를 운영도 하고 있어서 익숙하고 노트북에 Openvpn 클라이언트가 설치가 되어있는 상태였기 때문에 Openvpn을 썼다. 모바일의 경우에는 PIA에서 제공하는 앱이 있으며, Openvpn Connect와 같은 openvpn공식 앱을 사용해도 아무런 문제없이 잘 작동한다. 만약 PIA에서 제공하는 자체 앱을 믿을 수 없다면 공식 앱을 사용하면 된다.


4. 토렌트 사용

  토렌트를 사용해본 결과 속도가 괜찮게 나왔다. 여러개 토렌트를 받아도 딱히 연결이 끊긴다거나 속도가 감소되는 일은 없었다. IP주소도 제대로 우회가 되는지 확인하기 위해서 이 사이트에서 토렌트를 다운받고 IP주소를 보니 우회된 IP로 표시됐다.


5. 오덕을 위한 한마디

 일본쪽 서버를 사용하다가 한가지 성가신 문제를 발견하게 됐다... PIA에서 도쿄에 있는 일본서버를 제공하지만 일부 사이트에서 이 서버의 위치가 일본인지 제대로 인식을 못한다. 하필이면 일부 사이트중 유튜브가 해당되기 때문에 일본 지역락이 걸린 동영상들(aniplex채널이 업로드한 동영상 등등)을 못본다. 미노리 공식 사이트도 덤... 포럼에 문의해본결과 "This is most likely due to outdated Geo-Location data."라면서 1~2주 정도 기다리면 대부분 해결이 된다고 했는데 지금 2주가 지났는데 아직까지는 해결되지 않고 있다. 일본에서만 접속가능한 게임이나/동영상을 볼 계획이라면 일단 PIA VPN 구매를 보류하는 것을 조언한다.

* 이번 달까지는 PIA VPN을 이용할 계획이라 만약 컨트리락이 뚤리는지 테스트를 원하는 사이트가 있다면 댓글로 남겨주시면 직접 확인해줄 수 있습니다. 


6. 로그 기록을 남기는가?

 남기지 않는다고 명시되어있다. 로그를 남기지 않는 조건하에서 VPN을 통해 접속을 허용하는 비공개 트래커를 쓰고 있다면 쓰는데 문제가 없다고 본다. 그 외에도 내가 돌아다니는 사이트/내용에 관한 프라이버시를 지키고 싶다하는 분들에게 추천.


 여러면에서 만족스러운 서비스이지만 5번에 해당하는 점이 상당히 마음에 걸려서 기회가 되면 다른 서비스로 바꿀까 생각중이다. 만약 속도도 떨어지게 된다면 다른 서비스로 바꿀 좋은 핑계가 될 듯 -_-;;

 작년에 산 HP ENVY 노트북을 일년동안 나름대로 만족하면서 사용했지만 몇몇 불만족스러운 점을 발견했는데요. 무선랜 성능이 구리다는 것과 SSD대신 하드+SSD 캐시를 이용하기 때문에 가끔식 프리징 현상이 나타나는 점이죠. 프리징 현상은 가끔식 일어나서 크게 문제가 없긴 하지만, 무선랜 성능이 부족한 것은 상당히 성가셨습니다. 특히 제 집에서 잡히는 무선 신호가 15~20개 정도 되고 무선 마우스까지 함께 쓰니 신호 간섭 등에 의한 성능 저하가 너무 심하더군요. 결국에는 무선랜 교체를 결심하고 3만원 정도에 Intel Dual Band Wireless-AC 7260 지르게구매하게 되었습니다.


무선성능 테스트

1. 인터넷 속도 테스트

 1) Intel Centrino Wireless-N 2230 (기존에 달려있던 무선랜)

2) Intel Dual Band Wireless-AC 7260 (새로 교체한 무선랜)


2. 파일 전송 테스트 (집 서버 -> 노트북)

 1) Intel Dual Band Wireless-AC 7260

총평

 위 사진에서 볼 수 있듯이 무려 속도가 5배~10배가 향상되어서 매우 만족스럽습니다. 간혈적인 무선 마우스 끊김 문제도 없어졌습니다. 그리고 이 노트북 출시 당시에 Intel AC 7260 제품 등을 이미 탑재한 비슷한 가격대의 노트북 제품도 많았고(LG 그램 제품이 대표적), 적어도 5ghz Wifi를 지원하는 무선랜은 탑재한 노트북이 주를 이룬 것을 비추어볼 때 이렇게 구린 무선랜를 탑재한 HP가 밉습니다 -_-;; 만약 집에 5ghz 공유기가 있고 2.4ghz 신호가 너무 많아서 속도가 안 나온다면 3~4만원 투자해서 무선랜 교체하는 것이 별로 나쁘지 않은 선택인 것 같습니다.




 Openvpn 사용시 귀찮은 점이 있다면 클라이언트에서 설정파일뿐만 아니라 key 파일들도 필요하다는 점이다. 실제로 설정파일, CA 인증서, 그리고 클라이언트 인증서와 비밀키 총 4개의 파일이 있어야 정상적으로 작동한다. 대부분의 wiki에 들어가보면 이렇게 설명이 되어있지만 진작 이런 key파일들을 하나의 설정파일(.opvn)에 통합시킬 수 있다는 내용은 없다. 설정파일과 key 파일을 통합하면 스마트폰이나 윈도우 클라이언트에서 파일 하나가지고 추가 설정없이 openvpn 서버에 연결할 수 있어서 정말 간편하다..

 설정파일(.opvn)의 확장자가 생소하지만 실제로는 텍스트파일이다. 그러므로 메모장으로 만들어도 아무런 문제가 없다. Sample 설정파일은 다음과 같다. 물론 서버 설정에 따라 설정파일에 다소 차이가 있을 수 있다.

client
dev tun
proto udp
remote 도메인주소 또는 아이피주소 1194
resolv-retry infinite
nobind
persist-key
persist-tun
comp-lzo
verb 3

 여기서 주의해야할 점은 key파일 경로를 지정하는 내용이 없다는 것이다. 만약 이미 가지고 있는 설정파일이 있다면 이부분만 주석처리하면 된다.

;ca ca.crt
;cert client.crt
;key client.key

 그다음 설정파일에 key들을 추가해줘야한다. 설정파일 끝에 다음 내용을 추가해준다.

<ca>

CA인증서(ca.crt)파일에서 

-----BEGIN CERTIFICATE-----

    '암호'

-----END CERTIFICATE-----

해당하는 부분을 복사한다.

</ca>

<cert>

클라이언트용 인증서파일에서 

-----BEGIN CERTIFICATE-----

    '암호'

-----END CERTIFICATE-----
을 복사한다.

</cert>

<key>

클라이언트용 비밀키파일에서

-----BEGIN PRIVATE KEY-----

                '암호'

-----END PRIVATE KEY-----

복사완료!

</key>

 이제 텍스트파일을 저장하면 필요한 키가 통합된 openvpn파일이 탄생한다. 폰이나 노트북에 설정파일을 복사해서 클라이언트에 import해주면 바로 사용가능하다. 다음은 폰에서 제대로 작동함을 보여주는 사진


 처음에는 PC에서 파일질라만 사용해서 아무 문제가 있었는지 몰랐지만 안드로이드의 대부분의 앱에서 ftps(FTP over SSL)서버에 접속하려고 하면 오류가 나더군요. 어떤 앱은 아예 처음부터 접속을 거부하는 경우도 있고 es파일탐색기는 접속이 되긴 되는데 파일 목록이 가끔식 안 뜰 때도 있고 어떤 동영상은 재생이 되는데 어떤 동영상은 재생이 안되서 난감했습니다.
 여러번 삽질끝에 찾아낸 원인이 VSFTP에서 require_ssl_reuse의 기본 설정값이 YES이고 대부분 안드로이드 앱에서 ssl reuse을 지원을 못하는데에 있었습니다. 안드로이드 OS자체에서 지원을 못하는 것인지 앱에서 지원을 못하는 것인지는 모르지만 일단 문제를 해결하기 위해서는 FTP 서버 설정을 수정할 필요가 있습니다. VSFTP 설정파일을 열어서 (경로는 /etc/vsftp/vsftpd.conf) 파일에 require_ssl_reuse=NO 를 추가하면 되겠습니다.

 마인크래프트 서버가 자바로 개발이 되었기 때문에 리눅스에서 자바를 설치하면 마인크래프트 서버를 운영할 수 있다. 리눅스에서 서버를 돌릴경우 대부분 백그라운드로 프로세스를 보내게 된다. 왜냐하면 대부분의 경우 관리자가 계속 화면을 켜놓든지 putty로 접속하고 있지 않기 때문이다. 하지만 "실행파일 &" 식으로 &을 붙여서 서버를 실행하게 되면 서버가 제대로 작동을 하지 않는다. 한번의 명령으로 바로 마인크래프트 서버를 실행하려면 따로 screen 프로그램을 설치하고 간단한 쉘 스크립트를 만드는 것이 훨씬 편하다.


1. 우선 Screen 프로그램을 설치한다.

yum install screen        //레드헷 기반
apt-get install screen    //데비안, 우분투

2. 서버파일들이 있는 폴더에 스크립트 파일을 만든다.

vi run.sh    //이름은 자기 마음대로

3. 다음과 같이 쉘스크립트 작성한다.

#!/bin/bash
screen -d -m java -Xmx1G -Xms1G -jar minecraft_server.jar nogui

여기서 -Xmx는 JVM에 할당할 최대메모리양, -Xms는 최소메모리양을 설정하는 옵션이다.

minecraft_server.jar은 서버파일 이름이고 만약 이름이 다르다면 변경하면 된다.

4. 이제 다음부터는 바로 마인크래프트 서버를 백그라운드로 실행할 수 있음

./run.sh        //이런 식으로 실행하면 마크서버가 백그라운드에서 실행됨

5. 포그라운드로 되돌리는 것은 쉽다.

screen -r

 동생이 컴퓨터가 너무 느리다고 해서 올해 초에 많이 광고하던 LG 올트라북를 사게 되었습니다. 좀더 저렴한 제품을 찾다보니 운영체제가 깔려 있지 않는 모델을 선택을 했는데요. 운영체제도 깔고 드라이버도 깐 후, 잠시 사용해보니깐 한/영 전환하는 키가 alt키로 인식되어서 언어를 전환하는 게 너무 힘들더군요. 처음에 드라이버 문제인줄 알고 키보드 드라이버를 여러번 바꿔봤는데 해결이 안되었는데 레지스터리를 변경하니 단번에 해결되었습니다.

 MS 고객지원 사이트에도 자세한 해결법이 나와있지만 장황하기에 간략하게 정리했습니다. 윈도우7, 윈도우 비스타, 윈도우 xp 모두 해당됩니다.


1. 윈도키+R 을 누르고 regedit을 입력해서 레지스터리 편집기를 연다.

2. HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\i8042prt\Parameters 주소로 들어간다.

3. 해당하는 항목의 값을 바꾼다.

값 이름

값 형식

값 데이터

KOR LayerDriver

REG_SZ

kbd101a.dll

OverrideKeyboardIdentifier

REG_SZ

PCAT_101AKEY

OverrideKeyboardSubtype

DWORD

3

OverrideKeyboardType

DWORD

8

4. 재부팅하면 끝

홈 서버가 있으면 남는 자원을 이용해서 SeedBox을 구축하는 것도 좋은 생각이다. 리눅스 서버에 사용할 수 있는 토렌트 클라이엔트 중 대표적으로 Transmission, Deluge, Rtorrent(+Rutorrent)가 있다. 이중에서 라이트하게 이용할 수 있는 Transmission 설치법을 소개하고자 한다. Fedora 기준으로 설명하지만 Ubuntu등 다른 리눅스에서도 적용하는 방법이 비슷할 것이다.


우선 트랜스미션을 설치한다. 참고로 유분투에서는 apt-get을 이용한다.

yum install transmission-daemon

다음으로 트랜스미션 설정파일을 수정해준다. (여기서 반드시 주의할 점은 설정파일을 수정하기 전에 transmission이 실행되어 있으면 안된다!! 아니면 수정해도 다시 원래대로 되돌아간다 -_-;;) 만약 트랜스미션이 실행되고 있으면 killall transmission-daemon으로 프로세스를 종료한다.

vim /var/lib/transmission/.config/transmission-daemon/settings.json

설정파일에서 다음 항목을 수정하면 된다.

  •  "download-dir": "/var/lib/transmission/Downloads"    기본 다운로드 장소이다.
  •  "incomplete-dir": "/var/lib/transmission/Downloads"    임시 저장 장소이다.
  • "rpc-password": ""    웹 인터페이스 접속시 비밀번호
  • "rpc-username": ""    웹 인터페이스 접속시 유저ID
  • "rpc-whitelist": "127.0.0.1"    웹 인터페이스 접속 허용가능 IP(192.168.*.* 식의 입력도 가능하다.)
  • "rpc-whitelist-enabled": true    True면 whitelist 사용, False면 모든 접속 가능.

설정을 다 끝냈으면 데몬을 시작한다.

systemctl start transmission-daemon
service transmission-daemon start #systemd 가 아닌 init 사용시

방화벽 사용시에는 9091포트를 열어줘야 한다. 예를 들면 이렇게 하자.

iptables -I INPUT -p tcp --dport 9091 -m state --state=NEW -j ACCEPT

이제 웹브라우저에 http://호스트주소:9091 로 접속하면 끝!




p.s) 컴퓨터 시작할 때 데몬을 자동으로 켜려면 systemctl enable 또는 chkconfig 명령어를 이용하면 된다.

외국 애니메이션 릴그룹의 경우 용량을 줄이기 위해 애니의 오프닝과 엔딩을 따로 잘라서 동영상 파일로 만드는 경우가 많다. 매화마다 오프닝과 엔딩이 중복되기 때문에 다른 동영상 파일로 분리함으로써 용량을 아끼기 위해서이다. 이렇게 분리된 파일을 재생 시 합쳐서 볼 수 있는 이유가 Ordered Chapters 이라는 기능 때문이다. MKV 표준에 들어가있는 기술이고 팟플레이어에서도 지원을 하지만, 일부 동영상의 경우 호환성 문제가 있어서 팟플레이어 기본설정으로 작동이 안 되는 경우가 있다. 특히 THORA립의 경우 문제가 많았던 것으로 기억한다.(지금은 다 지워서 확인할 수가 없음)


해결법

1.Haali's splitter를 설치한다.

2.환경 설정에서 Mkv 스플리터를 Haali Media Splitter로 바꾼다. (드롭메뉴에서 안 보일 경우 필터/코덱 관리에서 검색해서 추가 번튼 클릭)


3. Enjoy!



+ Recent posts