블로그

  • ADHD가 아빠가 되면

    ADHD가 아빠가 되면

    진단

    ADHD 진단 받은 건 서하 태어나고 나서다.

    그전에도 뭔가 이상하다는 건 알았다. 물건 잃어버리는 빈도, 대화 중에 딴생각, 마감 전날 폭발적 집중. 근데 나름 살았다. 회사도 다니고 결혼도 하고. 문제가 보이긴 했는데 “원래 이런 사람이지” 하면서 넘겼다.

    서하가 나오고 나서 못 넘기겠더라.

    기저귀 가방을 30분 찾았다. 분명 소파 옆에 뒀다. 현관에 있었다. 언제 옮겼는지 기억이 없다. 젖병은 냉장고 위에서 나왔다. 냉장고 안이 아니고 위. 올려놓은 기억이 없다. 손이 그냥 거기 올려놓은 거다. 뇌가 관여 안 했다.

    병원 갔다. 의사가 말했다. “성인 ADHD입니다. 어릴 때부터 있었을 가능성이 높아요.” 담담하게. 처방전 받았다. 약은 아직 안 먹는다. 예약을 잡아야 하는데 예약 잡는 걸 까먹는다. ADHD 약을 받으러 가는 걸 ADHD 때문에 못 가는 거다.

    시스템으로 버틴다

    지오가 시스템을 만들었다. 젖병은 싱크대 왼쪽, 기저귀는 소파 옆, 이유식 도구는 서랍 셋째 칸. 나를 믿을 수 없으니까 환경을 설계하는 거다.

    합리적이다.

    ADHD 뇌는 루틴을 싫어한다. 같은 일을 같은 시간에 같은 방식으로 반복하는 건 고통이다. 근데 아기는 루틴이 없으면 세상이 끝난 것처럼 운다. 수유 시간, 낮잠 시간, 목욕 시간. 폰에 알람이 15개다. 8시 수유. 9시 반 놀이. 10시 낮잠. 12시 이유식. 2시 낮잠. 알람 울리면 “아 맞다” 하고 움직인다. 10개월째 매일 “아 맞다”를 15번 한다.

    동시에 세 가지가 무너진다

    서하한테 이유식 먹이고 있었다. 당근 퓌레. 숟가락으로 떠서 입에 넣어주는데 서하가 뱉었다. 옷에 묻었다. 닦으면서 폰 봤다. 슬랙 알림. 읽으면서 다시 숟가락 떠서 입에 넣는데 서하가 또 뱉었다. 이번엔 바닥. 닦으려고 일어나면서 가스레인지 위에 뭔가 올려놨던 거 생각났다 아 물 끓이고 있었다 달려갔더니 냄비가 다 졸았다 서하는 의자에서 울고 있고 폰은 바닥에 떨어져 있고 슬랙은 안 읽은 메시지 3개 당근 퓌레는 내 바지에 묻어있고

    숨을 쉬었다.

    이런 일이 매일 한 번은 있다.

    리코가 질투한다. 서하 오기 전엔 이 집의 유일한 아기였는데. 서하 장난감 물고 가고, 서하 옆에서 코를 들이밀고, 서하가 울면 같이 짖는다. 미안하다 리코야. 산책이 줄었다. 놀아주는 시간이 줄었다.

    아줌마 없었으면 무너졌을 거다. 상주 베이비시터 아줌마가 모든 걸 기억한다. 서하가 언제 먹었는지, 언제 잤는지, 기저귀 언제 갈았는지. 나는 20분 전 일도 기억 못 하는데 이분은 어제 서하가 몇 시에 뭘 먹었는지 분 단위로 안다.

    부모급여가 매달 100만 원 나온다. 0세. 아동수당 10만 원. 이게 없었으면 빡빡했을 거다. 기저귀값 분유값 이유식 재료비. 보조금24 앱에서 확인 가능하다. 돈 얘기를 왜 여기서 하냐면 ADHD 때문에 이 신청도 세 번 까먹고 네 번째에 했다.

    수면 부족이 전부를 악화시킨다.

    서하가 밤에 깬다. 한 번일 때도 있고 세 번일 때도 있다. 잠을 못 자면 다음 날 ADHD 증상이 확 심해진다. 물건 더 잃어버리고, 대화 더 못 따라가고, 짜증이 한계치를 빨리 넘는다. 커피 세 잔으로 버틴다. 버티는 건지 그냥 관성인지. 한번 끊어보려고 했다. 7일 갔다.

    서하한테 집중하고 싶다

    레고 쌓아주면서 머릿속으로는 다른 생각. 그림책 읽어주면서 슬랙 확인하고 싶은 충동. 바닥에 앉아서 같이 놀면서 5분 만에 폰을 든다. “지금 이 순간에 집중하자” 다짐한다. 3분 후에 폰 보고 있다. 이게 주의력 결핍이라는 거다. 의지의 문제가 아니다.

    근데 의지의 문제 아니라는 말이 면죄부는 아니다. 서하한테 미안하다. 매일 미안하다.

    새벽 6시. 서하가 깼다. 나한테 기어온다. 방긋 웃는다.

    잘하고 있는 건지 모른다. 오늘 서하가 웃었다. 그거면 됐다.

    피곤하다. 계획 세우다 하루 끝나는 이야기는 여기에 따로 썼다.

  • 리눅스 깔았다가 일주일 날림

    리눅스 깔았다가 일주일 날림

    결론부터 말하면 지금 이 Dell에서 글 쓰고 있다. 일주일 전에는 Windows였다.

    Dell 노트북. i7-8650U, 32GB RAM, WD Black 1TB. Windows 11 깔려 있었고 잘 돌아갔다. 아무 문제 없었다. 문제는 내가 지루했다는 거다.

    Arch를 골랐다

    첫째 날. Ubuntu나 Fedora 깔면 30분이면 끝난다. 설치 마법사 따라 클릭하면 된다. 근데 Arch를 골랐다. “I use Arch, btw” 밈 때문이라고 하면 좀 그런데 진짜 절반은 그 이유다. 나머지 절반은 Arch Wiki가 궁금했다. 리눅스 문서 중에 제일 잘 돼 있다고 하길래.

    Wiki 열었다. 스크롤이 안 끝난다. 디스크 파티션 나누고 파일시스템 포맷하고 pacstrap으로 기본 패키지 깔고 chroot로 들어가서 로케일 설정하고 부트로더 설치하고. GRUB이 문제였다. 설정 잘못 건드려서 부팅이 안 됐다. 처음부터 다시. 두 번째도 안 됐다. EFI 파티션 마운트를 잘못한 거였다. 세 번째에 됐다. 6시간 걸렸다.

    검은 화면에 흰 글씨. 로그인 프롬프트. GUI 없다. 데스크톱 환경을 아직 안 깔았으니까. 커서 깜빡이는 거 보면서 잠깐 멍했다. 뭔가를 처음부터 만든 느낌.

    둘째 날. GNOME이나 KDE 쓰면 마우스로 다 되는데 Hyprland를 골랐다. 타일링 윈도우 매니저. 키보드로 창을 배치한다. 멋있어 보여서. 설정 파일을 처음부터 짠다. Super+T 터미널, Super+D 앱 런처, Super+Q 닫기, Super+B 사이드바 토글, Super+Escape 잠금. waybar 설정하고 rofi 설정하고 dunst 알림 설정하고. 마우스 손이 가는데 참았다.

    새벽 2시 한글 전쟁

    셋째 날 새벽 2시. 한글이 안 된다. fcitx5-hangul 깔았다. 입력기 설정했다. 재부팅했다. 안 된다. 환경 변수 바꿨다. 안 된다. GTK_IM_MODULE을 설정해야 한다고 해서 했다. 더 안 된다. 세 시간 검색하다가 Arch Wiki 깊은 곳에서 답을 찾았다. Wayland에서는 GTK_IM_MODULE을 설정하면 오히려 충돌이 난다. 제거하는 게 핵심이었다. 설정이 아니라 삭제가 답인 경우가 있다.

    오른쪽 Alt 눌렀다. 한영 전환됐다. “ㅋㅋㅋㅋ” 쳤다. 한글 나온다. 새벽 2시에 혼자 웃었다. 지오가 거실 지나가면서 “그거 아직도 하고 있어?” 했다.

    예뻐야 한다

    넷째 날. 원래 뭐 하려고 했더라. 아 맞다 개발 환경 세팅해야 했다. 근데 데스크톱이 못생겨서 참을 수가 없었다. Catppuccin Mocha Lavender를 깔기 시작했다. 파스텔 톤 다크 테마에 라벤더 악센트. Hyprland 설정 파일 열고 색상 코드 넣고 waybar에 적용하고 rofi에 적용하고 dunst에 적용하고 swww로 배경화면 동적 전환 설정하고 hyprlock 잠금 화면까지 통일하고. 투명도도 잡았다. 활성 창 95%, 비활성 90%. GTK 테마는 adw-gtk3-dark. 아이콘은 Tela-circle-dark. (디지털은 되는데 물리는 안 되는 이유를 나중에 깨달았다.)

    r/unixporn에 올리면 업보트 받을 수 있을 것 같은 수준이 됐다. 4시간 걸렸다. 아 맞다 원래 개발 환경.

    부팅 25초를 15.8초로

    다섯째 날. 최적화에 빠졌다. intel-undervolt로 CPU -120mV 언더볼팅. 안정성 테스트하고 괜찮아서 적용. TLP로 전력 관리. GPU 최소 500MHz로 제한. thermald 85도 쓰로틀링. zram 15.6GB에 swappiness 180. 배터리 충전 75-80% 제한. TPM이랑 MEI 모듈 블랙리스트. Plymouth 삭제.

    systemd-analyze blame 쳤다. 부팅 시간 확인용. 25초. 나쁘지 않은데 줄이고 싶었다. 서비스 하나씩 비활성화하고 다시 측정하고. 15.8초. 10초 줄이는 데 3시간 쓴 건데 15.8이라는 숫자가 화면에 뜨니까 기분이 좋았다. 25초도 충분히 빨랐다. 이건 그냥 숫자 줄이기 게임이었다.

    여섯째 날. 음악 플레이어. mpd에 ncmpcpp. 터미널에서 음악 틀고 스펙트럼 비주얼라이저가 나온다. NAS 마운트해서 FLAC 라이브러리 연결하고 Luna DAC 물리고 easyeffects로 EQ 프로필 적용하고. Spotify 쓰면 클릭 한 번인데. 멋있으니까.

    생산적인 걸 한 시간은 0이다

    일주일 후. 정리하면 이렇다. Arch 설치 6시간, Hyprland 설정 8시간, 한글 삽질 15시간, 테마 커스터마이징 4시간, 최적화 6시간, 음악 세팅 3시간. 실제로 이 위에서 생산적인 걸 한 시간은 0이다. MBA M2가 메인이라 Dell을 매일 쓸 일도 별로 없다. 가끔 켜서 15.8초 부팅 보고 Catppuccin 배경화면 감상하고 ncmpcpp 비주얼라이저 틀어놓고 끈다. (메인으로 쓰는 7년 된 맥북은 따로 있다.)

    Hyprland 단축키는 다음에 쓸게. 아마.

  • 또 샀다

    또 샀다

    택배가 또 왔다

    택배가 또 왔는데 뭘 시켰는지 기억이 안 난다. 진짜로. 현관 앞에 박스 두 개가 있는데 하나는 내 거고 하나는 지오 거다. 서로 눈 마주치고 아무 말 안 했다. 박스 각자 들고 들어갔다.

    내 거 뜯어보니까 Omi였다. 89달러짜리 AI 웨어러블. 아 맞다 이거 시켰지. 서하랑 놀 때 대화 자동 기록하려고. 근데 그건 구매 버튼 누를 때 생각이었고 지금은 그냥 투명 플라스틱 동그라미가 손바닥 위에 있다. 앱 깔아야 되고 계정 만들어야 되고 Notion 연동해야 되고.

    일단 충전기부터 꽂았다.

    한 달에 427달러어치

    그 전주에 Plaud Note Pro가 왔다. 179달러. 회의록 자동 전사용. 회의 많냐고? 많지는 않다. 근데 있으면 편하잖아. 그 전전주에는 Soundcore Work. 159달러. 이건 음질이 좋다길래. 합치면 427달러인데 이걸 한 달 안에 다 질렀다.

    세 개 다 Notion 자동 동기화 스크립트를 짰다. launchd로 5분마다 돌린다. 각각 반나절씩 걸렸다. 스크립트 짜는 게 재밌어서 기기 자체보다 그쪽에 시간을 더 썼다. 지금 3개 중에 실제로 매일 쓰는 건 — 스크립트는 3개 다 돌아가는데 기기를 실제로 들고 다니는 건 하나도 없는 날이 더 많다.

    가젯 무덤

    Supernote Nomad. E-ink 태블릿. 펜으로 쓰는 느낌이 종이 같다고 해서 샀다. Syncthing 동기화도 되고 서재에서 독서 노트 쓰려고. 2주 지났다. 서재 책상 위에 충전 안 된 채로 놓여 있다.

    BlueFox NX1. 4인치 안드로이드폰. 서브폰으로 쓸 거였다. 무슨 서브폰이 필요한지는 나도 잘. Helio G81이라 성능은 별로인데 루팅 가능한 게 포인트였다. MTKClient로 부트롬 접근해서 Magisk 깔고 Shamiko 올리고 PlayIntegrityFix 적용하는 데 하루 꼬박. 그 과정이 재밌었다. 지금은 어딘가에 있다. 침대 밑이거나 소파 쿠션 사이거나.

    Ray-Ban Meta. AI 선글라스. 한국에서 정식 지원 안 해서 WireGuard VPS 세팅하고 미국 IP로 우회하고 XPrivacyLua로 BSSID 차단까지 해야 동작한다. 거기서 또 이틀. WiFi 범위 안에서만 되니까 집에서 쓰는 선글라스가 됐다. 집에서 선글라스를 왜 쓰냐. 모양은 예쁘다.

    도파민 곡선

    쿠팡 알고리즘이 무섭다. USB-C 허브 검색했다가 기계식 키보드 보고 Cherry MX Brown이 좋다는 글 읽다가 모니터 암 리뷰 영상 보다가 스탠딩 데스크 가격 비교하다가 — 아 어쨌든 장바구니에 세 개 담겨 있었다. 뭐가 있었는지는 다음날 돼야 기억남. 알림 오면 “아 이거 담았었지” 한다.

    택배 뜯는 순간이 정점이다. 포장재 벗기고 본체 꺼내고 전원 켜는 순간까지가 도파민 최고점. 설정 시작하면 이미 흥미가 빠진다. 이틀 지나면 충전기 위치를 까먹는다.

    이거 문제인 거 안다. 알면서 Amazon 앱 열어서 Teenage Engineering TX-6 페이지를 보고 있다. 오디오 믹서. 작고 예쁘다. 1,199달러. 필요 없다. 근데 리뷰 영상이 17분짜리인데 벌써 12분째

    관련글: Meta 안경 – 집에서 쓰는 선글라스의 전말

    관련글: 미니멀리즘을 동경하는 맥시멀리스트 – 이 글의 후속편 같은 거

    관련글: ADHD가 아빠가 되면 – 충동구매의 원인에 대해

  • 7년 된 맥북

    7년 된 맥북

    2016년에 산 맥북프로가 아직 켜져 있다.

    정확히는 10년 됐다. 2016 Late 모델. i7-6920HQ에 16GB RAM에 2TB SSD. 버터플라이 키보드 세대라 E 키가 씹히고 배터리는 부풀어서 트랙패드 클릭이 좀 이상하다. Touch Bar가 있던 시절 모델인데 Touch Bar는 한 번도 유용했던 적이 없다. 처음에 신기하긴 했다.

    한국에서 미국으로 이사할 때 가져왔다. 짐 줄인다고 책이랑 옷은 버렸는데 이건 넣었다. 무거웠다. 2kg 가까이. 배낭 바닥에 넣으면 등이 아팠는데 그래도 두고 오진 못했다. 처음 산 맥북프로였다. 코드 짜고 사진 편집하고 영상 만들고 글 쓰고. 다 이걸로 했다.

    지금은 책상 구석에 놓여 있다. 덮개 닫힌 채로. 화면 볼 일이 없다.

    아직 살아있다

    Belkin USB-C LAN 어댑터 하나 꽂혀 있고 전원 케이블 하나 꽂혀 있다. 끝이다. disablesleep 1 설정해서 닫아도 안 자게 해놨다. AlDente로 배터리 80% 제한. 24시간 돌아간다. SSH로만 접속한다.

    서버다.

    뭘 돌리냐면. Photos.app에 사진이 608GB 있다. Eagle에 544GB. 합치면 1.2TB. 2TB 디스크의 64%가 사진이다. 서하 사진이 대부분인데 리코 사진도 꽤 되고 밥 사진도 있다. 120초마다 mtime 기반 증분 스캔을 돌려서 Photos와 Eagle을 동기화한다. 새 사진 찍으면 iCloud 타고 Photos에 들어오고 그걸 스캔해서 Eagle로 넣는다.

    삭제 안전장치를 4단계로 만들었다. 아기 사진이 날아가면 복구가 안 되니까. 1단계에서 삭제 대상 목록 만들고, 2단계에서 크로스체크하고, 3단계에서 임시 폴더로 옮기고, 4단계에서 일주일 지나면 삭제. 여기에 매일 새벽 3시에 Gemini 2.0 Flash로 비전 태깅이 돌아간다. 사진 내용을 AI가 보고 태그를 달아준다. “서하 웃는 사진”, “리코 산책”, 이런 식으로.

    (이 태깅 시스템 만들면서 비용 계산을 스프레드시트로 했는데 API 호출당 단가 계산하다가 월별 예상 비용 그래프까지 만들었다. 2시간이 거기서 날아갔다. Gemini Flash는 무료 티어가 넉넉해서 결론은 “거의 0원”이었고 스프레드시트는 필요 없었다.)

    n8n도 돌리고 Syncthing도 돌리고 webhook 서버도 pm2로 관리하고. Node.js v22 위에서 전부 돌아간다.

    서버로 쓴다

    SSH 접속해서 uptime 치면 가끔 30일 넘게 올라와 있다. 로드 에버리지가 평소에는 1 언저리인데 새벽에 비전 태깅 돌리면 3을 넘긴다. 그때 CPU 온도가 85도까지 올라간다. thermald가 쓰로틀링 걸어주니까 더 안 올라가는데 팬이 윙윙거린다. 침실까지 들린다. 새벽 3시에.

    키보드 씹히는 건 상관없다. 키보드 안 치니까. 배터리 부풀어 오른 건 트랙패드만 영향 있는데 트랙패드도 안 쓴다. 화면 상태? 모른다. 마지막으로 열어본 게 언제인지. 이 맥북의 물리적 결함이 전부 무의미해졌다. 서버는 SSH만 되면 된다.

    MBA M2가 메인 머신이다. 가볍고 배터리 오래 가고 Ghostty 터미널에 Raycast에. 일상적인 건 다 여기서 한다. 2016 맥북프로는 그냥 묵묵히 사진을 옮기고 태그를 달고 동기화를 돌린다. 역할이 갈리니까 둘 다 필요하다.

    이걸 새 Mac mini로 바꾸면 전력 효율이 좋아지겠지. M 시리즈 칩이면 팬 소리도 안 나고 전기세도 줄고. 근데 이게 아직 돌아간다. 2TB SSD 건강도 99%다. RAM 16GB로 지금 돌리는 서비스 다 감당된다. 고장 안 났는데 바꿀 이유가 없다.

    647GB 여유 공간이 남아 있다. 음악 파일은 36GB짜리 FLAC 컬렉션을 NAS로 옮겨서 확보했다. 사진이 계속 늘어나겠지만 당분간은 괜찮다.

    가끔 새벽에 팬 소리 들리면 아 저거 지금 사진 정리하고 있구나 싶다. 10년 된 기계가 쉬지 않고 뭔가를 하고 있다. 감정적인 건 아닌데. 근데 뭔가.

    이 맥북 위에서 블로그도 돌린다. Dell에는 리눅스를 깔았다가 일주일을 날렸다.

    언젠간 꺼지겠지. 오늘은 아니다.

  • 블로그를 만들었는데

    블로그를 만들었는데

    인프라는 완벽하다 (글만 없다)

    블로그 만든 지 2주 됐는데 글이 하나도 없다.

    인프라는 있다. WordPress가 NAS Docker 위에서 돌아간다. MariaDB 컨테이너 따로, WordPress 컨테이너 따로, Cloudflare Tunnel로 HTTPS 연결. Portainer로 관리. 비용 0원. 도메인값 빼면.

    Tistory, Naver Blog, Medium, Substack. 다 있었다. 가입하고 글 쓰면 끝이다. 근데 NAS에 WordPress 올리는 걸 선택했다. 왜? Docker 설정하는 게 글 쓰는 것보다 재밌으니까. 이걸 당시에는 인식 못 했다. “내 서버에서 돌리면 자유도가 높다”고 스스로를 납득시켰다. 거짓말은 아닌데 진짜 이유는 아니다.

    글 안 쓰고 대신 한 것들

    글 안 쓰고 대신 한 것들:

    1. 플러그인 비교. Rank Math vs Yoast SEO. 3시간. Rank Math 골랐다. 옵션이 100개는 되는 것 같은데 절반은 뭔지 모르겠다. 일단 추천 설정.
    2. WP Fastest Cache 설정. 캐시 프리로딩, Gzip 압축, 브라우저 캐싱. 방문자가 0명인 사이트 캐시 최적화에 1시간.
    3. Privacy Policy 작성. GDPR, CCPA, COPPA 다 넣었다. 유럽에서 접속할 사람이 있을까. 아마 없다.
    4. About 페이지 작성. 세 번 고쳤다. 자기소개 쓰는 게 글 쓰는 것보다 어렵다.
    5. Contact 페이지. WPForms Lite로 폼 만들고 WP Mail SMTP로 Gmail 연결. 연락 올 사람은 없다.
    6. OPcache 256MB 설정하고 wp-config.php에서 리비전 3개 제한 걸고 파일 편집 차단하고 시스템 cron 설정하고 .htaccess에 보안 헤더 넣고…
    7. mu-plugin 만들어서 generator 메타태그 숨기고 REST API 일부 차단하고 로그인 페이지 보안 강화하고.
    8. Google Search Console 등록. sitemap 제출. HTML 태그 인증. 인덱싱될 페이지가 없는데 인덱싱 설정부터 했다.

    빈 화면 공포증

    2주 동안 이걸 했다. 에디터를 열면 커서만 깜빡인다. 주제는 있다. 테크, 오디오, 리눅스, 육아, 가젯. 근데 빈 화면 앞에 앉으면 뇌가 거부한다. Docker 설정은 문제가 생기면 로그 읽고 검색하고 고치면 된다. 진행이 보인다. 글은 진행이 안 보인다. 어디까지 쓴 건지, 이게 맞는 건지.

    누가 읽는데 이거. 아무도 안 읽어. 근데 퍼머링크는 예뻐야 되잖아.

    일단 하나 쓰자

    AdSense 승인이 목표 중 하나였다. 글 써서 광고 수입 좀 생기면 좋겠다는. 현실적으로 25-30개 글이 필요하다. 현재 0개. 주 2-3회 쓴다고 해도 두세 달은 걸린다. 그 전에 일단 하나를 써야 하는데.

    이 글이 첫 번째가 되면 좀 웃기긴 하다. 블로그에 글이 없다는 글. 메타 중의 메타. 근데 이건 쉽다. 지금 느끼는 거 그냥 쓰면 되니까. 구조 같은 거 없이…

    퍼머링크 구조를 뭘로 할까. 글 제목만 넣을지, 앞에 blog를 붙일지, 날짜까지 넣을지. 날짜 넣으면 좀 길어진다. 나중에 같은 제목 글 쓰면

    관련글: 7년 된 맥북 – 이 블로그가 돌아가는 서버 이야기

    관련글: 계획만 세우다 하루가 끝난다 – 글 안 쓰고 설정만 하는 이유가 여기 있다