삼성 SCR01 가지고 놀기

100유로 내에서 구할 수 있는 5G 지원 휴대폰도 하나 필요했고, 마침 미디어텍 5G 휴대폰도 있었다가 없어진 상태에서 삼성 SCR01이 레이더에 들어왔다. 문제는 일본-독일 직배송이나 배대지가 일본-한국 배대지보다 훨씬 비싼 탓에 SCR01 구매를 꽤 오랫동안 미루어 왔고, 한국에 갔다 온 김에 SCR01도 사서 돌아왔다. 여러 한국 사이트에서 SCR01 구매처나 기본적인 설정 방법에 대해서는 많이 알려져 있기 때문에 이 글에서는 다른 곳에서 찾아보기 힘든 것들 위주로 SCR01을 뜯어 볼 생각이다.

5G SA 테스트

한국 통신사들의 28 GHz 맥거핀에 묻혀서 5G SA는 등한시되고 있다. 커뮤니케이션 모드가 일반(ST)과 플러스 지역(+A)으로 나뉘어 있는데, AUG2 펌웨어 기준 LTE에서의 UECapabilityInformation을 비교해 봤을 때 NR Band n28이 활성화되느냐 아니냐 차이가 있는 것 같았다. 한국이라면 NR n78만 있기 때문에 상관이 없지만 다른 밴드는 통수를 당할 수도 있는 것 같다.

한국이라면 전환할 필요가 없을 듯

MediaTek 유틸리티 사용법

액티비티 런처를 설치하면 시스템에 설치된 모든 APK에서 제공하는 액티비티를 보거나 실행할 수 있으며, 미디어텍에서 제공하는 시스템 앱은 꽤 다수가 잘렸거나 삼성 앱으로 대체되었지만 다행히도 Control Plane 디버깅에 유용한 DebugLoggerUI는 잘리지 않았다. MainActivity를 실행하면 로그 제어 화면이 나오고, 휴대폰 내부 저장소에 저장된 로그는 나중에 빼내서 미디어텍 ELT를 통해서 볼 수 있다. ELT를 구하는 방법은 이 글에서는 설명하지 않겠다. 아 물론 *#9090# -> SilentLog는 다른 삼성 휴대폰처럼 그대로 살아 있다.

땡큐 삼성

또 다른 맥거핀 GSM 활성화?

안 되더라. 별의별 방법을 써 봤는데 대역 해금에는 실패. 모뎀 테스트 메뉴에서 밴드 활성화 메뉴를 들어가 봐도 GSM이나 3G 자체는 보이지 않아서 포기했다.

같이 보기

조합형 글꼴의 기술 분석

한글 인코딩에 관한 조합형 완성형 논쟁은 유니코드에서 완성형과 조합형 모두를 수용하는 방식으로 종결되었지만, 한글 글꼴 구현에는 조합형 완성형 논쟁의 잔재가 아직까지도 남아 있고 글꼴을 갖다 써야 하는 곳에 따라서 과거의 조합형 글꼴을 아직도 써야 하는 경우가 생길 수도 있다. 당장 일부 한글 글꼴이 완성형 2350자 이외의 글자에 대한 글리프가 없어서 해당 글자를 입력하면 깨지는 것도 이 시기의 잔재이다. 디스플레이 화소 수가 적고 메모리 공간이 KB 대에서 노는 임베디드 환경이라면 조합형 글꼴(조합형 인코딩이 아님!)로 한글을 표시하는 게 유리할 수 있다. 한글 낱자가 들어오면 그것들을 나눗셈과 나머지 연산으로 자소 단위로 분해하고 수백개의 글리프 중 최대 3개를 OR 조합해서 표시하는 게 2350/11172자 모두의 글리프를 들고 있다가 표시하는 것보다 데이터 양은 더 적게 필요하다. 그 동안 도스 시절의 한글 바이오스나 컴퓨터 역사 초기의 한글 구현을 분석하면서 알게 되었던 각종 조합형 글꼴 구성을 이 글에서 정리하고자 한다.

8x4x4 조합형 글꼴

