[작성자:] libertin

  • 블로그 서버 이전

    이 서버는 이전까지 1 OCPU, 1GB RAM을 가진 Oracle Cloud Free-Tier 서버로 돌아가고 있었습니다.

    줄곧 Cloudflare Caches를 사용하고 있어서 블로그를 보는 사람들은 속도가 느리다고 느끼지 않을 수도 있지만, 글을 쓰는 등 블로그를 관리하는 입장에서는 상당히 느렸고, PHP 또한 구형 버전을 계속 사용하고 있어서 보안 및 관리상의 문제가 계속 발생했습니다.

    그래서 계정을 PAYG로 업그레이드한 김에 2 OCPU, 3GB RAM을 가진 인스턴스를 생성해 모든 데이터를 들어서 옮겼습니다.


    Q. 왜 일반 PC를 서버로 사용하지 않는 건가요?

    A. 셀프호스팅 씬에서 많이 보이는 호스팅 방식이 바로 일반 PC를 서버로 둔갑시켜 서비스를 돌리는 방식입니다. 이미 서버 한대가 IP를 통째로 점유하고 있다면 cloudflared를 사용하는 좋은 방법이 있죠. 이미 그렇게 쓰고 있는 서버가 몇 대 있습니다. 하지만 계속 돌아가야 하는 프로덕션 서버고, 손이 덜 가야 한다면 특별한 이유가 없는 이상 일단 VPS를 써야 한다는게 제 생각입니다.

    Q. 서버를 다시 구축하는데 어려움은 없었나요?

    A. Linux를 사용한지 10년이 넘었지만, 여전히 알 수 없는 부분에서 문제가 발생하는 경우가 있고는 했습니다. Gemini와 대화하면서 서버를 옮겼는데, 꽤 괜찮은 수준으로 설명을 해줬습니다.

    Q. 요금이 비싸게 나오지는 않나요?

    A. 서버 자체가 사양이 그렇게 높지는 않지만 블로그를 돌리기에는 충분하고, 멀쩡히 직장을 다니는 사람이라서 지금 환율 등을 고려해도 요금이 부담스럽다고는 느껴지지 않습니다. (애초에 Oracle Cloud는 요금을 SGD로 부과합니다.)

  • 미유 미니 레트로 게임기

    매일매일이 여가 시간이던 과거와는 달리 수 년째 멀쩡히 회사를 다니고 있고, 나이도 거의 30줄을 바라보고 있다 보니 매일매일 접속해 어떤 숙제를 해야 하는 요즘 방식의 게임을 즐기기는 현실적으로 힘들어졌습니다.

    그래서 제 게임 관심은 대체로 레트로 게임으로 기울어 있습니다. 인터넷도 제한적이었던 시절의 레트로 게임은 하고 싶을때 그냥 하면 되고, 몇날 며칠 접속 안했다고 꼽을 줄 일도 없죠.

    미유 “미니”라는 이름답게 실제로 꽤 작습니다. 한 손에 잡히는 수준으로, 닌텐도 스위치 OLED와 비교해보면 그 차이가 상당히 느껴집니다.

    다만 너무 작다 보니 빡겜을 하기에는 그립감이 그다지 좋지는 않습니다.

    microSD 카드에 Onion OS를 넣어서 동작시키는 방식입니다. SigmaStar SSD202D(Cortex-A7 2코어) SoC가 들어가 있고 리눅스 기반이니까 간단한 컴퓨터로 쓰면 어떨까 했지만, RAM이 고작 128MB인데다 USB OTG 기능이 없어서 그러지는 못했습니다.

    에뮬레이터는 대부분 MAME나 레크로아크로 동작합니다. 16비트급 기종까지는 무리 없이 잘 동작합니다.

    동네 서브컬쳐 삽에서 구입한거라 수많은 게임들이 128GB SD카드와 함께 동봉되어 있었습니다. 이 게임들을 다 할지는 모르겠습니다만, 간단히 시간 때우기에는 좋을 것으로 보입니다.

  • 갤럭시 워치8 40mm

    갤럭시 워치8 40mm LTE 모델을 구입했습니다.

    사실 워치를 사야겠다는 생각 자체가 번뜩 하고 떠오른 건 아니고, 여러 이유가 있었습니다.

    • 이전에 손목에 차던 물건은 2020년에 산 Mi Smart Band 5였습니다. Gadgetbridge와 연동해서 쓰고 있었는데, 어느 시점부터 배터리 스웰링으로 인해 화면이 뜨는 문제가 발생했고, 수면 측정도 제대로 되지 않기 시작했습니다. 사실 종류를 막론하고 전자기기 사용 기간이 6년이나 되었다면 충분히 오래 쓴 것입니다.
    • 휴대폰(갤럭시 S24+) 할부가 5월을 기점으로 마무리되었습니다. 이 참에 요금제를 최상급으로 바꿨는데, 세컨드 디바이스 2개의 요금을 면제해주는 옵션이 존재했습니다. 이미 태블릿이 들어와 있고 한 자리가 비어있다면 거기에는 무조건 워치가 들어가야겠다는 생각이 들었습니다.

    갤럭시 워치8은 Wear OS(사실 안드로이드)가 깔린 스마트 워치입니다. 지금까지 사용해왔던 RTOS 기반 스마트 밴드보다 훨씬 더 복잡하고 많은 기능을 제공합니다.

    워치에는 특유의 다양한 앱과 더 섬세한 건강 측정 기능이 있고, 이 특징들이 스마트 밴드와는 확실히 차별화되는 부분이라고 볼 수 있습니다.

    다만 스마트 밴드를 완전히 갈아엎을 만큼의 상위 호환은 아니고, 서로 일장일단이 있다에 가까운 느낌이었습니다.

    장점

    • 착용감
      줄곧 Mi Band만 써왔고, 갤럭시 워치는 커녕 스마트 워치 자체가 이번이 처음입니다. 워치7 대비 두께가 얇아졌다고 하는데, 실제로 기본 스트랩 기준 일상용으로 괜찮은 착용감을 보여줬습니다.
    • 건강 체크 기능
      수면 단계와 심박수 체크 자체는 Mi Band 5와 거의 동일합니다. 여기에 혈중 산소, 피부 온도, 호흡수까지 측정이 가능합니다.
      삼성 헬스 앱과 연동되는데, 정해놓은 목표치를 매일 달성하라고 매일 부추기기 때문에 실제로 건강 관리에 도움은 되는 듯 합니다.
    • 기능성
      워치에 설치할 수 있는 앱들이 Play 스토어에 있습니다. LTE 모델이기 때문에 폰과 블루투스 연결이 끊어져 있어도 워치 자체의 데이터 통신으로 폰을 찾을 수 있습니다(아직 써본 적 없음).
      Gadgetbridge를 사용했을 때는 여러 카카오톡 오픈톡방의 메시지까지 알림으로 받거나, 아니면 카카오톡의 알림 자체를 밴드에 안 들어가게 차단해야 했는데, Wear OS 전용 카카오톡 앱이 있어서 필요한 알림만 받아볼 수 있습니다.
      손가락 제스처는 실제로 유용하게 쓰고 있는 기능 중 하나입니다.

    단점

    • 배터리
      배터리 타임이 스마트 밴드보다 훨씬 짧습니다. 사실 범용 OS로 굴러가는 스마트 워치라서 당연한 거지만, AOD와 들어올려서 화면 켜기를 끈 제 기준으로는 1일 반 ~ 2일 정도가 나왔습니다. Mi Band 5가 한번 충전으로 2주 가까이 되는 배터리 타임이 나왔던 것과 비교하면 매우 짧아진 것입니다.
      다행히도 호환되는 충전 독을 다이소 등지에서 파는 등 충전기는 추가 수급이 꽤 원할한 편입니다.
    • 혈압 측정 기능은 최초 보정이 필요
      스마트 워치는 의료기기가 아니기 때문에 딱히 정확한 측정을 바라지는 않았지만, 그렇다고 최초 보정이 쉬운 것도 아니었습니다.

    기계 자체는 매우 훌륭하고 만족스럽습니다. 삼성이라는 이름값을 생각하면 40만원대라는 가격은 그렇게 나쁘지는 않아 보입니다.

    하지만 스마트 워치는 아예 하나의 다른 폰이라 봐도 될 정도로 스마트 밴드 대비 기능이 복잡하고 배워야 할 것이 많습니다. 스마트 워치가 아예 처음인 사람에게 단순히 디자인이나 기능이 훌륭하다는 이유로 추천드리기는 어렵습니다.

    워치로 대단한 것을 하지 않고 그냥 만보기나 간단한 건강 측정만 원한다면 갤럭시 핏 같은 스마트 밴드를 대신 추천드리고 싶습니다.

  • CRT의 동작 원리를.araboja

    https://youtu.be/p6GaNQIi8A0

    CRT(Cathode Ray Tube / 음극선관)는 1897년 독일의 물리학자인 카를 페르디난트 브라운(Karl Ferdinand Braun)이 발명하여 1937년에 상용화되었습니다.

    이렇게 상용화된 CRT TV는 2000년대 중 · 후반까지 주력으로 사용되었습니다.

    이후 기술의 발전으로 LCD 등 대체 기술이 완전한 상위 호환으로 떠오르면서 자연히 퇴역하였으며, 이후로도 장비를 쉽게 바꾸기 어려운 산업 현장, 오락실, 또는 극히 일부 가정 등에서는 아직도 사용되고 있습니다.

    환경이나 안전 등을 이유로 이미 십수년 전에 생산이 종료된 구식 기술이지만, 여전히 그 동작 원리를 상세히 알아보고 싶으신 분들 또한 있는 것도 사실입니다.

    이번 글에서는 CRT가 어떻게 동작하는지, 그리고 CRT 외에는 따라할 수 없는 이점 등에 대하여 소개해 보고자 합니다.

    CRT의 기초 형태

    사실, CRT는 진공관의 형태 중 하나입니다.

    깊게 따지고 들어가면 전구에서 시작되었다고 할 수는 있지만, 생략하겠습니다.

    진공관은 트랜지스터의 발명 이후로 설 자리를 잃은 듯 했으나, 현 시대에도 여전히 살아남고 있는 분야가 분명히 존재하며, 그 중에는 전문 오디오, 전자레인지가 있습니다.

    먼저 CRT의 근간이 되는 진공관 다이오드에 대해 알아보겠습니다.

    https://en.wikipedia.org/wiki/File:Diode_vacuum_tube.png

    내부가 진공인 유리관에는 음극(Cathode)을 담당하는 필라멘트, 그 위에 양극(Anode)을 담당하는 금속판이 있습니다.

    이때 음극의 역할을 하거나, 또는 음극을 가열해주는 필라멘트가 충분히 가열되면, 음극에 있던 전자가 양극으로 이동합니다.

    그렇다면, 여기서 양극판을 원형 고리의 형태로 바꾸면 어떻게 될까요?

    음극에서 양극으로 전자가 흐르는 건 여전하지만, 앞이 뚫려 있으므로 전자가 계속 앞으로 나아가게 됩니다.

    이 상태에서 유리관을 충분히 넓히고, 앞에 화면을 만든 다음 내부면에 인(Phospor)으로 된 형광체를 도포합니다.

    전자총에서 나오는 전자는 가시광선이 아니지만, 이 전자가 앞으로 나아가 형광체를 타격함으로서 가시광선에 해당하는 빛이 발산됩니다.

    이로서 CRT의 기초적인 형태가 만들어집니다.

    전자를 가속시키기, 그리고 CRT의 위험성

    단순히 진공관에 도료만 바른 상태로는 CRT로 활용이 불가능합니다. 이 상태로 전원을 주입하면 그냥 약하게 빛나는 전구가 됩니다.

    전자총에서 곧바로 나온 전자는 방사형으로 느리게 뿌려집니다. 이를 빠르고 정교하게 조작하여 하나의 화면으로 만들기 위해서는 필수 부품이 몇개 더 추가되어야 합니다.

    https://study.madeeasy.in/ee/electrical-electronic-measurements/cathode-ray-tube/

    흔히 “CRT에는 고전압이 흘러 위험하다”는 얘기를 많이 들어보셨을 겁니다.

    CRT TV나 모니터의 메인보드에는 FBT(Fly Back Transformer / 고압 변압기)가 장착됩니다. 이 부품은 최소 수천 V에서 최고 수만V에 달하는 초고전압을 만들어 냅니다.

    이 전압이 전자총의 양극 부분에 공급되면, 음극으로부터 발산된 전자 입자가 빛의 약 30% 정도에 달하는 속도로 가속되며, 또한 올바른 세기와 형태로 가공되어 화면으로 나갑니다.

    https://www.wired.com/story/crt-tube-tv-hot-gaming-tech-retro-games/

    하지만 아무리 전자 빔의 형태가 정교하더라도, 화면까지 도달하는 거리가 일정하지 못하면 흐린 화상이 나타납니다. 이 때문에 어느 위치에 닿아도 그 거리가 일정하게 유지되도록 CRT는 한동안 화면이 볼록했으며, 이후 기술의 발전으로 평면에 가까운 화면이 등장했습니다.

    https://commons.wikimedia.org/wiki/File:CRT_Anode_Cap.jpg

    CRT 회로에서 만들어낸 양극은 분해하기 용이하도록 튜브에 청진기처럼 생긴 고무 캡의 형태로 소켓에 장착됩니다. 설명했듯이 최고 수만V에 달하는 초고전압이 공급되기에 손가락을 가까이 가져만 가도 아크 방전이 일어나는 수준이며, 이를 방지하기 위해 고무 캡이 달려 있습니다.

    이 양극에 걸리는 초고전압은 CRT를 빠르게 켜기 위해 고전압 커패시터에도 적재됩니다.1 이 때문에 꺼진 상태에서도 감전의 위험이 도사리며, 작업할 때는 반드시 양극을 방전시켜야 합니다.

    진공관이 으레 그렇듯이, 전자 빔이 공기 입자와 충돌하여 다시 흩뿌려지면 제대로 된 화상이 만들어지지 않으므로, CRT 내부는 항상 진공 상태를 유지합니다.

    이러한 상태에서 CRT 제조 공정의 불량으로 인한 폭발 사고가 가끔 있었으며, 나중에는 폭발하더라도 인명 피해를 발생시키지 않도록 비산 방지 유리를 하나 더 덧대어 제조하였습니다.

    또한, 전자총에서 발사한 고에너지의 전자 빔이 형광체와 충돌하면서 제동 복사(Bremsstrahlung) 효과로 인해 미량의 X선이 방출됩니다.

    CRT는 두꺼운 납유리로 제조되기에 방출되는 X선을 대부분은 차단하지만, 여전히 미량의 X선은 밖으로 빠져나가기 때문에 가까이에서 바라보았을 때 건강에 유해할 수도 있습니다. 이 때문에 CRT TV를 볼 때는 멀리 떨어져서 봐야 하는 국룰 아닌 국룰이 존재했습니다.

    전자의 방향을 조정하기

    다시 본론으로 돌아와서, 이 상태에서 화면을 키면 단순히 정중앙에 점 하나만이 생깁니다. 이를 사람의 눈으로 봤을 때 하나의 화면으로 보일 수 있게 하려면, 화면의 원하는 곳에 점을 찍게끔 전자 빔을 구부릴 수 있는 부품이 필요합니다.

    https://electronics.stackexchange.com/questions/628701/why-are-the-vertical-deflection-coils-in-a-crt-deflection-yoke-so-different-from

    전자 빔은 자기장으로 방향을 구부릴 수 있습니다. 이러한 특성을 이용하여 전자 빔을 정교하게 조작하기 위해서는 편향 코일(Deflection Coil, Yoke라고도 함)이 필요합니다.

    편향 코일은 구리 코일로 만들어진 전자석으로, CRT의 목 부분에 장착되어 전자 빔이 닿아야 할 위치를 조정합니다.

    CRT는 LCD와 다르게 한번에 하나의 화상을 바로 만들어내지 못합니다. 따라서 육안으로 보기에 화면처럼 느껴지도록 TV의 경우 보통 15KHz, 또는 그 이상 매우 빠른 속도로 편향 코일을 조작하여 화상을 만들어 냅니다.

    가로 주사율과 편향 코일 제조기술의 한계로 인해 코일에서 고주파음이 발생합니다.

    편향 코일이 전자 빔을 찍는 방식에는 크게 두 가지가 있습니다.

    좌에서 우로 전자 빔을 주사한 뒤 바로 다음 줄로 넘어가는 순차 주사(progressive) 방식입니다.

    가로 해상도는 낮지만 또렷한 화상이 표시되고 반응 속도가 빠른 장점이 있습니다. 이로 인해 컴퓨터의 화면 표시, 게임 등에 사용됩니다.

    다른 하나로는 비월 주사(interlaced) 방식입니다. 좌에서 우로 주사하는 방식은 순차 주사와 같지만, 홀수와 짝수 가로줄로 나뉜 것을 번갈아가며 표시하는 방식입니다.

    가로 해상도가 높아지지만, 세로 해상도는 동일하기 때문에 원본 해상도 대비 화상이 약간 흐리며, 반응 속도가 소폭 느려지고, 제품에 따라 화면이 수직으로 약간 흔들리는 경우가 있습니다. 이러한 방식은 TV 및 동영상에 주로 사용됩니다.

    https://shmups.system11.org/viewtopic.php?t=63197

    이 두가지 주사 방식은 좌상단부터 우하단까지 가로줄을 그어가면서 화상을 그려나가는 래스터 스캐닝 방식이라는 공통점이 있습니다.

    하지만 아무리 가로줄을 서로 붙이려고 해도 그 사이에 검은 줄로 된 공백이 남는다는 한계가 있는데, 이를 “스캔 라인“이라고 부릅니다.

    과거 게임들은 이러한 CRT의 특성을 이용해 그래픽을 제작하였기 때문에 스캔라인의 유무에 따른 화질 체감 차이가 큰 편입니다.

    따라서 대다수의 에뮬레이터에는 LCD와 같은 현세대 디스플레이 환경에서 스캔라인을 재현하는 기능이 있습니다.

    컬러는 어떻게 표시하는가?

    CRT는 원래 흑백이었습니다.

    이후 기술의 발달로 1955년에 최초로 컬러 CRT가 발명된 이래로, 한국 내에서는 1980년대에 컬러 TV 방송을 개시하며 본격적인 보급이 시작되었습니다.

    컬러 CRT는 흑백 CRT와 다르게 그 구조가 약간 더 복잡하게 이루어져 있습니다.

    빛의 삼원색(RGB)대로 3개의 전자총이 있고, 여기서 발생한 전자 빔이 섀도우 마스크를 통해 필터링되어 알맞은 형광물질에 도달합니다.

    형광물질은 색상에 따라 일정한 패턴으로 그려져 있습니다.

    3개의 전자총은 각자 다른 각도로 전자 빔을 발사하는데, 전자총 시점에서 일정 각도로 섀도우 마스크를 향할 때 원하는 색상의 형광물질만을 볼 수 있게 합니다.

    https://filthypants.blogspot.com/2020/02/crt-shader-masks.html

    색상을 표시할 수 있다는 장점은 있지만, 가까이에서 봤을 때 선명도가 떨어져 보이는 단점이 있습니다.

    때문에 컴퓨터 또는 소형 모니터의 경우 기술이 발달할 때까지 한동안은 흑백 등의 모노크롬 CRT를 대중적으로 사용하였습니다. 이는 초창기 Macintosh가 흑백 CRT를 고집한 이유이기도 합니다.

    CRT만이 가질 수 있는 이점

    CRT에는 정해진 해상도가 존재하지 않습니다.

    LCD에서는 네이티브 해상도를 사용하지 않으면 화상이 스케일링되어 다소 흐릿하게 표시됩니다.

    하지만 CRT는 래스터 화면을 송출하는 회로가 완전히 아날로그이기 때문에 지원하는 해상도 내라면 1:1로 뚜렷한 화상을 내보냅니다.

    명암비가 뚜렷하다는 장점 또한 있습니다.

    LCD 뒤에 있는 백라이트는 화상이 까맣든 아니든 간에 계속 빛을 내기 때문에 블랙 레벨에서 감점을 먹고 들어가지만, CRT는 그냥 검은 부분에 전자 빔을 송출하지 않으면 됩니다.

    설명했듯이 CRT는 아날로그 디스플레이기 때문에 가능한 거의 모든 색상을 섬세하게 표현할 수도 있습니다.

    다만 블랙 레벨이 좋다는 장점은 OLED가 계승했다는 점을 감안할 필요가 있습니다.

    CRT는 반응 속도가 존재하지 않습니다.

    위에서 보듯 전자총에서 쏘아진 전자 빔은 고전압을 공급받는 양극에 의해 빛의 약 30%에 달하는 속도로 가속됩니다.

    신호를 아날로그 변환만 거쳐 CRT로 전송하기 때문에 회로에서의 지연 또한 존재하지 않습니다.

    보너스 : CRT로 만들어진 또 다른 디스플레이

    Sony VPH-1000Q
    https://www.recycledgoods.com/sony-vph-1000q-super-bright-s-video-video-projector/

    우리가 아는 LCD나 DLP 방식 프로젝터가 등장하기 이전에는 CRT 프로젝터가 주로 사용되었습니다.

    이 중 삼관식 프로젝터의 경우 서로 다른 색의 CRT를 3개 놓음으로서 섀도우 마스크나 형광물질 패턴이 없어 화질이 매우 우수하다는 장점이 있습니다.

    하지만 CRT 프로젝터는 매우 비쌌고, 밝기가 매우 낮았으며, CRT 자체를 3개나 사용하여 보정 난이도가 하늘 넘어 우주를 뚫는 수준으로 까다로웠습니다.

    https://www.curtpalme.com/Fungus_Removal1.shtm

    CRT 프로젝터는 일반 CRT TV나 모니터보다 더 강한 출력을 내고, 그만큼 발열도 매우 심하기 때문에 이로 인한 번인 현상을 최대한 억제하고자 화면에 냉각수 챔버를 장착했습니다.

    이 냉각수는 글리콜을 기반으로 적정량의 색소가 섞여 있는데, PC에서 볼 수 있는 수냉 쿨러와는 달리 순환되지 않기 때문에 장시간 방치할 시 내부에 이끼가 자라 화면이 흐려지는 원인이 됩니다.

    결국 이후에 등장한 LCD와 DLP 프로젝터에 입지를 추월당해 역사 속으로 사라졌지만, 극소수의 레트로 게이머들은 여전히 CRT 프로젝터를 찾기도 합니다.

    https://www.recycledgoods.com/mitsubishi-55-widescreen-rear-projection-tv-ws-55809/

    같은 원리로 만들어진 CRT 프로젝션 TV 또한 존재합니다.

    CRT의 화상을 뒤에서 화면을 향해 투사하는 방식으로, 앞에서 설명했던 CRT 프로젝터와 같은 장점을 공유하고, 조금 더 싼 값에 고화질의 대화면을 만들 수 있다는 특징이 있습니다.

    이후 가성비가 더 좋은 DLP 방식으로 대체되었다가, PDP 및 LCD의 대형화로 인해 시장에서 자취를 감추었습니다.

    https://electronics.stackexchange.com/questions/399086/dso-oscilloscopes-with-crt-screens

    오실로스코프나 초창기 아케이드 게임에는 벡터 방식 CRT가 사용되었습니다.

    픽셀과 같은 개념 자체가 존재하지 않기에 매우 자연스러운 선을 그려낼 수 있는 장점이 있지만, 정말로 선만 그릴 수 있었기에 표현의 한계가 명확했습니다.

    CRT 오실로스코프는 더 이상 만들어지지 않고 있지만, 이 방식의 오실로스코프만을 고집하는 기술자들 또한 존재합니다.

    결론

    CRT는 이미 생산 및 공식 기술지원이 모두 종료된 디스플레이 기술입니다. 하지만 CRT 특유의 화질이나 특성은 LCD 같은 다른 디스플레이 기술이 대체할 수 없는 상황입니다.

    또한 요새 뜨고 있는 복고풍의 범위가 90년대 내지 00년대로 옮겨가면서 CRT에 맞춰진 컨텐츠를 최고의 화질로 즐길 수 있다는 장점이 있으며, CRT 자체의 두껍고 볼록한 형태에서 오는 향수는 많은 사람들을 CRT로 끌어들이기에 충분합니다.

    참고가 되셨기를 바라며, 이번 글을 통해 CRT의 동작 방식을 이해하여 향후 CRT를 매입할 때 선택의 폭을 좁혀나갈 수 있을 것으로 기대합니다.

    1. 조금 더 최근에 나온 CRT는 사용하지 않을 때 FBT에 적재된 고전압을 자연히 빼주는 bleeding resistor가 설치되지만, 수십년이 지난 현재 정상적으로 작동하지 않는 경우도 다소 있습니다. ↩︎
  • 삼성 시리즈7 슬레이트 PC (XQ700T1A) 배터리 자가교체

    삼성 시리즈7 슬레이트 PC (XQ700T1A) 배터리 자가교체

    x86_64 기반의 태블릿을 싸게 사려고 당근을 주시하다 7만원에 구매한 슬레이트 PC입니다.

    i5-2467M에 4GB RAM으로 성능이 그렇게 높지는 않지만 Linux에서의 사용은 나름대로 쾌적합니다.

    다만 이 기기에는 상당히 큰 문제가 하나 있는데,

    배터리 수명이 약 40% 남아 있었습니다.

    실제로 완충 상태에서의 배터리 타임이 1시간도 채 안 됩니다.

    이래서는 태블릿으로서 실사용조차 할 수 없으므로, 호환되는 배터리를 구매하여 자가수리를 진행하려 합니다.

    조사해보니 슬레이트 PC에는 AA-PBZN4NP 배터리가 들어 있습니다.

    현 시점에서 출시한지 거의 13년 넘은 기기이다 보니 정식 서비스는 이미 종료되었을 것으로 보여 호환 배터리를 주문했습니다.

    주문한 배터리가 도착했습니다. 원본과 동일한 리튬 폴리머 방식 40Wh입니다.

    특이하게도 분해 & 조립에 사용되는 공구가 포함되어 왔습니다.

    기기 뒷판을 뜯습니다. 나사가 없는 순수 걸쇠 타입이므로 주의해서 하나하나씩 딴다는 느낌으로 정성스레 열어줍니다.

    슬레이트 PC의 메인보드입니다. 아래에 배터리가 있고 위에 메인보드가 있는 전형적인 현세대 노트북의 구조와 비슷합니다.

    오른쪽에는 배터리 커넥터가 있습니다. 테이프를 뗀 다음 조심스럽게 분리합니다.

    배터리 핀아웃은 +극(빨간 선)이 아래에 있습니다. 배터리 교체 시 이 점 주의하여 장착합니다.

    성공적으로 배터리를 교체했습니다.

    CPU 써멀패드를 교체할까 생각은 했으나, 이쯤 하면 되었다고 생각해 다시 뒷판을 닫았습니다.

    40%였던 배터리 수명이 100%로 돌아왔습니다.

    배터리가 자체적으로 보정될 수 있도록 100%에서 5% 정도까지 여러번 사이클링을 시켜줘야 합니다.

    이후로 슬레이트 PC에서 할 만한 정비는

    1. CPU 및 칩셋(HM65) minus pad 8 서멀패드로 교체
    2. SSD를 Transcend MSA230S 512GB로 교체
    3. Wi-Fi 카드를 Intel AC3160으로 교체 (Wi-Fi 5 지원)
    4. 온보드된 RAM을 8GB로 교체 시도(?????)

    이 네 가지일 것으로 예상되고, 이에 대한 내용은 기회가 된다면 다뤄볼 예정입니다.

  • 당ㅇ에서 산 중고 PC를 TV로 만들어 쓴 후기

    아무튼 TV 맞음

    사람들의 미디어 소비량이 기하급수적으로 늘어난 현재, 자취를 하는 사람들 사이에서 이동식 스마트 TV(일명 스ㅇ바이미)가 잇템으로 떠오르고 있습니다.

    전 당시 일반 스마트 TV를 사기에는 돈이 그렇게 많지 않았고, 또 제 입맛에 맞추기 위해 내부 시스템을 커스터마이징 할 수도 없었습니다.

    그래서 “중고 PC를 이용해 하나 만들자”라는 제 3의 길을 선택해 지난 11월에 당ㅇ에서 중고 PC(삼성 DM301S3B-C25)를 하나 거래했습니다.

    사양은 Pentium G3240, 4GB DDR3 RAM으로 현 시점에서는 사무용으로도 부적합한 사양이나, 간결하게 축소된 Linux 시스템 위에 Kodi만이 올라가는 세팅으로는 충분합니다.

    특히 4GB나 되는 넉넉한 RAM은 사용량이 항상 25% 쯤에 머물어 스왑이 별도로 필요하지 않았습니다.

    거래 후 며칠 뒤에 알았는데, 이 모델의 고질병인 전원 버튼이 예상한 대로 고장나있어 잘 눌리지 않고 합선이 일어나 결국 헤더를 뽑았습니다.

    대신 전원이 인가되는 즉시 부팅되도록 BIOS를 조정하였고, 슬립 모드에서 깨울 때는 PS/2 포트에 연결된 키보드를 이용합니다.

    Qualcomm Atheros 계열로 보이는 mPCIe 802.11n 무선랜카드, DVD+RW까지 지원하는 SATA ODD, WD5000AZLX 하드디스크가 포함되어 있었습니다. 이것도 전부 들어내고 집에 돌아다니는 Micron BX500 240GB SSD를 장착했습니다.

    모니터로는 TG삼보 TGL 2240A를 또 중고로 구매해 올려놓았는데, 1680×1050 해상도로 TV로 사용하기에는 큰 무리가 없습니다.

    Fedora 40을 minimal 세팅으로 설치한 뒤, 부팅 후 즉시 Kodi가 켜지도록 구성했습니다.

    CPU 자체는 3.1GHz의 베이스 클럭을 갖고 있으나, 전력 소모 및 소음 최소화를 위해 최대 1.2GHz까지만 올라가도록 다운클럭 했습니다. 일반적인 상황에서는 30˚C 내외의 준수한 온도를 기록하나, 내장 그래픽(≒ Mesa 드라이버)이 허용하는 코덱 외의 영상을 구동할 경우 40˚C 근처까지 가는 모습을 보여줍니다.

    Kodi 설치 시 Estuary 스킨이 기본 제공됩니다. 기본 폰트가 한글을 지원하지 않고, 대체재로 사용할 수 있는 Arial 폰트는 별로 이쁘지 않아 몇몇 XML과 함께 수정했습니다.

    Fedora 40 기준으로 /usr/share/kodi에 설치됩니다.

    조작은 Kore 앱을 통해 이루어집니다.

    YouTube 또한 초기 세팅이 복잡하긴 하지만 지원합니다.

    YouTube 모바일 앱에서 TV로 스트리밍하거나, Kore 앱으로 링크를 공유하여 재생이 가능합니다.

    추가로, USB 블루투스 동글을 따로 설치해 Wii 리모컨을 사용하거나 오디오 장치에 연결하도록 시스템을 세팅하는 것도 고려해볼 수 있을 듯 합니다.

  • Docker를 rootless로 설치하기

    일반적으로 Docker는 root로 설치 및 실행됩니다.

    개인이 사용하는 서버에서는 큰 문제가 없겠지만, 기업에서 프로덕션 용도로 사용하기 위해 이런 방식으로 Docker를 설치하여 구동하는 경우, 컨테이너 탈옥 공격이 성공했을 때 상당히 큰 위험에 노출됩니다.

    다행히도 Docker에는 rootless 모드로 설치할 수 있는 옵션을 제공하는데, 시스템이 아닌 유저 영역으로 배치되기 때문에 컨테이너 탈옥 시 추가로 발생할 수 있는 피해를 최소화 해 줍니다.

    이 글은 Docker를 rootless 모드로 설치하는 방법을 설명합니다.

    주의사항

    • Ubuntu Server 24.04를 기준으로 합니다.

    1. 필요한 패키지 설치

    2개의 디펜던시가 필요합니다. 해당 패키지를 설치합니다.

    # apt install uidmap curl

    2. Docker 유저 생성

    Docker를 사용하기 위한 유저를 생성하고, sudo 권한을 부여합니다.

    # adduser docker
    # usermod -aG sudo docker

    이제 docker 유저를 사용하려면 su가 아닌 ssh로 로그인하여야 합니다.

    그렇지 않으면 XDG_RUNTIME_DIR 에러가 발생합니다.

    $ ssh docker@localhost

    3. rootless Docker 설치

    Docker를 사용하기 위해 만든 유저(docker)로 로그인한 상태에서 설치합니다.

    $ wget https://get.docker.com/rootless  
    $ sh rootless

    ~/bin이 생성되었으며, 모든 Docker 파일이 이곳에 저장됩니다.

    또한, 해당 디렉터리를 PATH로 참조하도록 ~/.bashrc에 몇 줄이 추가되어 있을 것입니다.

    만약 그렇지 않은 경우, nano와 같은 에디터로 ~/.bashrc를 열어 해당 줄을 추가합니다.

    export PATH=/home/$USER/bin:\$PATH
    export DOCKER_HOST=unix:///run/user/$UID/docker.sock

    1024 이하의 포트를 사용할 수 있도록 합니다.

    $ sudo setcap cap_net_bind_service=ep $HOME/bin/rootlesskit

    마지막으로, Docker를 systemd에 자동 시작 애플리케이션으로 등록하고 시작시킵니다.

    $ systemctl --user start docker
    $ systemctl --user enable docker
    $ sudo loginctl enable-linger $USER

    끝났습니다! docker info를 입력하여 잘 동작하고 있는지 확인합니다.

    선택 : Portainer 설치

    Portainer는 Docker 컨테이너, 이미지 등을 관리하기 위한 웹 인터페이스입니다.

    docker 유저로 해당 명령어를 실행한 뒤, 웹 브라우저를 통해 {서버 IP}:9000으로 접속했을 때 인터페이스가 뜨면 성공한 것입니다.

    docker run -d -p 8000:8000 -p 9000:9000 --name=portainer \
    --restart=always -v /$XDG_RUNTIME_DIR/docker.sock:/var/run/docker.sock \
    -v ~/.local/share/docker/volumes:/var/lib/docker/volumes \
    -v portainer_data:/data portainer/portainer-ce

  • 240929

    1. 벌써 1년의 거의 75%가 지나갑니다. 원래도 바빴지만 앞으로는 본업과 더불어 개인 프로젝트와 서버 관리도 중첩되어 더 바빠질 예정입니다.

      곧 저희 동네 연례행사인 유등축제와 개천예술제가 열릴 예정입니다. 거의 20번도 넘게 보던거라 이미 지겨움의 경지에 도달했는데, 이번 해에는 바뀐게 있을 것이라 기대하고 싶습니다.

    최근들어 레트로의 기준이 90년대에서 00년대(Y2K)로 넘어왔습니다. 즉, 00년대를 알차게 보낸 저에게는 정말로 컨텐츠가 쏟아지는 시대이기도 합니다.

    그래서 홈페이지 또한 새롭게 디자인하였고, 또 하나의 개인 프로젝트로 00년대를 풍미했던 요소 중 하나인 싸이월드 미니홈피를 self-hosted 방식으로 재창조하고 있습니다.

    아직까지 갈 길은 멀지만 조만간 베타 버전, 즉 실제 웹사이트로서 구동이 가능한 형태로 만나보게 될 듯합니다.

    2024-09-30 : 베타 버전이 출시되었습니다.

    3.

    껴안고 잘 바디필로우를 하나 샀습니다.

    매일 아침마다 바닥에 떨어진 채로 발견된다는 특성이 있습니다.

  • KDE Plasma 6로 업그레이드 (2024-02-29)

    배경화면 : https://steamcommunity.com/sharedfiles/filedetails/?id=3033094923

    KDE Plasma를 사용 중인 분들은 모두 아시다시피, 2024년 2월 28일에 KDE Plasma 6가 정식 출시되었습니다.

    저는 2022년 말에 노트북을 새로 산 이래로 계속 KDE의 Ubuntu LTS 기반 자체 배포판인 KDE neon을 써왔으니, 귀찮은 apt 레포지토리 수정 없이도 바로 pkcon을 통해 업그레이드 할 수 있었습니다.

    업그레이드 과정에서 dpkg 디펜던시와 amdgpu가 서로 꼬이는 등의 자잘한 해프닝은 있었지만, 삽질 몇 시간으로 해결되었습니다.

    Plasma 6의 가장 큰 차이점은 사용하는 Qt 프레임워크가 6로, 디스플레이 서버 프로토콜 기본값이 X11에서 Wayland로 변경되었다는 것입니다.

    Qt 6로 변경되면서 기존 Qt 5 기반의 Plasmoid 위젯들은 모두 Plasma 6와 호환되지 않습니다. (물론 Qt 5 애플리케이션들은 이전처럼 잘 돌아갑니다)

    macOS와 Android를 섞은 듯한 패널을 띄워 사용하고 있었는데, 여기에 Latte Dock을 포함해 Qt 5로 되어있는 위젯들이 상당히 많이 들어가 있었습니다. 결국 하는 수 없이 Breeze 기본 패널 구성으로 되돌아 간 뒤 처음부터 모든 패널을 재설계 했습니다.

    일부 앱의 기능을 쓸 수 없겠지만, X11을 계속 쓸 수는 있습니다. 다만, X11이 너무 오래되기도 했고, 다가오는 미래에 대비해야 하기도 하기에, 저 또한 기본값을 따라 Wayland로 이동했습니다.

    이 과정에서 Fcitx를 못 쓰게 되었습니다. Fcitx가 아직 Wayland를 지원하지 않기 때문에, 서비스가 켜지기는 해도 대부분의 앱에서 사용할 수가 없습니다.

    결론적으로, 어느정도 Wayland를 지원하는 ibus로 이전했습니다. 한글과 일본어(mozc) 입력기 또한 건재합니다.

    Plasma 5와 비교하여 큰 UI 상의 차이점이 없습니다. 기본 전역 테마도 그대로 Breeze를 사용하고 있습니다.

    다만, systemsettings를 포함한 몇몇 앱의 UI가 변경되었고, 추후 Plasma 버전 업데이트로 계속 변경될 예정이므로, 시간을 두고 지켜볼 일이긴 합니다.

  • Windows 10 보안 업데이트(KB5034441) 오류 해결 시도를 빙자한 삽질기

    다니고 있는 회사에서 월간 보안 점검 지시가 내려와서 Windows 10 기반 컴퓨터에서 업데이트를 진행했어요.

    업데이트가 몇개 있다고 했고 설치를 했어요. 네 일단 대부분은 설치가 돼요.

    근데 딱 하나의 업데이트가 이런 오류를 띄우면서 설치가 되지 않아요. 어어 왜지? Windows Update 서비스를 껐다 켜봐요. 마법의 주문 sfc /scannow도 돌려봐요. 둘 다 안돼요.

    … 이건 뭔가 이상해요.

    구글링을 해봐요.

    알려진 이슈가 여러 개 있네요. https://kbench.com/?q=node/251807 내용을 읽어보니 어어 느낌이 많이 좋지 않아요.

    이거 어째 KB5034441 업데이트가 지원되는 모든 OS를 대상으로 한다면서 정작 Windows 10 환경에서의 기능 검증이 거의 안 된 채로 릴리즈된 폭탄인 모양이예요. 더 큰 문제는 마인크래프트 인증 서버도 몇날 며칠동안 터진 채로 놔두는 MS답게 저게 고쳐지기까지 엄청난 시일이 걸릴 것 같아요.

    다른 글을 보니 직접 업데이트 오류 해결을 시도했다고 하네요. 이걸 한번 따라해 봅시다.

    diskpart를 열고 C:에 해당하는 파티션의 용량을 약간 축소하고, 있던 복구 파티션을 지운 다음, 늘어난 빈 공간을 새로운 복구 파티션으로 다시 만들었어요.

    일단 복구 파티션의 용량은 늘었어요. 근데 Windows 복구 서비스가 시작이 되지 않아요. 업데이트 설치가 실패하는 문제도 여전히 해결이 되지 않았어요.

    그냥 차라리 이걸 강제로 설치하려 시도하는 건 포기하고 업데이트가 고쳐지기까지 기다려야겠어요.

    아 참. MS가 Windows 업데이트를 배포하면서 이런 실수를 저지르는건 연례행사 마냥 자주 있는 일이예요.

    XP, 7 시절에도 겪었던 문제고 그 때는 업데이트 하나 깔았다고 OS가 깨지거나 그 전설의 “Windows Update 구성 실패”가 뜨는 등 증상이 더 심했거든요.

    국내외로 논란이 한창 일어난 상황이라 적어도 MS 측에서 상황 인지는 했을텐데, 빨리 고칠 수 없는 상황이면 적어도 업데이트 배포 중지라도 해 줬으면 좋겠어요.