2P by GN⁺ 4일전 | ★ favorite | 댓글 1개
  • 저가 항공권을 찾을 때마다 비자, 여권, 세금 거주 요건 등 여러 규정을 동시에 확인해야 하는 복잡한 절차 존재
  • 각국의 이민·세금 시스템이 서로 다른 기준으로 ‘체류일’을 계산해 혼란을 초래함
  • 이를 해결하기 위해 여행 기록과 규정을 컴파일러처럼 검증하는 앱 ‘Residency’ 개발
  • 앱은 로컬에서 계산하며, 여권 만료·비자·IDP·세금 거주 요건 등을 자동 점검
  • 개인의 이동 이력과 행정 규칙을 일관되게 관리해 국경 통과 전 위험을 미리 파악할 수 있는 도구로 기능

항공권 구매 전의 20분

  • 저자는 아이슬란드행 초저가 항공권을 발견했을 때, 비자·여권·운전면허·세금 거주 요건 등을 즉시 확인해야 했음
    • 이 과정은 약 20분이 걸리며, 단순한 가격 비교가 아니라 여러 행정 조건을 동시에 검토하는 절차임
  • 과거 10년간의 여행 이력을 기록한 스프레드시트를 기반으로 각종 비자·시민권 신청을 처리해 왔음
  • 그러나 이 방식은 비효율적이라 판단하고, “이 여행이 문제를 일으킬까? ”를 자동으로 판단하는 시스템 구상

시스템이 알려주지 않는 ‘상태(State)’

  • Schengen, 영국, 세금 거주, 여권 유효기간 등 각 시스템이 서로 다른 기준으로 개인의 상태를 판단함
    • Schengen은 90/180일 규칙, 영국은 세금연도 기준 자정 횟수, 여권은 유효기간·빈 페이지 수 등을 기준으로 함
  • 이러한 정보는 사용자에게 직접 노출되지 않으며, 국경 심사관만 접근 가능
  • 저자는 이를 “State를 파싱하는 문제”로 정의 — 정부의 시각과 시스템 상태를 동시에 해석해야 함

행정의 예외 사례들

  • 영국 시민권 신청 시, 신청일 기준 정확히 5년 전 같은 날짜에 영국에 있었음을 증명해야 함
    • 하루라도 어기면 수개월 대기 후 신청 거절 및 재신청 비용 발생
  • 영국 공항 환승 시, 여행과 무관한 활동(예: 간식 구매, 공연 관람) 을 해야만 ‘체류’로 인정됨
  • 모로코의 라마단 기간 시간대 변경(UTC↔UTC+1) 으로 인해 체류일 계산이 달라질 수 있음
  • 이러한 규정은 여러 정부 사이트와 PDF에 흩어져 있어, 사용자가 직접 해석해야 함

‘컴파일러 경고’로서의 여행 시뮬레이션

  • 저자는 여행 계획을 “컴파일 가능한가?” 의 관점에서 검증하는 린터(linter) 개념을 도입
  • 예시 경로(DUB→EWR→MEX→LHR→TFS)를 통해 각국의 체류일 계산 차이를 비교
    • 아일랜드 0일, 미국 0일, 멕시코 2일, 영국 0~1일, Schengen 1일
  • 각 결과는 시간대 데이터베이스 버전에 따라 달라질 수 있어, 버전을 고정하고 변경 시 재계산
  • 목표는 국경 심사관과 동일한 판단 기준을 갖춘 자동 검증 시스템 구축

Residency 앱의 구조와 기능

  • 앱은 “이 행동을 하면 어떤 일이 발생하는가”를 다양한 형태로 시뮬레이션
    • 예: 알프스 여행 예약 시 Schengen 체류일 초과 여부, 세금연도 종료 전 출국 영향 등
  • 각 국가별 규칙은 버전 관리된 해석 데이터(blob) 로 저장되어, 규정 변경 시 과거 기록을 유지
  • 여권·비자·IDP 유효성도 상태 기계(state machine)로 처리
    • 예: 두바이 경유 시 “도착 시 유효”가 “출발 시 무효”로 바뀌는 경우 자동 감지
  • 사용자는 직접 목표(예: 특정 국가 체류일 제한) 를 설정 가능하며, 앱은 이를 기반으로 경고 제공

