iChat의 음성·화상 회의 기능 되살리기

Resurrecting iChat audio and video conferencing

blog.pipetogrep.org ▲ 107 댓글 40 thepipetogrep

요약

애플이 꺼 버린 서버를 직접 다시 만들어 iChat의 화상 통화를 되살렸습니다.

블로그 운영자 크리스 존스가 친구 메토디우스와 함께 OS X Leopard와 Snow Leopard의 iChat으로 인터넷 너머 화상 통화를 다시 성공시킨 과정을 정리했습니다. 2003년 WWDC에서 발표된 iChat AV는 애플 쪽 서버가 응답하지 않으면서 화상 통화가 막혀 있었습니다.

왜 중요한가

  • 서비스가 끝난 옛 소프트웨어도 의존하던 서버 하나만 다시 만들면 살아날 수 있음을 보여 줍니다.
  • 작성자가 서버를 공개해, 호스트 파일 한 줄만 고치면 누구나 옛 맥끼리 화상 통화를 할 수 있습니다.

핵심 내용

  • iChat은 configuration.apple.com에서 설정을 받는데, HTTPS로 넘기는 주소를 낡은 TLS가 따라가지 못합니다.
  • 공인 IP와 포트를 알려 주던 애플의 SNATMAP 서버도 멈춰, 두 맥이 사설 IP를 주고받다 연결에 실패했습니다.
  • 두 사람은 예전 패킷 캡처를 LLM으로 분석해 16바이트 UDP 패킷 명세를 만들고 Python 3로 서버를 짰습니다.
  • Proxmox 위에 OpenWrt 라우터와 ejabberd 재버 서버를 올려 인터넷을 흉내 낸 실험실에서 시험했습니다.
  • 공유기는 포트 보존 NAT(내부 포트 번호를 그대로 바깥에 쓰는 방식)여야 하며, 로지텍 C920 웹캠도 작동했습니다.

HN 반응

  • iChat AV 영상 기능을 만든 전 애플 엔지니어가 나타나 H.264를 손으로 최적화하며 밤새던 시절을 회고했습니다.
  • 요즘 FaceTime이 오히려 쓰기 어렵다는 불만과, 지나치게 단순할 뿐이라는 반론이 맞섰습니다.

댓글

