최근 새롭게 라즈베리 파이를 사용하여 만든 시스템이 너무 마음에 든다. 기존과 대비해서 장점이 너무 많은 것이다. 하나를 꼽아 보자면 성능이 확연히 차이가 날 정도로 더 좋다는 것인데, 기존에 사용했던 ODROID-U3는 출시일이 대략 2013~2014년 사이니까 벌써 10년전 제품이다. 라즈베리 파이 4로 말하자면 출시된 지 길어야 1~2년이니 아무래도 성능이 차이가 날 수밖에 없는 것. 기존 시스템에서 힘들었던 것으로 어플리케이션의 속도가 느리다는 것이었다. 개인 코드 저장소로 사용하는 gogs가 너무 느리고, 특히 커밋이 많은 코드일수록 더 느려진다. 링크 클릭 한 번에 3초 가량을 기다려야 했으므로 gogs의 좋은 기능을 더 쓰고 싶어도 그럴 수가 없었다. 그러나 이제는 이슈 트래커 기능까지 빠르게 사용할 수 있다. gogs로도 체감 성능이 굉장히 많이 빨라졌으므로 내친 김에 코드 기여와 개선 속도가 gogs대비 매우 빠른 gitea로 마이그레이션까지 진행했는데, 절차가 굉장히 복잡하고 직접 DB 필드를 수정하거나 업데이트한 것도 있어서 쉽지 않았지만 다 옮기고 나니 생각보다 더 만족스럽다.
IO
적인 측면에서 보면 오드로이드는 emmc를 사용하므로 라즈베리 파이보다는 그 쪽에서 더 강점이 있지 않을까 했지만, fio
로 측정해보니 오히려 SD카드를 쓰는 라즈베리 파이와 크게 다르지 않아 살짝 당황했다. 코드 최적화고 뭐고간에 역시 하드웨어 성능이 높은 것이 최고인 것이다. 메모리도 8GB이므로 오드로이드보다 무려 네 배나 더 크다. 덕분에 더 많은 컨테이너를 실행할 수도 있고.
오늘은 성능 이야기만 하려는 것은 아니고, 구축한 시스템의 아키텍처가 변경되며 얻은 가장 뛰어난 장점을 이야기해보고 싶어서 이 글을 쓰게 되었다. 그 장점이란 바로, 이제 유명한 오픈소스 프로젝트를 직접 컴파일할 필요가 없어졌다는 것이다.
오드로이드는 GOARCH
로 따지면 arm
이다. 대부분의 프로그램이 arm 플랫폼의 바이너리를 제공하지 않았기 때문에 힘든 부분이 굉장히 많았다. 그나마 요즘은 go로 작성된 유명한 어플리케이션이 많아서 어떻게든 하려고 하면 올릴 수 있긴 했긴 했다. 그래서 어떤 것들은 코드를 직접 받아 컴파일하기도 했고, 어떤 것들은 최신 버전을 사용할 수 없었다. 아예 불가능한 것도 있었고. 반면 라즈베리 파이는 플랫폼 arm64
이며, 많은 오픈소스 프로젝트들이 이 플랫폼의 바이너리나 도커 이미지도 함께 제공하고 있다. 아마 라즈베리 파이가 워낙 유명하기도 하고, 애플 M1
도 이쪽이라 자연스레 준비해주는 것이 아닐까 한다. 덕분에 이제는 그동안 사용하지 못했던 여러 어플리케이션을 손쉽게 올릴 수 있다고 기대하고 있다.
호환성이란 정말 뛰어난 장점이다. 어떤 것이 호환성을 갖춘 채로 누군가에게 제공되었다면, 그걸 사용하는 사용자는 특별한 예외 처리를 할 필요가 없다. 그래서 기대하는 대로 동작하길 기대할 수 있다. 받은 그대로 실행하더라도 (왠만하면)문제가 없고, 또 문제가 발생했다 하더라도 매뉴얼에, 혹은 이슈 트래커에서 내용을 확인해볼 수 있다. 같은 문제를 겪는 사람이 나 말고도 많으며, 그런 사람들이 인터넷에 남겨 놓은, 그 사람의 시행착오를 보며 나의 문제 해결 시간을 줄일 수 있다.
호환성, 호환이란 서로互, 바꿀換 수 있다는 뜻이다. 바꿀 수 있다는 것은 바꾸어야 할 대상이 동등하다는 것이고, 당신이 가지고 있는 것과 내가 가지고 있는 것이 동등하기 때문에 바꾸더라도 큰 차이가 없다는 말이다. 단순히 보드가 같다는 뜻을 넘어 어떤 사람과 나의 시행착오까지도 동등하다.
이제 나는 대부분의 사람들과 같은 문제를 가지게 되었고, 또 같은 해결책을 가지게 되었다. 나와 다른 사람 사이에 호환성이 생긴 것이다.