로컬 우선 설계와 개인정보 보호

  • 모든 계산은 기기 내에서 수행, 네트워크 연결 없이도 작동
    • 서버 통신을 배제해 속도·프라이버시·법적 책임 문제를 회피
  • 클라우드 동기화는 지원하지 않음, 대신 파일로 직접 내보내기 가능
  • 초기에는 Schengen 일수 계산만 지원했으나, 이후 영국 세금 규칙·문서 만료·시뮬레이션 기능 등이 추가됨
  • 앱을 공개한 이유는 다른 사용자들도 같은 20분의 불확실성을 줄이길 원했기 때문

실제 사용 결과와 결론

  • 아이슬란드 항공권 구매 전, 앱은 IDP 불필요·Schengen 여유 34일·세금 거주 종료 시점 등을 정확히 계산
  • 실제 입국 시 Keflavík 공항 심사관의 판단과 앱 결과가 일치
  • 앱 이름은 Residency, iOS용으로 제공되며 구독 없이 일회성 구매
  • 결론적으로 “국경은 cURL로 호출할 수 없지만, 자신의 상태를 추적해 정부와 동일한 답을 얻을 수 있다”는 메시지로 마무리됨
Hacker News 의견
  • EU 시민이 아닌 사람들에게 여행이 이렇게 복잡한 절차가 필요하다는 걸 몰랐음
    영국 시민권 신청 시, 신청일로부터 정확히 5년 전 같은 날짜에 영국에 실제로 있었음을 증명해야 한다는 규정이 너무 웃김
    하루라도 어기면 몇 달을 기다린 끝에 거절되고, 다시 비싼 수수료를 내야 함
    이런 규정이 어떻게 생겼는지 궁금함

    • 사실 저자는 틀렸음. 기준일은 ‘신청서 제출일’이 아니라 Home Office가 서류를 받은 날
      Royal Mail의 배송 속도에 따라 며칠 오차가 생길 수 있음
      나는 신청 전에 Home Office에 내 출입국 기록을 요청했는데, 그들이 내 5년 전 위치를 거의 모르고 있었음
      여행의 절반 정도만 기록돼 있었고, 종종 편도만 남아 있었음. 관리가 엉망이었음
    • 나이 50쯤인데, 예전엔 유럽에서도 이런 식이었음
      요즘 세대는 EU 시민권의 혜택을 너무 당연하게 여기는 것 같음
    • 대부분의 사람들은 비자 없이 90일 이상 체류할 여유가 없음
      그 이상 머무는 사람들은 ‘디지털 노마드’인데, 대부분 불법으로 일하고 있음
    • 이 글은 앱 홍보용 콘텐츠 마케팅 같음
      불편함을 약간 과장했을 수도 있음
    • 사실 그렇게 어렵지도 않음. 작년에 직접 해봤는데 시청 예약하고 주소 DB 확인 후, 서류 한 장에 서명하고 수수료 내면 끝이었음
      15분이면 끝나는 일임. 물론 여긴 영국이 아니라 대륙 유럽이었음
  • “Greggs에서 소시지 롤을 사 먹는다”는 게 공항 환승 중 첫 생각이라면, 그 사람은 시민권 받을 자격이 충분함

    • Life in the UK 테스트는 업데이트가 필요함
    • Claude는 문화적 차이에 꽤 민감한 AI
  • 글은 훌륭했지만 제목이 이상함
    세금 거주지, 비자, 시민권 등 국가별 요건에 대한 이야기인데 ‘Downloading a border’라는 표현은 의미가 모호함
    아마 “공식 정보가 여러 PDF와 사이트에 흩어져 있어 직접 모아야 한다”는 뜻의 은유일 듯함

    • 아마도 “You wouldn’t download a car”라는 반(反)불법복제 캠페인 밈을 패러디한 것 같음
    • API로 국경을 호출할 수는 없지만, 스스로의 상태를 추적할 수는 있다”는 의미로 보면 꽤 괜찮은 제목임
  • 내 친척 몇 명은 유럽 관광비자로 들어가서 귀국 항공권을 버리고 불법 체류했음
    몇 년 후 합법화돼 시민권까지 얻었는데, 나는 법을 지키느라 여전히 제자리임
    합법적으로 일할 비자 요건이 없다는 게 답답함

    • 이런 경우가 너무 흔해서, 도덕적으로 잘못된 일인지조차 헷갈림
      관광비자로 들어와 일하다가 나중에 합법화된 사람들을 많이 봤음
      반면 정식 취업비자로 들어온 고학력자들은 회사 구조조정으로 스폰서십을 잃고 30일 내 새 일자리를 찾아야 했음
      이런 정책이 의도된 불균형처럼 느껴짐
    • “유효한 법적 근거가 없다”는 게 무슨 뜻인지 궁금함. 대부분의 나라에서는 일정 급여 이상의 현지 일자리만 있으면 취업비자를 받을 수 있음
    • 몇 년 체류했다고 자동으로 시민권을 주는 법이 있는지 궁금함
    • 어떤 나라에서, 어떤 절차로 합법화(legalisation) 가 되는지 알고 싶음
  • 저자의 세밀한 작업에 감탄함
    나도 Schengen 90/180일 계산기와 세금 거주지 추적기를 만들려다 Claude로 시도했는데, 수학 계산이 너무 어려웠음
    결국 직접 새 프로젝트를 만들어야 했음
    앱의 결과가 정확한지 수동으로 검증했는지 궁금함. 이런 앱은 테스트 검증이 핵심임

    • 이런 수학 중심 로직은 AI보다 DSL이나 사람이 읽기 쉬운 함수로 직접 작성하는 게 낫다고 생각함
      규칙을 쉽게 수정할 수 있고, 단위 테스트가 특히 유용함
    • 복잡한 스케줄링 문제는 단위 테스트를 많이 써야 함
      입력→알고리즘→출력 구조에서 엣지 케이스가 많기 때문임
    • “AI가 너를 멍청하게 만들고, 너는 AI가 멍청하다고 불평한다”는 건 lose-lose 상황 같음
    • 솔직히 말해, AI에게 대부분의 일을 맡겨놓고 스스로 대단한 연구를 한 것처럼 말하는 건 좀 거만하게 들림
  • 글에서 명확히 언급되진 않았지만, 저자가 만든 앱은 누구나 다운로드 가능함
    https://drobinin.com/apps/residency/
    Android가 아니라면 직접 써보고 싶었음

  • 이 저자가 예전에 Apple Watch로 헬스장 출입 시스템을 만든 사람이란 걸 깨달음
    그때 글도 좋았고 이번 글도 마음에 듦
    이전 글 링크

    • 나는 반대로 그 사람의 글이 별로였음
      너무 “국제적이고 세련된 나” 같은 느낌을 주려는 자기과시적 문체가 거슬렸음
    • 나는 PureGym 회원인데, 8자리 번호를 외워서 직접 입력함
      공식 앱은 별로라서 굳이 휴대폰을 꺼낼 필요가 없음
  • 이 글을 읽고 내 여권이 허락하는 비자 면제 여행의 가치를 새삼 깨달았음
    가능은 하지만 너무 비효율적이고 시간 소모적인 과정임

  • 왜 어떤 나라들은 입국 시 여권 만료까지 n개월 이상 남아 있어야 한다고 요구하는지 궁금함
    체류 기간보다 여권이 짧게 남았다고 뭐가 문제인지 모르겠음
    이런 규정이 실제로 어떤 불법행위나 경제적 문제를 막는지 의문임

    • 아마 비상 상황 때문일 것 같음
      부상 등으로 귀국이 늦어질 경우 여권이 유효해야 하고, 비자 기간도 시스템상 일정 단위로만 발급됨
      여권 만료일은 미리 알고 있는 것이니, 단순히 책임감 있게 관리하라는 의미일 수도 있음
  • 이 글은 인상적이었음
    그래서 대부분의 합리적인 규정에는 행정 재량(administrative discretion) 이 포함돼 있는 이유를 잘 보여줌