30개 표시 · 전체 40개
  1. rajbot HN

    Then at Apple's World Wide Developer Conference (WWDC) in June of 2003, along with the G5 processor and OS X 10.3 panther, Apple announced "iChat AV".

    정말 멋진 일이네요. 아직도 이걸 쓰는 사람들이 있다니 너무 좋습니다!

    저는 iChat AV의 영상 쪽 작업을 했습니다. 2004년에는 H.264를 지원하는 4자 화상회의 기능도 추가했고요. 그때는 정말 최첨단을 달리는 기분이었습니다. SIMD도 없는 iMac과 iBook에서 돌아가게 하려고 altivec 코드를 손으로 짜고 h.264를 손으로 최적화하느라 밤을 새운 날이 많았습니다.

  2. thepipetogrep HN

    정말 대단하시네요. 답글 감사합니다! 제 친구와 저는 컴퓨팅 역사에 푹 빠져 있는데, 특히 이 시기는 우리 둘 모두에게 유난히 재미있었어요. 그 역사의 일부를 만들어 주셔서 감사합니다.

    혹시 저희 팟캐스트에 나오셔서 그때 경험을 이야기해 주실 수 있을까요? https://forkbombpodcast.com/ 비상업 팟캐스트이고 광고도 없고, 그냥 재미로 하는 거예요.

    어렵다면 여기서라도 더 듣고 싶습니다. 직접 만드신 걸 두고 다들 정말 자랑스러워하셨겠어요.

  3. rajbot HN

    팟캐스트 정말 좋네요! 요즘은 광고 파는 데만 관심 있어 보이는 팟캐스트가 많아서 더 신선합니다. 꼭 들어 보겠습니다.

    팟캐스트를 할 시간이 나려면 좀 걸릴 것 같고, 애플이라는 회사의 특성 때문에도, 영상 분야가 법적으로 엉망진창이라는 점 때문에도 말씀드리지 못하는 내용이 많습니다. 특별히 더 듣고 싶은 게 있으신가요?

  4. thepipetogrep HN

    사실 그냥 편하게 어울리면서 어떤 분인지, 무슨 일을 좋아하시는지, 어떻게 업계에 들어오셨는지, 그리고 애플과 iChat에서 일하던 시절 이야기 중에 나누고 싶은 것(또는 나눌 수 있는 것)을 들어 보는 자리예요. 저희가 특히 궁금한 질문 목록은 만들어 두겠지만, 저는 그냥 녹음하면서 즐거운 시간을 보내고, 나중에 돌아볼 좋은 추억을 남기고, 운이 좋으면 새로운 인연이나 친구도 생기는 자리라고 생각합니다.

    개인적인 이야기를 하나 하자면, iChat AV가 나왔을 때 저는 애플 스토어에 가서 매장 맥들을 Bonjour로 화상회의에 연결해 놓고 그대로 두고 오는 걸 즐겼어요. 그게 너무 신기하다고 생각했거든요.

  5. rajbot HN

    와, 재미있네요! 질문 목록을 보내 주시면 제 답이 팟캐스트에 쓸 만한지는 직접 판단해 보세요.

    초창기 애플 스토어는 정말 재미있었습니다. 회사가 지금보다 작았고, 직원이든 누구든 그냥 가서 손님 질문에 답해 주기 시작할 수 있었어요.

    2001년에 팰로앨토 매장이 문을 열었을 때 첫날 티셔츠를 나눠 줬던 게 기억납니다. 그때 모은 애플 티셔츠를 담은 큰 상자 안에 아직도 제 것이 들어 있어요.

  6. thepipetogrep HN

    이건 어떨까요? 저희는 예전에 PowerPC 커뮤니티의 유명 게스트와 함께 iChat을 작동시켜 보려던 시도를 다룬 적이 있어요. https://forkbombpodcast.com/e/episode-37-ichatav-and-interview-with-wicknix/ 이제 작동시키는 데 성공했으니, 전문가이신 분을 모시고 2부를 하면 어떨까요? 대본 없이 그냥 대화하면서 질문은 그때그때 나오는 대로 하는 걸로요.

    나머지 이야기는 비공개로 하는 게 좋겠네요. 블로그 글에 제 이메일이 있으니 관심 있으시면 그쪽으로 연락 주세요. 미리 감사드립니다!

  7. rootsudo HN

    역시 HN이 정말 좋네요!

    작업해 주셔서 감사합니다. 그 시절 eMac에서 AIM을 쓰는 즐거움이 훨씬 커졌거든요. 사람들은 80년대나 90년대의 컴퓨터 경험을 애틋하게 이야기하지만, 저한테는 이게 그 시절이었어요. 정말 마법 같은 때였죠...

  8. dansalvato HN

    저는 그때 십대였고 애플 키노트는 빠짐없이 챙겨 봤습니다. 한동안 H.264 지원을 엄청 크게 내세웠던 게 기억나요. 작업하신 엔지니어분들이 아마 자부심을 느끼셨을 그 당시 맥락을 엿볼 수 있어서 정말 좋고, 그게 애플이 그 기능을 소개하던 방식에서도 드러났다니 기쁩니다.

  9. qubex HN

    잡스가 이걸 오픈 표준으로 공개하겠다고 약속했던 게 기억나는데요. 뒤에서 무슨 일이 있었기에 그렇게 되지 못했나요?

  10. dansalvato HN

    FaceTime을 말씀하시는 거라면, 출시 직후에 특허 소송이 걸려서 몇 년 동안 이어졌던 걸로 기억합니다. https://www.bbc.com/news/technology-20236114

    그 무렵에는 안드로이드도 훨씬 경쟁력이 높아졌고, FaceTime이 큰 성공을 거두면서 애플 브랜드에 아주 강력한 자산이 되기도 했습니다.

    또 FaceTime이 결국 P2P 방식에서 중앙 서버 방식으로 바뀌었다고 읽은 적이 있는데(소송 때문일 수도 있고요), 이건 당연히 오픈 표준이라는 전제와는 정반대입니다.

    마지막으로 순전히 추측이지만, 스티브 잡스가 오픈 표준화를 강력하게 밀었고 어쩌면 그걸 이끈 원동력이었을 거라고 생각합니다. 그가 세상을 떠나고 1년 뒤에 소송이 끝났을 때쯤에는 그 약속이 흐지부지된 것도 이해가 됩니다.

  11. yincrash HN

    2010년에 FaceTime을 두고도 똑같은 말을 했습니다.

  12. qubex HN

    제가 둘을 헷갈리고 있나 보네요.

  13. rafram HN

    네, FaceTime을 말씀하시는 거예요.

  14. inemesitaffia HN

    그래도 FaceTime에는 소송이 있었잖아요.

  15. thepipetogrep HN

    그건 몰랐습니다.

  16. crest HN

    마이크로아키텍처가 서로 크게 다른 세 가지, 즉 G3(짧고 좁은 파이프라인, AltiVec 없음, 작은 캐시), G4(짧고 넓은 파이프라인, 인오더 AltiVec 중심, 그 외에는 쓸 만한 비순차 실행, 큰 L2지만 메모리 대역폭 부족), G5(길고 넓은 파이프라인, 슈퍼스칼라 비순차 실행 중심, AltiVec은 그냥 덧붙인 수준, 더 넓은 메모리 대역폭) 모두에 맞춰 최적화하셔야 했다니, 분명 "재미"있으셨겠어요.

    이걸 돌아가게 하려고 코덱을 몇 가지 변형으로 구현하셔야 했나요?

  17. rajbot HN

    인텔도 있었죠! 저희는 윈도용 QuickTime을 내놨고, 나중에는 인텔 기반 맥도 출시했습니다. 그것도 최적화할 게 아주 많았어요. 리틀 엔디언 바이트 순서와 완전히 다른 SIMD 명령어 집합에 맞춰 이식하고 최적화하느라 밤과 주말을 많이 썼습니다. QuickTime을 OS 9에서 OS X로 옮기는 것도 또 하나의 큰 전환이었고요. 그래도 재미는 있었습니다 :)

  18. jd3 HN

    그 과하게 잘 만든 iSight 카메라는 어댑터를 여러 개 거쳐도 M1이 나오기 전까지 계속 작동했는데, 안타깝게도 M1에서 드라이버가 결국 빠졌죠. 저는 2010년대 후반에 인텔 맥북 프로에 연결해서 재미 삼아 회의에 쓰곤 했습니다.

  19. notpushkin HN

    속을 다 들어내고 Raspberry Pi 카메라로 바꿔 넣을 수도 있어요!

    https://github.com/maxbbraun/pisight

    https://www.printables.com/model/418381-webcam-project-using-an-original-apple-isight-came

  20. endemic HN

    이건 끝도 없이 늘어나는 제 프로젝트 목록에 올라 있어요...

  21. wpm HN

    Apple Silicon에서도 영상은 여전히 잘 작동했고, 내장 마이크만 안 됐습니다(어차피 노트북 내장 마이크가 훨씬 낫긴 했고요). 완전히 못 쓰게 된 건 Tahoe에서 FireWire 지원을 없앤 뒤였습니다.

  22. js2 HN

    FireWire였죠? 아마 저도 어딘가 상자 속에 아직 갖고 있을 거예요.

  23. thepipetogrep HN

    FireWire 맞아요.

  24. JSR_FDED HN

    그래도 저는 그 UI를 Golden Gate보다 1000배는 더 좋아할 겁니다.

  25. dewey HN

    몇 년 전에 별다른 이유도 없이 이베이에서 그 iSight 카메라를 샀어요. 사실 쓸 수도 없는데 말이죠. 그냥 갖고 있으면 흐뭇해지는 아름다운 물건이에요.

  26. penskymaterial HN

    화상회의가 정말로 제대로 되던 시절로 돌아간 기분입니다. 요즘 FaceTime은 새 버전이 나올 때마다 일종의 아방가르드 예술 실험 같고, UI는 기술에 밝은 사용자든 아니든 갈수록 쓰기 어려워지고 있어요.

    저한테는 최근 기록과 연락처를 그렇게 헷갈리게 만든 게 결정타였습니다. 저도 무슨 이유에선지 맨 앞에 떡하니 올라와 있던 옛 연락처에 실수로 전화를 건 적이 있어요.

    다음 버전에서는 컨트롤을 또 더 많이, 2D로 그린 추상적인 고환 한 쌍처럼 생긴 알 수 없는 새 아이콘 뒤에 숨길 것 같습니다.

  27. etatester HN

    macOS든 iOS든 이 앱이 뭐가 헷갈린다는 건지 저는 모르겠어요. 내 얼굴 미리보기, 최근에 통화한 연락처, 초록색 "새로운 통화" 버튼이 있잖아요.

    오히려 너무 단순해서 지나칠 정도라고 생각합니다. 특히 "부재중 통화"가 16x16 크기 클릭 영역의 드롭다운 안에 들어 있는 건 더 그렇고요.

    "할머니가 거는 전화" 모드에 맞춰 최적화한 것처럼 보여요.

  28. valleyer HN

    뭐가 헷갈리는지 모르겠다면서 바로 헷갈리는 걸 말씀하시네요. 기본 사용 능력만 있는 사용자가 "부재중 통화"를 못 찾는다면, 그건 헷갈리는 겁니다!

  29. etatester HN

    실제로는 그 통화가 최근 기록 목록에 통화 시각과 함께 빨간색으로 표시됩니다. 다만 "부재중"이라고 명시적으로 적혀 있지 않을 뿐이에요. 이건 지난 20년 동안 전화 앱이 보여 준 방식과 같습니다.

    제가 말한 "부재중 통화" 목록은 일종의 필터에 가까운데, 확실히 불편하긴 해도 근본적인 문제는 아닙니다.

  30. iknowstuff HN

    세상에, FaceTime 앱 정말 너무 싫어요

    • 영상 통화를 받으면 앱이 멈춰요. 10초 뒤에 풀리긴 하는데 내 영상은 전송이 안 됩니다

    • 연락처 사진이 뜨는 데 4초가 걸려요

    • 연락처 검색창에 다섯 글자만 쳐도 앱이 5초 동안 멈춰요

    • 연락처 포스터가 있는 왼쪽 사이드바를 스크롤하면 뚝뚝 끊깁니다

Hacker News에서 보기 ↗