상당히 많은 곳에서 쓰이고 있는 조합형 글꼴 구성 방식이다. 원리는 지금도 잘 알려져 있고 명세를 구하는 것도 어렵지 않다(링크). 초성 8벌, 중성 4벌, 종성 4벌에 해당하는 글리프를 미리 만들어 두고 자모의 종류에 따라서 서로 다른 글리프를 사용한다. 8x4x4 조합형의 구현체는 많은 곳에서 찾을 수 있기 때문에 해당 조합 방식의 글꼴을 사용하는 곳과 추출하는 방법만을 여기에서 소개한다.

  • 글꼴 통합 변환기(링크): 8x4x4 조합형 글꼴을 BDF나 TTF 형식으로 변환할 수 있다.
  • 한글을 자유롭게 1.54(링크): 실행 파일 한 개로 구성된 한글 바이오스이다. 실행 파일 자체는 DIET 패커로 압축되어 있기 때문에 일단 압축을 풀어 주어야 비트맵을 추출할 수 있다. 글꼴은 한 종류만 들어가 있다.
  • 한글 1.2, 1.5: 이 시기의 한글은 HFT 글꼴을 사용하지 않았고 프린터용 PFT와 화면용 SFT 글꼴을 사용했다. SFT 파일 형식은 헤더 32바이트만 잘라내면 나머지는 바이너리 비트맵이다.
  • 태백한글 1.01, 1.5, 2.0, 3.0, 3.5: 글꼴은 전 버전 모두 FNT 확장자를 사용하며, 바이너리 비트맵이기 때문에 글꼴 통합 변환기에서 처리가 가능하다. 단 태백한글 3.0 이후의 24×24 등 16×16 초과 글꼴은 글꼴 통합 변환기로는 처리가 불가능하다.
  • 미니 한글 라이브러리: 소스 코드의 FONT.C 파일에 8x4x4 비트맵이 하드코딩되어 있다.
  • HT: 실행 파일은 LZEXE로 압축되어 있다. 파일의 압축을 풀면 8x4x4 비트맵이 내장되어 있다.
  • 도깨비 1.2, 1.?: FNT 파일은 8x4x4 조합을 사용하고 있다.

10x4x4 조합형 글꼴

8x4x4 조합형에서 초성 글리프가 두 벌 더 들어간 형태이다. 중성과 종성 조합 규칙은 8x4x4와 동일하나 초성 조합 규칙은 살짝 다르다. 글꼴 통합 변환기의 hanlib/Table8x4x4.c 파일과 hanlib/Table10x4x4.c 파일을 비교하면서 보면 이해할 수 있다. 아래에 있는 두 종류의 10x4x4 조합형 글꼴은 높이 문제 때문에 그대로 통합 변환기에 전달할 수는 없으며 적절하게 높이를 조정해 줘야 한다.

  • GSVIP(금성 한글 BIOS) 3.52: 글꼴은 GSF 확장자를 사용한다. 용량을 줄이기 위해서인지 16×16 글꼴임에도 불구하고 초성, 중성, 종성의 세로 높이는 각각 벌마다 일정하지 않다. 아래 그림은 의도적으로 16×16 사각형에 모든 벌을 출력하도록 설정했으나, 초성과 종성은 세로 출력 위치를 조정해 주어야 제대로 된 글자를 볼 수 있다.
  • HECON(대우통신 한글 BIOS) 4.00.20: HECON.EXE 파일에 내장된 글꼴도 이 쪽에 속하지만 역시 높이가 일정하지 않다. HE24.SYS 파일의 24×24 한글 글꼴은 12x2x4 조합을 사용한다.
GSVIP 한글 글꼴 예제
GSVIP 한글 글꼴 예제

14x6x4 조합형 글꼴

아직까지 이 조합형을 사용하는 곳은 삼보컴퓨터 계열밖에 보지 못했다. 초성 벌 수가 상당히 많이 들어가 있다는 것이 특징이며, 중성은 x6이라고 쓰기는 했으나 일부 중성만 6벌이 들어가 있고 대부분 중성은 3벌만 들어가 있다. 아직까지 정확한 조합 방법을 찾지는 못했다. 특이하게 아래아가 중성 조합 중에 들어가 있다.

  • TGHP 1.20: HAN16.FNT와 HAN24.FNT에 각각 16×16, 24×24 글꼴이 들어가 있다. 24×24 글꼴은 초성 조합 벌 수가 13이나 12벌인 경우가 있다.
  • GHCON 1.0: GHCON.DAT 파일 내에 모든 것이 다 들어가 있다.
GHCON 한글 글꼴 예제

