# 국경은 cURL로 호출할 수 없다

> Clean Markdown view of GeekNews topic #24146. Use the original source for factual precision when an external source URL is present.

## Metadata

- GeekNews HTML: [https://news.hada.io/topic?id=24146](https://news.hada.io/topic?id=24146)
- GeekNews Markdown: [https://news.hada.io/topic/24146.md](https://news.hada.io/topic/24146.md)
- Type: GN+
- Author: [neo](https://news.hada.io/@neo)
- Published: 2025-11-05T09:42:18+09:00
- Updated: 2025-11-05T09:42:18+09:00
- Original source: [drobinin.com](https://drobinin.com/posts/you-cant-curl-a-border/)
- Points: 2
- Comments: 1

## Topic Body

- 저가 항공권을 찾을 때마다 **비자, 여권, 세금 거주 요건** 등 여러 규정을 동시에 확인해야 하는 복잡한 절차 존재  
- 각국의 **이민·세금 시스템이 서로 다른 기준으로 ‘체류일’을 계산**해 혼란을 초래함  
- 이를 해결하기 위해 여행 기록과 규정을 **컴파일러처럼 검증하는 앱 ‘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로 호출할 수 없지만, 자신의 상태를 추적해 정부와 동일한 답을 얻을 수 있다**”는 메시지로 마무리됨

## Comments



### Comment 45887

- Author: neo
- Created: 2025-11-05T09:42:18+09:00
- Points: 1

###### [Hacker News 의견](https://news.ycombinator.com/item?id=45806263) 
- 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”라는 [반(反)불법복제 캠페인 밈](https://en.wikipedia.org/wiki/You_Wouldn%27t_Steal_a_Car)을 패러디한 것 같음
  - “**API로 국경을 호출할 수는 없지만**, 스스로의 상태를 추적할 수는 있다”는 의미로 보면 꽤 괜찮은 제목임

- 내 친척 몇 명은 유럽 관광비자로 들어가서 **귀국 항공권을 버리고 불법 체류**했음  
  몇 년 후 합법화돼 시민권까지 얻었는데, 나는 법을 지키느라 여전히 제자리임  
  합법적으로 일할 비자 요건이 없다는 게 답답함
  - 이런 경우가 너무 흔해서, 도덕적으로 잘못된 일인지조차 헷갈림  
    관광비자로 들어와 일하다가 나중에 합법화된 사람들을 많이 봤음  
    반면 정식 취업비자로 들어온 고학력자들은 회사 구조조정으로 스폰서십을 잃고 30일 내 새 일자리를 찾아야 했음  
    이런 정책이 **의도된 불균형**처럼 느껴짐
  - “유효한 법적 근거가 없다”는 게 무슨 뜻인지 궁금함. 대부분의 나라에서는 일정 급여 이상의 현지 일자리만 있으면 취업비자를 받을 수 있음
  - 몇 년 체류했다고 자동으로 시민권을 주는 법이 있는지 궁금함
  - 어떤 나라에서, 어떤 절차로 **합법화(legalisation)** 가 되는지 알고 싶음

- 저자의 세밀한 작업에 감탄함  
  나도 Schengen 90/180일 계산기와 세금 거주지 추적기를 만들려다 **Claude**로 시도했는데, 수학 계산이 너무 어려웠음  
  결국 직접 새 프로젝트를 만들어야 했음  
  앱의 결과가 정확한지 수동으로 검증했는지 궁금함. 이런 앱은 **테스트 검증**이 핵심임
  - 이런 수학 중심 로직은 AI보다 **DSL**이나 사람이 읽기 쉬운 함수로 직접 작성하는 게 낫다고 생각함  
    규칙을 쉽게 수정할 수 있고, **단위 테스트**가 특히 유용함
  - 복잡한 스케줄링 문제는 단위 테스트를 많이 써야 함  
    입력→알고리즘→출력 구조에서 엣지 케이스가 많기 때문임
  - “AI가 너를 멍청하게 만들고, 너는 AI가 멍청하다고 불평한다”는 건 **lose-lose 상황** 같음
  - 솔직히 말해, AI에게 대부분의 일을 맡겨놓고 스스로 대단한 연구를 한 것처럼 말하는 건 좀 **거만하게 들림**  

- 글에서 명확히 언급되진 않았지만, 저자가 만든 앱은 누구나 다운로드 가능함  
  [https://drobinin.com/apps/residency/](https://drobinin.com/apps/residency/)  
  Android가 아니라면 직접 써보고 싶었음

- 이 저자가 예전에 **Apple Watch로 헬스장 출입 시스템을 만든 사람**이란 걸 깨달음  
  그때 글도 좋았고 이번 글도 마음에 듦  
  [이전 글 링크](https://news.ycombinator.com/item?id=44910865)
  - 나는 반대로 그 사람의 글이 별로였음  
    너무 “국제적이고 세련된 나” 같은 느낌을 주려는 **자기과시적 문체**가 거슬렸음
  - 나는 PureGym 회원인데, 8자리 번호를 외워서 직접 입력함  
    공식 앱은 별로라서 굳이 휴대폰을 꺼낼 필요가 없음

- 이 글을 읽고 내 여권이 허락하는 **비자 면제 여행의 가치**를 새삼 깨달았음  
  가능은 하지만 너무 비효율적이고 시간 소모적인 과정임

- 왜 어떤 나라들은 입국 시 여권 만료까지 **n개월 이상 남아 있어야** 한다고 요구하는지 궁금함  
  체류 기간보다 여권이 짧게 남았다고 뭐가 문제인지 모르겠음  
  이런 규정이 실제로 어떤 불법행위나 경제적 문제를 막는지 의문임
  - 아마 **비상 상황** 때문일 것 같음  
    부상 등으로 귀국이 늦어질 경우 여권이 유효해야 하고, 비자 기간도 시스템상 일정 단위로만 발급됨  
    여권 만료일은 미리 알고 있는 것이니, 단순히 책임감 있게 관리하라는 의미일 수도 있음

- 이 글은 인상적이었음  
  그래서 대부분의 합리적인 규정에는 **행정 재량(administrative discretion)** 이 포함돼 있는 이유를 잘 보여줌
