아이폰으로 갈아타다

월요일 출근해서 아이폰을 받았다. 그렇지만 퇴근할 때까지 개통은 안된 상태.

같이 받은 ㅇㅋ은 그 날 저녁에 개통이 되더라. 하지만 내껀 번호이동이라 처리가 안된듯도. 여튼 폰 두 대 들고 고향으로 귀환.

고향집엔 무선 AP가 없어서 + 근처에 잡히는게 없어서 블로그 글은 드래프트만 쓰는 중.

일단 써 본 앱은 이 글을 쓰고 있는 워드프레스 공식 앱과 아마존 킨들, 그리고 구글의 이러저런 웹페이지 정도? 모바일 웹페이지보단 상당수의 경우 그냥 일반페이지를 보는게 편했다. 이건 해상도 덕인가.

블로그 포스팅을 아이폰으로 하는건 그다지 편해지는 않지만 못쓸정도는 아닌듯. 그래도 Windows Live Writer나 WP 비쥬얼 에디터가 훨씬 낫다.

아이폰용 킨들은 그저그러함. 페이지 전환이 빠른건 만족스럽지만, 작은 디스플레이와 짧은 가용시간은 좀. 그래도 어쩌다 짧은 시간 읽는 정도로는 적당히 쓸만할듯.

메일이나 메모등등은 맥북설정이 그대로 동기화 돼서 편히설정하고 쓰고있다.

하지만 개통은 언제인가.

ps. 모바일 사파리에서 보는 내 블로그는 이러함.. 물론 모바일 페이지가 있지만, 해상도가 높으니 이쪽이 더 나은듯.

IPv6 를 대비한 코드를 짤 때 가끔 보는 실수

현재 인터넷의 주소 체계는 IPv4다. 이 IPv4로 쓸 수 있는 주소는 곧 동이 난다.[1]

그래서인지, 요즘 네트웍 쪽 코드를 읽다보면 몇 가지 방법으로 IPv4 –> IPv6 전환하기 위한 대비를 해둔걸 보게 된다. 크게 두 가지 방식을 보게 된다.

문자열로 주소를 전달한다 – IPv4 or IPv6 인지는 신경쓰지 않고, 그 밑의 네트웍 라이브러리나 코드 단에서 처리하게 한다.

미리 IPv6 일 때 사용할 인자 혹은 메모리 등을 예약(reserve)해 둔다 – IP 주소를 특정 데이터 타입으로 전달한다고 할 때, 추가로 공간을 할당한다면 여기에 IPv6 주소를 넣어서 보낼 수 있다.

하지만 요즘 본 코드 중 하나는 실소를 금할 수가 없더라. 두번째 형태로 IPv6를 대비한 것으로 보이는데, 예약한 공간이 4 bytes이다…

이게 왜 문제냐하면, IPv4에서 IPv6로 넘어갈 때, 주소로 사용하는 크기는 32bits에서 128bits으로 늘어난다는 점 때문. 64bits이 아니라… 그래서 추가로 공간을 예약한다면 char[12]를 쓰거나, 아예 주소 전달할 때 16bytes를 쓰고, IPv4쓰는 동안 4bytes을 쓴다.

이러면 예약해두나 마나 허망한 짓. 나중에 IPv6처리하려면 결국 8bytes를 추가로 넣어야한다. 게다가 이게 더 안습(…)했던건, 저게 일종의 프로토콜 명세의 일부라서, 나중에 고치려면 모든 이해 당사자들에게 이걸 얘기하고, 수정해가야 한다는 점인데… 내가 나중에 수정도 하게 될텐데, 무진장 귀찮구만…

개인적인 선호(?)는, 아예 첫번째 방법으로 문자열을 쓰는 것. 이러면 프로토콜 자체에 영향을 줄 일은 매우 적고, 대부분의 Network Library/API에서도 문자열로 된 주소를 쉽게 인식한다는 크나큰 장점이 있다.

여튼 세 줄 요약

  • IPv6는 128bits을 쓴다. 메모리에 나타내려면 IPv4 주소에 비해 4배의 공간이 필요하다
  • 코드를 짤 때 공부하는 습관은 소중한 것이다(…).
  • 네트웍 주소처리는 가장 밑 단에 해당하는 코드가 아니고서야 문자열 기준으로 하는게 편하다. 실수할 여지도 적고.
  1. 2010년 9월 19일 현재 추정치로, IANA 기준으로는 내년 5월 22일, 각 지역별 레지스트리 기준으로는 내후년 6월 12일이면 주소가 바닥난다. []