기타 조합형 글꼴

  • 도깨비 한글 5.1: DKB16.FNT 파일을 열어 보면 일부 자모는 완성되어 있고 일부 자모는 거기에 추가로 조합된다. 저작권 공지: “한글도깨비 폰트카드를 한글도깨비4 이외의 용도로 사용할 경우 반드시 저작권자의 사전 동의를 받아야 합니다.”
  • 한메 한글 1.01, 3.1: HANME.FNT 파일은 5x2x3 조합을 사용하지만 BE/HAN.FNT 파일은 8x4x4 조합을 사용한다.
  • 한라프로 3.0: 다양한 조합형 글꼴을 구현하고 있는 한글 라이브러리이다. 각각 글꼴 처리법은 소스 코드에서 참조가 가능할 듯.
    • HAN10MD1.FNT: 10x4x4
    • HAN121GD.FNT: 1x2x1
    • HAN113GD.FNT: 1x1x3
    • HAN212GD.FNT: 2x1x2
    • HAN213GD.FNT: 2x1x3
    • HAN412GS.FNT: 4x1x2
    • HAN5GD1.F24: 5x2x2, 24×24
    • HAN7GD1.F24: 7x2x2, 24×24
    • HAN8GD1.FNT: 8x4x4
  • 한맥한글 3.0: 글꼴마다 조합 규칙이 살짝살짝 다르다.
  • 우리글 2.1 데모: HANPAN3.HSF 파일에서 10x2x2 조합을 사용한다.

분석 유틸리티

  • Crystaltile2(https://www.romhacking.net/utilities/818/): 바이너리 파일에 있는 데이터를 임의의 크기 비트맵으로 간주하여 볼 수 있는 유틸리티이다. 압축되지 않은 한글 비트맵 글꼴을 분석할 때 간편하게 사용할 수 있다.

코시국에 한국가기 – 2. 비행기표 예약과 한국행까지

격리면제서가 날아가서 결국에는 자가격리는 불가피하게 되었지만, 한국행은 이미 오래 전부터 예정되어 있었기 때문에 비행기표는 그냥 있는 그대로 끊었다. 2021년 12월 현재 루프트한자는 프랑크푸르트/뮌헨발 서울행을 각각 4회/3회 굴리고 있고 이걸 합치면 독일발 한국행이 매일 뜨고는 있다. 그러나 나는 출발지가 어차피 베를린이기 때문에 환승을 하기는 해야 하고, 인천국제공항에 도착해서도 목적지가 부산인데다가 김해국제공항으로 직접 들어올 수가 없기 때문에 환승 여부는 크게 중요하지 않았다. 그렇지만 PCR 검사가 어떻게 되는지는 알 수가 없고 일정이 역시 어떻게 변경될지도 알 수 없기 때문에 예약 변경이 가능한 표를 끊기로 했다.

글을 쓰는 시점에서 루프트한자의 이코노미는 Basic/Basic Plus/Flex로 나뉜다. 셋 다 예약 변경 수수료는 없지만 차이는 환불 가능 여부에 있고, 나는 어차피 환불할 계획이 없기 때문에 이코노미 Basic을 그냥 끊었다. 게다가 무료 수하물에도 차이가 없기 때문에 굳이 예약 취소를 감안하고 티켓을 살 필요는 없었다.

아 물론 이 가격에 비행기 표를 끊었다는 거는 아님

문제는 독일에서 받아야 할 택배가 있었기 때문에 비행기 표를 좀 늦추었는데, 온라인으로 예약을 변경하려고 보니 불가능했다. 루프트한자 독일 콜센터는 참 악명이 높다는 말이 있었지만 그 동안에는 예약을 변경할 일이 없어서 가만히 있었는데, 이렇게 되고 보니 불가피했다. 콜센터 자체는 24시간 영업 중이긴 하지만 통화 성공률이 하늘의 별 따기라는 것을 이 기회에 느낄 수 있었다. 나만 하더라도 거의 5회 정도 기다린 끝에야 통화에 성공할 수 있었다. 독일 업무 시간 이외에 전화한다면 영어로 통화하는 게 성공 확률을 높여 주지 않을까 기대를 했는데, 뭐 성공하기는 했다. 문제는 그 통화라고 해도 거의 50분 가까이 대기를 하다가 연결이 되었다. 휴대폰 요금제에 통화 무제한이 끼어 있어서 다행이지, 아니었다면 꽤나 통화료가 나왔을 것이 예상되는 순간이었다.

루프트한자 잊지 않겠다

그리고 출발 2일 전에 PCR 검사를 예약했다. 베를린에서는 direkttesten.berlin 사이트에서 PCR 검사가 가능한 검사소 정보를 제공하고 있다. “Bietet bestätigende PCR Tests an” 옵션을 선택하면 PCR 검사소를 볼 수 있고, 지도에 표시된 핀을 클릭하면 검사소 정보를 볼 수 있다. 문제는 무료로 할 수 있는 신속항원검사(Bürgertest라고도 불림)와는 다르게 “여행” 목적의 PCR 검사는 가격 상한선이 없고, PCR 검사 속도와 검사소에 따라서 가격이 다르다. 내가 예약한 곳에서는 약 60유로에 당일 PCR 검사가 되었는데, 이 가격으로는 다른 검사소에서는 36시간 정도에 검사가 가능하다. 이 검사소에서는 가글로 시료를 채취하는데, 가글액이 가급적이면 목까지 닿아야 한다고 현장에서 안내를 받았다. 한국에서는 가급이나 면봉 둘 다를 인정하기 때문에 이 방식도 가능하다. 오전 11시에 시료를 채취했고, 검사 결과가 나온 것은 오후 11시 정도였다. 이제 이걸 혹시나 몰라서 미리 3부 정도 인쇄해 두었다. 한국에서 유효한 PCR 검사 결과로 인증(질병관리청 참고)하는 성명, 생년월일, 검사 방법, 검사 일자, 검사 결과, 발급 일자, 검사 기관명은 모두 나와 있었다.

없으면 비행기 입구컷 당함

베를린 공항에서는 접종 상태를 간단히 확인했고, 저 문서 확인은 뮌헨 공항에서 한국행 게이트 앞과 인천국제공항에서 제대로 했다. 뮌헨 공항에서는 한국행 게이트 앞에 별도의 인원을 배치하여 문서가 있는 사람들에게는 항공권에 별도의 스티커를 붙여 주고 있었다. 뮌헨발 서울행은 A350으로 운항하고 있는데 비행기의 1/3-1/2 정도만 차 있는 듯한 느낌이었다. 그래서 일부 사람들은 3열 시트를 전부 차지한 채로 누워 가는 경우도 있었다.

이 와중에 한국 입국에 필요한 건강상태 질문서에 평소 지병이었던 비염 때문에 기침이 있었다고 표시를 했으나, 이것 때문에 인천국제공항에서 유증상자 취급받아서(입국 당시에는 증상이 없었음) 입국도 나머지 사람들과는 따로 해야만 했다. 그리고 입국 심사를 금방 통과하지 못하고 인천국제공항에서 떨어져 있었던 국립검역소로 별도의 차량으로 이동하여 PCR 검사가 나오기까지 추가로 6시간을 대기해야 했다. 이렇게 표시했던 사람들 중에는 실제로 기침이 좀 심했던 사람도 있었고 PCR 검사 결과가 실제로 음성이었던 사람도 있었다. 약 절반은 무사히 풀려 나왔고 나머지 절반은 PCR 검사 결과가 미확정이었거나 다른 증상이 있어서였는지 풀려 나오지 못한 사람도 있었다. 이렇게 하는 이유가 이해는 갔지만 막상 당해 보니 “아 여기는 한국이었구나”라는 생각도 같이 들었다.

집으로 이동한 다음에는 원래로는 다음 날 보건소에 출석하여 검사를 받았어야 했지만, 이미 인천국제공항 검역소에서 PCR 음성이 나왔기 때문에 도착 후 검사는 생략할 수 있었다. 이제는 자가격리 10일이 지나야 다시 풀려나올 수 있다.

코시국에 한국가기 – 1. 격리면제서 발급

코로나19가 많은 것을 바꿔 놓긴 했지만, 가장 큰 것을 꼽아 보자면 역시 여행이 아닌가 싶다. 2020년에는 세계 대부분 공항의 이용객 수가 수직 낙하했고, 2021년에 와서는 슬슬 회복되어 가고는 있다. 나도 여기에서 예외는 아니었기 때문에 근 3년 동안 베를린 밖을 벗어났던 적은 손에 꼽을 정도이고, 한국에는 물건만 갈 수 있었지 내가 가는 것은 상상도 하기 어려웠다. 아, 코로나19로 인한 정신적인 피폐해짐은 여기에서 따로 언급하지 않겠다.

2020년 한 해 동안은 거의 묶여서 지내다가, 2021년부터 백신이 천천히 보급되기 시작했고 제1세계에 사는 사람이라면 아마 이 시점에서는 “자기가 맞기 싫어서” 안 맞은 경우를 제외하자면 어떻게든 코로나19 백신을 구했을 것이라고 본다. 그게 없었던 시기에는 한국에 입국하려면 자가격리가 강제되었기 때문에 가고 싶어도 엄두를 못 냈던 사람이 꽤 많았다고 기억한다. 나 또한 6월과 7월에 백신을 맞았기 때문에 언젠가는 한국에 들어갈 때 도움이 되겠지라고 생각하고 있었고, 적절한 시점에서 잠시 한국 방문을 계획할 수 있게 되었다.

한국 밖에서 예방 접종을 맞은 사람을 한국에서 어떻게 인정해 줘야 할 것인가가 2021년 중반에 나온 이후로 결국 예방 접종 인정 자체는 격리면제서의 형태로 2021년 8월부터 일부분은 가능하게 되었다. 그러나 한동안은 해외에서 예방 접종을 받는다고 하더라도 한국에서의 사회적 거리두기 규칙에서는 백신 미접종자와 거의 동일하게 취급했기 때문에, 내심 “아 이거 한국에 예방 접종 기록 등록하지 말고 4차까지 맞아 볼까”라는 생각을 하고 있었다. 그러나 이 문제도 어느 정도는 해결되어 가는 눈치였기 때문에 그 생각은 그만두고 격리면제서 발급이나 받자!로 마음을 바꿨다.

일단 항공권을 발권한 다음 시간적 여유가 있을 때 격리면제서를 받아 두기로 했다. 격리면제서의 유효 기한은 1개월이기 때문에 엄청나게 빨리 준비할 필요는 없으며, 코로나19로 인한 항공편 운행 상황을 알기 힘들기 때문에 적절한 시점에서 항공권을 발권했다. 요새는 비행편이 취소되거나 PCR 검사를 실패해서 비행기를 못 타는 경우도 있을 수 있기 때문에, 싸다고 취소나 여정 변경 불가 항공권을 끊기보다는 좀 돈이 더 들더라도 변경 가능한 항공권을 끊는 게 더 나을 수 있다. 여행자 보험이 있다고 하더라도.

(경고: 지금부터의 내용은 빠르게 변경될 수 있음. 주 독일 대한민국 대사관 공지 참고)

준비해야 할 서류 자체는 재외공관마다 거의 동일하다. 독일에 있는 한국 재외공관이라면 주별로 관할이 나뉘어 있기 때문에 독일 내 주소를 증명할 수 있는 서류가 필요하다(Aufenthaltstitel 카드 뒷면 스캔으로 충분). 그리고 독일 기준으로는 Impfpass(개인 신상 정보면과 코로나19 접종 기록 필요), EU 디지털 인증서를 위한 QR 코드가 인쇄된 종이나 앱에 등록 후 캡처한 부분이 필요하다. 문제는 QR 코드나 앱 캡처 화면은 2/2만 있으면 되는 게 아니라 1/2, 2/2가 모두 나와 있어야 하고, 내 경우에는 독일에서 CovPass 앱이 시행되기 전에 모더나로 1차 접종을 맞았기 때문에 1차 접종을 증명하는 QR 코드가 따로 없었다. 그리고 1차 접종을 받았던 시점에서는 Impfpass를 잃어버려서 1차 접종은 Impfzentrum에서 나눠 준 별도의 종이에 백신 LOT 번호 스티커가 붙어 있었고, 나중에 받은 Impfpass 상에는 1차 접종이 사후에 옮겨서 기록된 걸로 나와 있었기 때문에 Impfpass뿐만 아니라 1차 접종 당시 접종 센터에서 나눠 준 종이까지 같이 스캔해서 첨부했다.

필요한 Impfpass 스캔본의 예시. 악용 내지 도용 방지를 위해서 불필요한 부분은 가림.

모든 문서를 스캔한 후 파일 하나로 만들어서 제출해야 했기 때문에 여기에서 삽질을 좀 했다. 가족관계증명서는 공동인증서 등 한국 인증서가 하나도 없기 때문에 집에 부탁해서 스캔본을 받았다. 나머지 모두는 복합기로 스캔한 다음 최종적으로 pdftkimg2pdf를 사용하여 PDF로 이어붙였다. 뭐 여기가 pdftk나 img2pdf 사용 방법을 설명하는 곳은 아니므로 자세한 방법은 생략.

재외 공관이나 체재 지역마다 격리면제서 발급 담당 이메일 주소가 전부 다르기 때문에 자세한 사항은 각국 대사관 홈페이지를 참조해야 한다.

신청한 후 며칠 지나서 이메일로 격리면제서가 도착했으며, 이제 이걸 4부 인쇄해서 들고 들어가면 된다.

2021-12-03 업데이트: ㅋㅋㅎㅎㅅㅂㅅㅂㅅㅂㅅㅂ… 결국 이 모든 소용이 뻘짓이 되어 버렸다. 입국 예정 일자는 12월 16일 이후기는 한데, 그 때의 자가격리 정책이 어떻게 될지는 지켜봐야 할 일.

가정용 공유기의 甲 FritzBox 소개

독일은 1981년 헬무트 슈미트 총리 집권 시기에 향후 30년간 전 (서독) 국토에 광 케이블을 설치하려고 계획했으나, 후임인 헬무트 콜 총리 당시 예산을 아낀다는 핑계를 대고 광 케이블 설치 계획을 취소하고 케이블 TV로 바꿔 버리는 바람에 지금도 유럽에서 FTTx 보급률이 낮은 편이고 닳고 닳은 전화선과 케이블 인터넷을 어떻게든 우려먹고 있다. VDSL Vectoring으로 250 Mbps를 뽑아내는 똥꼬쑈! 그래서 독일에 도착해서 인터넷을 신청하려고 하면 DSL이냐 케이블이냐 둘 중 하나가 대부분이고, FTTH는 들어온다면 로또를 맞았다고 생각하면 된다. 유선 인터넷 회사에서는 보통 DSL/케이블 모뎀+Wi-Fi 라우터 기능을 하는 장비를 (대여해) 주거나 사용자가 직접 모뎀을 설치할 수 있다. 비록 통신사 쪽에서는 좋아하지 않는 눈치긴 하지만 2016년 8월 1일에 법제화되었다(키워드: Routerfreiheit/Routerzwang). 한국에서 ipTIME 같은 걸 들고 왔다고 해도 그대로 쓸 수 없고 쓸 필요도 없는 게 이것 때문이다. 인터넷이 들어오는 방식이 다르기 때문.

내가 독일에 처음 왔을 때에는 DSL 모뎀+OpenWRT 설치가 가능한 Wi-Fi 공유기를 생각하고 있었으나 이걸 하고 싶어도 방법이 거의 없었다. DSL 모뎀만 따로 사려고 하니까 잘 찾지를 않는 건지 오프라인상으로는 구하기도 어려웠고, 그렇다고 통신사에서 제공하는 공유기를 쓰고 싶지는 않아서 2015년 당시의 DSL 최신 기종인 FritzBox 7490(출시는 2013년)을 사 버렸다. (협찬받은 거 그런 거 없음)

FritzBox 7490
FritzBox 7490

나중에 알게 된 사실이긴 하지만, Ubiquity나 MikroTik 같은 기업용 딱지 붙은 거 빼고 가정용 딱지 붙은 것 중에서는 순정 소프트웨어 상태가 최고라고 할 수 있다. 기본 제공하는 기능이 단순히 DSL 모뎀+Wi-Fi뿐만 아니라 VoIP 게이트웨이(DECT, ISDN/POTS, SIP 전화 붙이기 가능), 간이 NAS(USB 저장 장치 연결 필요), IPSec VPN, DNS over TLS 등 하이엔드 공유기 라인업에서나 볼 수 있는 것들이 기본 내장되어 있다. 집에 설치해 둔 필립스 Hue 스마트 전구를 Home Assistant와 ZigBee 모듈을 사용해서 별도의 Hue 브리지 없이 사용하고 있는데, 일부러 스마트 홈을 인트라넷에 가둬 뒀기 때문에 접속하려면 VPN을 타고 가야만 하도록 만들어 놨다. USB 포트에 LTE 모뎀을 연결하면 DSL이나 케이블이 죽었을 때 자동으로 LTE로 전환하는 기능도 있고, 인터넷 이전이나 신규 설치가 꽤 오래 걸리는 독일 특성상 이걸 잘 써먹기도 했다. DECT 베이스 스테이션 기능을 사용해서 VoIP 서비스를 무선 전화기로 곧바로 사용할 수도 있다. 이미 독일에서는 2020년 Deutsche Telekom이 ISDN 공중 전화망을 다 걷어내 버려서 집전화가 거의 VoIP 기반으로 굴러 가고 있다는 점도 감안해야겠지만.

WPA3 지원
WPA3 지원
IPSec VPN 지원
IPSec VPN 지원
DECT 베이스 스테이션 지원
DECT 베이스 스테이션 지원

단순히 기능뿐만 아니라 보안에도 신경을 많이 쓰고 있다. 칩셋 벤더의 역량에 따라 다르긴 하지만 주어진 한계 내에서는 리눅스 커널 버전을 잘 따라가고 있다. FritzBox 7490이 출시 당시에는 리눅스 커널 2.6.36을 사용했지만 지금은 3.10/4.4(Wi-Fi 서브시스템)까지 올라가 있다. 심지어 GPL 아카이브에는 가정용 공유기에서는 쉽게 찾아보기 힘든 AppArmor까지 적용해 둔 걸 확인할 수도 있다. 그리고 출시된 지 7년이 지난 모델에 WPA3 암호화를 제공해 주는 것도 포인트. 외부에서 라우터 설정 페이지에 접근할 때 DDNS 도메인으로 Let’s Encrypt 인증서를 찍는 것도 다른 공유기에서는 찾아보기 힘든 기능 중 하나다. AVM 홈페이지에서는 구형 모델의 기술 지원 중단 날짜를 아예 게시해 두었고, GPL을 준수하는 방법을 한동안 하던 국내 회사와는 다르게 펌웨어 버전별로 오픈소스 소스 코드를 잘 공개하고 있다. 몇 술 더 떠서 펌웨어 업데이트에서 보안 업데이트 내역만 따로 뽑아서 고지하거나, 각종 보안 문제에 어떻게 영향을 받는지를 별도로 공지하는 회사? 얼마나 있나? 2016년에 케이블 모뎀에 들어가는 DOCSIS CA 인증서 배포 문제 때문에 CA 인증서를 한 번 갈아엎은 적도 있었지만 이것도 보안 공지에 명시되어 있다.

MyFritz: Let's Encrypt 인증서를 찍어 주는 기능 기본 내장
MyFritz: Let’s Encrypt 인증서를 찍어 주는 기능 기본 내장

대신 이렇게 순정 펌웨어에 기능이 상당히 많이 들어가 있다 보니 도리어 OpenWRT를 올리기는 까다로운 편에 속하고 올리려는 시도도 적은 편이다. 실제로 OpenWRT 위키에 있는 AVM 장치도 대부분 지원이 중단된 모델 위주고, 현역이라고 할 수 있는 모델은 하드웨어 구조가 상대적으로 간단한 FritzBox 4020, 4040, 7530 정도이다(DSL은 OpenWRT에서 미지원). 지금 쓰고 있는 7490도 하드웨어 구조가 특이한 편에 속한데, 메인+DSL SoC로 Lantiq VRX288을 사용하는 것 자체는 평범하다. 그러나 Wi-Fi 칩셋으로 Lantiq WAV 시리즈를 사용하는 게 아니라 그 자체로도 공유기를 만들 수 있는 QCA9558+PCIe로 연결되는 QCA9880을 사용하고 있다. 한 술 더 떠서 USB 3.0 포트 두 개는 SoC가 아니라 PCIe로 연결해 둔 uPD720202 칩셋으로 돌아간다. 최신형 802.11ax 지원 6660 Cable은 그나마 구조가 정상적인 인텔 Puma 7+MaxLinear DOCSIS 프론트엔드+WAV600 구성이긴 하지만.

AVM의 주요 시장이 독일을 비롯한 유럽이고, 주력 모델이 DSL/케이블 내장형이라서 한국에서 사용하기에는 불필요하게 가격을 상승시키는 원인일 뿐이라서 이걸 공유기로 쓰려고 한국에서 굳이 구해다 쓰는 사람은 아직까지는 많이 보지 못한 것 같다. 심지어 Home Assistant 한국어 번역 프로젝트에서는 이걸 “독일통신사“로 착각하기도 했다. 7490 독일판도 한동안은 펌웨어 언어가 독일어만 지원했고 영어를 비롯한 타 언어 지원은 7.21 들어서야 추가되었다. 한국에서 이걸 쓴다면 기능을 100% 다 살릴 수는 없지만 방법이 아주 없는 것은 아니다.

독일에서 주력으로 팔리고 있는 모델은 DSL 모델과 케이블 모델이고, 유선 통신사에서 주는 모뎀+공유기도 대부분 DSL/케이블+Wi-Fi 내장형이기 때문에 한국산 공유기처럼 이더넷 포트만 달려 있는 모델은 주력 제품이 아니다. LTE 지원 모델 중 6890은 DSL+LTE, 6850과 6820은 LTE만 지원한다. 독일에는 FTTH가 되는 집은 로또 당첨이기 때문에 광 케이블 모델이 있기는 하지만(5490, 5491) 이건 일반 시장용으로는 풀지 않았고 ISP에 OEM으로만 들어갔다. 4040과 4020은 한국 공유기와 비슷하게 이더넷만 사용하지만 독일 유선 인터넷에 모뎀 단독으로 쓰는 환경은 거의 없기 때문에 이것도 주력 제품과는 거리가 있다.

그래서 한국에서 FritzBox를 사용하고 싶다면 차라리 DSL 모델이 가격 할인할 때 사는 것이 지원 받기에 그나마 나은 옵션이다. 독일 내에서 주력 상품이라서 펌웨어 업데이트도 잘 되고 있고, 내장 DSL 모뎀은 비활성화해 두고 기존 인터넷과 연결해서 사용하는 것도 가능하기 때문이다. 대신 이 경우 LAN 포트 하나를 희생해야 하지만. 결정적으로 DSL 모델은 리눅스 셸에 접근할 수 있지만 케이블 모델은 DOCSIS 보안 문제 때문에 셸 접근이 일반적으로는 막혀 있다.

FritzBox의 DSL 모뎀을 비활성화하고 공유기처럼 쓰기
FritzBox의 DSL 모뎀을 비활성화하고 공유기처럼 쓰기

만약 한국에서 DSL 모뎀으로 사용해야 한다면 Annex 설정에 주의해야 한다. 독일은 공중 전화망으로 ISDN을 활발하게 사용한 나라인데, ISDN은 아날로그 집전화보다 대역을 더 넓게 사용했다. 그래서 ADSL/VDSL을 도입할 때에도 ISDN 주파수 대역을 피해야 했기 때문에 업링크 주파수 대역이 다른 나라보다 고주파에서 시작한다. 아래 그림과 같이 주파수 대역을 Annex A, Annex B와 같이 구별한다. 독일은 Annex B를 사용하고 있고 나머지는 대부분 Annex A를 사용하고 있다. Annex 변경은 대부분 기종이 지원하기는 하지만 구형 독일판 모델은 Annex B에 고정되어 있을 수도 있으니 이걸 조심해야 한다. 그리고 PPP 인증 정보도 옮겨 심어야 하는데 기존 모뎀에서 복사하거나 통신사에 문의하는 방법밖에는 없다.

ADSL Annex Overview by Cvdr, Licensed under Creative Commons Attribution-Share Alike 3.0 Unported.

반면 케이블 모뎀의 경우 골때리는 문제가 몇 가지 있다. DOCSIS 3.0까지는 미국식 DOCSIS와 유럽식 EuroDOCSIS가 나뉘어 있고, FritzBox가 공식적으로 지원하는 것은 EuroDOCSIS이다. 둘 사이의 가장 큰 차이점은 다운링크 채널 대역폭이 DOCSIS는 6 MHz, EuroDOCSIS는 8 MHz이다. 이외에도 주파수 특성이 다른 것이 있지만 자세한 기술적인 정보는 생략. NTSC와 PAL 시절 채널 대역폭이 달랐던 것이 케이블 방송에도 그대로 적용되었고 이게 DOCSIS까지 타고 올라온 것이기 때문이다. DOCSIS 3.1 지원 모델은 글 쓰는 시점에서는 6660 Cable이 유일하다. EuroDOCSIS 3.0만 지원하는 모델이라면 한국 DOCSIS 망 신호를 잡지 못할 수도 있다. 여기에 더해서 DOCSIS 가입자 인증 문제가 있다. DOCSIS 인증은 케이블 모뎀의 MAC 주소와 장치별 인증서로 돌아가는데, MAC 주소와 장치별 인증서는 항상 1:1로 대응된다. 이론적으로는 통신사 고객센터에 MAC 주소를 불러 주고 이걸로 바꿔 달라고 할 수도 있지만, 기존 케이블 모뎀의 인증서와 MAC 주소를 복제하는 방법도 있다. 자세한 기술적인 방법은 케이블 모뎀마다 다르므로 생략. AVM의 기존 모델이 대부분 EuroDOCSIS 기반이고 미국에서 주력으로 팔렸던 적도 없었기 때문에 한국 CMTS에는 AVM의 인증서가 설치되어 있지 않을 수도 있다. 게다가 AVM은 2016년 DOCSIS 보안 취약점 사건 이후로 케이블 모뎀 내장형 FritzBox의 UART 사용 및 셸 진입을 아예 막아 버렸다. 일단은 이걸 뚫어야 DOCSIS 인증서를 심을 수 있기 때문에 기술적으로 자신이 없다면 안 하는 것을 추천한다.

VoIP 게이트웨이도 지원하기 때문에 이론적으로는 한국 통신사의 SIP 서버에 붙여서 쓸 수도 있지만 이건 아무도 시도해 보지 않았다. 게다가 SIP 인증 정보를 구하는 것부터가 일일 수도 있기 때문에 일단 그것부터 시작해야 FritzBox의 VoIP 기능을 한국에서 살릴 수 있을 것이다. 그리고 DECT 전화기를 사용한다면 주파수에 주의해야 한다. 독일에서 사용하는 DECT 주파수는 1880-1900 MHz고 FritzBox도 여기에 맞춰져 있다. 그러나 한국 DECT 주파수는 완전 갈라파고스인 1787 MHz에서 놀기 때문에 FritzBox에 한국 디지털 무선전화기를 붙일 수는 없다. 어차피 FritzBox가 SIP 서버로도 작동하기 때문에 SIP 다이얼러 앱을 사용하면 되므로 상관은 크게 없지만.

독일에서 좋든 싫든 FritzBox를 써 보게 되더라도 소프트웨어 품질은 생각한 것보다 상당히 좋을 수도 있다는 걸 생각해 봤으면 좋겠다.