반응형

제주 농지를 거래하거나 건축허가를 진행할 때는 단순히 “농지를 살 수 있느냐”만 보면 안 된다. 특히 해당 농지가 상속받은 농지인지, 제3자에게 매도하려는 것인지, 건축허가나 농지전용을 먼저 받을 것인지에 따라 검토 방향이 달라진다.

이번 글에서는 제주 농지를 기준으로 상속, 매매, 농지전용, 건축허가, 지목변경 문제를 순서대로 정리한다.


1. 상속으로 농지를 취득한 경우

아버지 등 피상속인으로부터 농지를 상속받은 경우에는 일반 매매와 달리 농지취득자격증명이 필요하지 않다.

즉, 상속인은 농지를 취득할 때 다음과 같은 농취증(농지취득자격증명) 관련 서류를 제출하지 않아도 된다.

  • 농지취득자격증명
  • 농업경영계획서
  • 주말·체험영농계획서
  • 그 밖의 농지취득자격 증명을 위한 서류

다만 이것은 어디까지나 상속으로 농지를 취득할 때의 문제다.

상속받은 농지를 건축용으로 사용하거나 대지화하려면, 별도로 농지전용허가, 개발행위허가, 건축허가 등의 절차를 검토해야 한다.

상속받은 농지에 대해서는 농지전용허가 시 위의 농취증 관련 서류를 제출할 필요가 없다.


2. 상속받은 농지를 제3자에게 매도하는 경우

상속인이 상속받은 농지를 제3자에게 매도하는 것 자체는 가능하다.

다만 매매 당시 토지가 아직 농지 상태라면, 매수인은 원칙적으로 농지취득자격증명을 받아야 할 수 있다.

특히 매수인이 도외 거주자인 경우에는 농지 취득 목적이 중요하다.

검토해야 할 취득 목적은 다음과 같다.

  • 실제 농업경영 목적
  • 주말·체험영농 목적
  • 농지전용 목적
  • 기타 농지법상 예외 사유

이 중 어떤 구조에 해당하는지에 따라 농취증 가능성이 달라진다.


3. 도외 거주자가 제주 농지를 바로 사서 건축허가를 진행하는 경우

도외 거주자가 제주 농지를 매수한 뒤 바로 건축허가나 농지전용허가를 신청하는 구조는 주의가 필요하다.

제주특별자치도 농지관리 조례에는 농업경영을 목적으로 농지를 취득한 자가 취득 후 일정 기간 내에 농지전용허가를 신청하는 경우, 별도의 심사기준에 따라 심사하도록 하는 규정이 있다.

따라서 도외 거주자가 농지를 농업경영 목적으로 취득한 뒤 곧바로 건축허가나 농지전용을 신청하면, 처음부터 농업경영 목적이 아니라 개발 목적이 아니었는지 문제가 될 수 있다.

즉, 도외 거주자가 제주 농지를 바로 매수해서 건축허가를 진행하는 방식은 농취증, 농지전용, 개발행위허가 단계에서 모두 리스크가 생길 수 있다.


4. 상속농지와 제주 농지관리 조례상 3년 기준

제주특별자치도 농지관리 조례에서 문제되는 부분은 “농업경영을 목적으로 농지를 취득한 자가 해당 농지를 취득한 후 3년 이내에 농지전용허가를 신청한 경우”에 관한 심사기준이다.

따라서 상속으로 취득한 농지이고, 상속받은 지 3년이 지난 경우라면 해당 조항의 강화심사 대상에 바로 해당한다고 보기는 어려울 수 있다.

상속은 일반적인 농업경영 목적의 매매취득과 성격이 다르기 때문이다.

다만 3년이 지났다고 해서 농지전용허가가 자동으로 가능하다는 뜻은 아니다. 농지전용허가 자체의 일반 심사기준은 여전히 적용된다.


5. 상속인이 직접 농지전용을 신청하는 경우

상속인은 농지를 취득할 때 농지취득자격증명이 필요하지 않다.

따라서 상속인이 직접 상속농지에 대해 농지전용이나 건축허가를 진행하는 경우, 농지취득자격을 증명하기 위한 서류는 쟁점이 되지 않는다.

다만 여기서 주의할 점이 있다.

상속인이 농취증 관련 서류를 제출하지 않아도 된다는 것이지, 농지전용허가 자체의 신청서류와 심사가 면제된다는 뜻은 아니다.

즉, 다음 두 가지는 구분해야 한다.

구분 판단

상속으로 농지를 취득하는 절차 농취증 및 농취증 관련 서류 불필요
상속농지를 건축용으로 전용하는 절차 농지전용허가, 개발행위허가, 건축허가 등 별도 검토 필요

정리하면, 상속농지는 농취증 없이 취득할 수 있지만, 건축이나 대지화를 위해서는 농지전용허가 등 관련 인허가 절차를 별도로 진행해야 한다.


6. 건축허가를 받은 뒤 매도하는 경우

상속인이 먼저 건축허가를 받은 뒤 제3자에게 매도하는 방식도 가능하다.

하지만 건축허가를 받았다고 해서 곧바로 지목이 대지로 바뀌는 것은 아니다.

일반적으로 농지의 지목이 대지로 변경되려면 다음 절차가 필요하다.

  1. 농지전용허가 또는 농지전용협의
  2. 개발행위허가
  3. 건축허가
  4. 공사 착공
  5. 공사 완료
  6. 사용승인
  7. 지목변경 신청

즉, 건축허가만 받은 상태에서는 토지대장상 지목이 여전히 전, 답, 과수원일 수 있다.

이 경우 매수인은 농지취득자격증명 문제를 다시 검토해야 한다.


7. 건축허가 후 매매 시 매수인의 농취증 문제

건축허가를 받은 뒤 매매하더라도, 매매 당시 토지가 아직 농지라면 매수인은 농지취득자격증명을 요구받을 수 있다.

다만 농지전용허가나 건축허가상 농지전용협의가 이미 완료된 경우라면, 매수인은 일반적인 농업경영 목적이 아니라 전용목적 취득으로 농취증을 신청하는 구조를 검토할 수 있다.

따라서 계약 전에는 반드시 관할 행정청에 다음 내용을 확인해야 한다.

  • 건축허가에 농지전용협의가 포함되어 있는지
  • 농지전용허가 또는 협의의 지위 승계가 가능한지
  • 건축주 명의변경이 가능한지
  • 지목변경 전 소유권 이전 시 농취증이 필요한지
  • 매수인이 전용목적 취득으로 농취증을 받을 수 있는지

핵심은 건축허가가 났다고 해서 농취증 문제가 자동으로 사라지는 것은 아니라는 점이다.


8. 지목변경은 언제 가능한가

건축허가를 받았다는 이유만으로 지목변경이 가능한 것은 아니다.

지목변경은 보통 건축공사가 완료되고, 사용승인을 받은 뒤에 진행된다. 또는 관계 법령에 따른 토지 형질변경 공사가 준공되는 등 지목변경 사유가 발생해야 한다.

정리하면 다음과 같다.

  • 건축허가 완료: 지목변경 불가
  • 공사 완료 및 사용승인: 지목변경 가능성 발생
  • 지목변경 완료: 농지가 아닌 대지로 매매 가능

따라서 “건축허가 완료”와 “지목변경 가능”은 반드시 구분해야 한다.


9. 실무상 안전한 거래 구조

가장 안전한 방식은 상속인이 직접 농지전용허가와 건축허가를 진행하고, 가능하다면 사용승인과 지목변경까지 완료한 뒤 매도하는 것이다.

지목변경까지 완료되면 토지가 더 이상 농지 상태가 아니므로, 매수인의 농취증 문제도 상당 부분 정리될 수 있다.

다만 현실적으로 건축허가만 받은 상태에서 매도하려는 경우에는 계약서에 반드시 조건부 특약을 넣어야 한다.

예를 들면 다음과 같은 내용이다.

본 계약은 매수인이 본 토지에 관한 건축허가, 개발행위허가, 농지전용허가 또는 협의 등 관련 인허가의 명의변경 또는 지위승계를 관할 행정청으로부터 수리받는 것을 조건으로 한다.

또한 농취증 문제가 남아 있다면 다음 문구도 함께 검토해야 한다.

본 토지가 소유권이전등기 시 농지취득자격증명 대상에 해당하는 경우, 매수인의 농지취득자격증명 발급을 본 계약의 조건으로 한다.


10. 최종 정리

상속받은 농지는 상속 취득 당시 농지취득자격증명이 필요하지 않다.

하지만 상속농지를 제3자에게 매도하거나 건축허가·농지전용을 진행할 때는 별도의 법적 검토가 필요하다.

특히 제주 농지는 농지전용과 개발행위 심사가 까다로울 수 있으므로, 단순히 “상속농지니까 자유롭게 전용 가능하다”거나 “건축허가를 받았으니 바로 대지처럼 팔 수 있다”고 판단하면 위험하다.

핵심은 다음과 같다.

  1. 상속취득에는 농취증이 필요 없다.
  2. 상속인이 직접 전용을 신청하는 경우, 농취증 관련 서류는 쟁점이 아니다.
  3. 농지전용은 별도 허가와 심사가 필요하다.
  4. 건축허가만으로 지목변경은 되지 않는다.
  5. 지목변경 전 매매라면 매수인의 농취증 문제가 남을 수 있다.
  6. 도외 거주자가 농지를 바로 취득해 전용하려는 구조는 특히 주의해야 한다.
  7. 계약 전 관할 행정청 확인과 조건부 특약이 필수다.

결국 이 사안의 핵심은 상속취득, 농지전용, 건축허가, 지목변경, 제3자 매매를 각각 분리해서 봐야 한다는 점이다.

상속으로 농지를 취득한 사실만으로 모든 절차가 면제되는 것은 아니고, 건축허가를 받았다고 해서 곧바로 대지처럼 거래할 수 있는 것도 아니다.

따라서 실제 거래 전에는 해당 토지의 지목, 현황, 농업진흥지역 여부, 개발행위 가능성, 농지전용 가능성, 건축허가 조건, 지목변경 가능 시점, 매수인의 농취증 필요 여부를 관할 행정청에 반드시 확인하는 것이 안전하다.

반응형

개요

이 글은 제주특별자치도 하수도정비 기본계획 기반의 옥상 우수량 자동 산정 웹 앱을 개발한 과정과, 앱에 적용된 설계 방법론을 정리한 블로그 포스팅용 자료입니다.

합리식(Rational Method) · 가중 유출계수 · 배관방식별 관경 개수 산정 · 벽면 우수 포함


1. 우수량 산정 이론

합리식 (Rational Method)

소규모 유역의 첨두유량을 산정하는 가장 기본적인 방법입니다.

Q = (1/360) × I × Σ(Cᵢ × Aᵢ) / 10,000   [m³/s]

기호 의미 단위

Q 첨두유량 m³/s
I 강우강도 (Talbot형) mm/hr
Cᵢ 지붕 유형별 유출계수 무차원
Aᵢ 지붕 유형별 면적

강우강도식 — 제주도 Talbot형

I = a / (t + b)   [mm/hr]

설계빈도 계수 a 계수 b I (t=5분)

10년 2,108 13.0 117.3 mm/hr
30년 ★ 2,916 12.0 171.5 mm/hr
50년 3,294 11.5 199.6 mm/hr
100년 3,785 11.2 232.4 mm/hr

★ 일반 건축물 기본 적용 빈도. 제주도는 태풍 영향권이므로 최소 30년 권장.

강우 지속시간 선정 기준

옥상은 유역이 작아 유달시간이 매우 짧습니다. 합계 면적 기준으로 지속시간을 결정합니다.

합계 면적 권장 지속시간

~ 500 ㎡ 5분
500 ~ 2,000 ㎡ 10분
2,000 ~ 5,000 ㎡ 15분
5,000 ㎡ ~ 30분

2. 지붕 유형별 유출계수

복합 지붕 적용 시 가중 유출계수를 산정합니다.

C_w = Σ(Cᵢ × Aᵢ) / ΣAᵢ

지붕 유형 C값 적용 기준

콘크리트·우레탄 방수 0.90 일반 평지붕 방수층
아스팔트 시트 방수 0.88 시트 방수 마감
자갈층 처리 0.75 배수겸용 자갈 포설
녹화 경량형 0.40 토심 200mm 미만, 세덤류
녹화 중량형 0.25 토심 200mm 이상, 교목 식재

3. 상층 벽면 우수 산정

고층 건물(예: 18층) 저층부 옥상정원의 경우 상층 외벽을 타고 내려오는 우수량을 별도 산정해야 합니다.

적용 조건

건물 형태 벽면 우수 산정 필요 여부

상층부가 하층 옥상 안쪽으로 세트백 ✅ 반드시 산정
상층부와 하층 외벽이 동일 선상 ✅ 일부 유입 고려
상층부가 하층보다 돌출 ❌ 지면으로 직접 낙하

산정 공식

Aw_eff = H(벽면높이) × P(둘레) × 노출비율   [㎡]
Q_wall = (1/360) × C_w × I × Aw_eff / 10,000

노출 조건 노출비율

1면 노출 (편측) 0.25
2면 / 사방 균등 0.50
3면 노출 0.75
독립 타워형 1.00

벽면 C값: 콘크리트·커튼월 0.80 / 벽돌·석재 0.65


4. 배관 방식별 산정 기준

핵심 원칙

Manning 경사 공식은 수평관에만 적용되며, 수직관은 별도 용량표(부분흐름 기준)를 사용합니다.

배관 방식 경사 필요 적용 공식

수직 낙수관 (선홈통) ❌ 불필요 수직관 용량표 (만관 1/3 충만)
꺾임 수직관 ❌ 불필요 수직관과 동일
수평 경사관 ✅ 필요 Manning 공식
수평 연결관 + 수직관 ✅ 수평만 구간별 별도 산정

수직 낙수관 용량 (KDS 57 60 00)

만관의 약 1/3 충만 흐름 기준입니다.

관경 용량 (L/s)

φ 75 mm 3.0
φ100 mm 6.5
φ125 mm 12.0
φ150 mm 19.0
φ200 mm 40.0
φ250 mm 73.0
φ300 mm 118.0

Manning 공식 — 수평관 유량

Q = (1/n) · A · R^(2/3) · S^(1/2)   [m³/s]

관 재질 조도계수 n

PVC관 0.010
주철관 0.012
콘크리트관 0.013

필요 개수 및 여유율 산정

필요 개수 = ⌈Q_설계 / Q_1개⌉   (올림 처리)
여유율(%) = (Q_총처리 − Q_설계) / Q_설계 × 100

소관경 다수 설치보다 대관경 1개가 시공성·유지관리 면에서 유리한 경우가 많습니다.


5. 앱 개발 및 배포

기술 스택

항목 내용

Backend FastAPI + Uvicorn
Frontend Vanilla JS (단일 HTML)
배포 플랫폼 Railway
접근 제어 HTTP Referer 헤더 기반 블로그 도메인 화이트리스트
차트 Chart.js

파일 구조

jeju-runoff/
├── main.py            # FastAPI 서버 + 블로그 접근 제한 미들웨어
├── requirements.txt   # fastapi, uvicorn
├── railway.json       # Railway 배포 설정
├── README.md
└── static/
    └── index.html     # 계산기 앱 전체

블로그 접근 제한 구조

ALLOWED_BLOG 환경변수에 허용 도메인을 설정하면 해당 블로그의 iframe에서만 앱이 동작합니다.

# Railway 환경변수 설정 예시
ALLOWED_BLOG = "myblog.tistory.com"

접속 경로 결과

블로그 iframe으로 접속 ✅ 앱 정상 표시
Railway URL 직접 접속 🔒 접근 차단
다른 사이트 iframe 🔒 접근 차단

GitHub → Railway 배포 순서

  1. GitHub 레포 생성 후 git push
  2. Railway → New Project → Deploy from GitHub Repo
  3. 환경변수 ALLOWED_BLOG = 본인 블로그 도메인 입력
  4. Settings → Generate Domain → URL 복사
  5. 블로그 포스팅에 <iframe src="배포URL" ...> 삽입

블로그 임베드 코드


6. 적용 기준 및 참고 법령

기준 내용

제주도 하수도정비 기본계획 Talbot형 강우강도식 계수
KDS 57 60 00 건축물 급배수 설비 설계기준 (수직관 용량)
건축물의 설비기준 등에 관한 규칙 배수설비 기준
하수도법 시행령 우수유출량 산정 기준

본 앱은 설계 참고용이며, 실제 설계 시 최신 기준 및 전문가 검토를 통해 확정하시기 바랍니다.
본 블러그 "APP_설계" 카테고리 참고 https://box-archi.tistory.com/13

 

반응형

제주도 옥상 우수량 산정기 — 사용 안내
🌧 JEJU RUNOFF CALCULATOR

제주도 옥상 우수량 산정기
사용 안내

합리식 · 지붕유형별 면적 · 벽면 우수 · 배관방식별 관경 개수 산정

앱 개요

이 앱은 제주특별자치도 하수도정비 기본계획의 Talbot형 강우강도식합리식(Rational Method)을 이용해 옥상 첨두유량을 자동 계산합니다. 지붕 유형별 면적을 개별 입력하면 가중 유출계수가 자동으로 산정되고, 배관 방식에 따라 필요한 우수관 관경과 개수까지 한 번에 확인할 수 있습니다.

합리식 제주 강우강도식 벽면 우수 산정 배관방식별 개수 산정
사용 순서
1

지붕 유형별 면적 입력

콘크리트 방수, 아스팔트, 자갈층, 녹화 경량·중량형 중 해당하는 유형의 면적을 ㎡ 단위로 입력합니다. 소수점 둘째 자리까지 입력 가능하며 해당 없는 항목은 빈칸으로 두면 됩니다.

여러 유형을 동시에 입력 → 가중 유출계수 자동 계산
2

상층 벽면 우수 포함 여부 선택 (선택)

18층 건물 2층 옥상정원처럼 상층 외벽 우수가 유입되는 경우 토글을 켜고 벽면 높이, 옥상에 면한 벽 둘레, 노출 방향을 입력합니다.

수식: Aw = 높이 × 둘레 × 노출비율
3

건물 용도 선택 → 설계빈도 자동 결정

소규모 주거(10년) / 일반 건축물(30년) / 공공·상업시설(50년) / 특수 지하(100년) 중 선택합니다.

제주도 일반 건축물 기본값: 30년 빈도
4

강우 지속시간 확인

합계 면적을 기준으로 적정 지속시간이 자동 추천됩니다. 필요 시 직접 변경 가능합니다.

~500㎡ → 5분 / 500~2,000㎡ → 10분 / 2,000~5,000㎡ → 15분
5

배관 방식 선택 → 관경·개수 확인

수직 낙수관 / 수평 경사관 / 혼합(수평+수직) / 꺾임관 중 선택하면 관경별 필요 개수와 여유율이 표로 표시됩니다. 원하는 관경을 클릭하면 해당 기준으로 요약 정보가 갱신됩니다.

수평관: 재질·경사 추가 선택 필요
주요 파라미터
파라미터기본값 / 범위설명
콘크리트 방수 C0.90일반 평지붕 방수층 기준
녹화 경량형 C0.40토심 200mm 미만, 세덤류
녹화 중량형 C0.25토심 200mm 이상, 교목 식재
설계빈도30년 기본일반 건축물 기준, 제주 권장
벽면 노출비율0.25~1.001면=0.25, 사방균등=0.50, 독립타워=1.00
Manning n (PVC)0.010주철관 0.012, 콘크리트관 0.013
배관 방식별 산정 기준

↓ 수직 낙수관

선홈통·루프 드레인. 중력 낙하 방식으로 경사 불필요. KDS 57 60 00 만관 1/3 충만 기준 용량 적용.

경사 불필요

↗ 꺾임 수직관

중간 오프셋·엘보 삽입으로 유속 충격 완화. 수직 낙수관과 동일 용량 기준 적용.

경사 불필요

→ 수평 경사관

오배수관 방식. Manning 공식 적용. 재질(PVC·주철·콘크리트)과 경사(1/200~1/33) 선택 필요.

경사·재질 선택

↔↓ 수평+수직 혼합

루프 드레인 → 수평 연결관(Manning) → 수직 낙수관(용량표). 연결관 ≤ 수직관 관경 권장.

구간별 별도 산정
적용 공식 요약
강우강도식 (제주도 Talbot형)
I = a / (t + b) [mm/hr] 예) 30년 빈도 t=5분 → I = 2916 / (5 + 12.0) = 171.5 mm/hr
합리식 — 첨두유량 산정
Q = (1/360) × I × Σ(Cᵢ × Aᵢ) / 10,000 [m³/s]
벽면 유효 집수면적
Aw = H(벽면높이) × P(둘레) × 노출비율 [㎡]
Manning 공식 — 수평관 유량
Q = (1/n) · A · R^(2/3) · S^(1/2) [m³/s]
결과 화면 예시

콘크리트 방수 500㎡, 30년 빈도, 5분 지속, 수직 낙수관 선택 시

첨두유량 Q
0.0215
m³/s
첨두유량 Q
21.44
L/s
강우강도 I
171.5
mm/hr

→ φ150mm 수직관 1개(19.0 L/s) 부족 → φ200mm 1개(40.0 L/s) 선택 시 여유율 +86.5%

주의사항
⚠ 본 앱은 설계 참고용입니다.
· 강우강도 계수는 제주특별자치도 하수도정비 기본계획 기준이며, 실제 설계 시 최신 기본계획 수치를 반드시 확인하세요.
· 수직관 용량은 KDS 57 60 00 기준 만관 약 1/3 충만 흐름 기준입니다.
· 수평관 Manning 공식은 만관(full flow) 기준으로, 실제 설치 조건에 따라 수리계산 검증이 필요합니다.
· 최종 설계는 관련 법령 및 전문가 검토를 통해 확정하시기 바랍니다.
반응형

아이폰 단축어 앱과 Claude API를 연동해서 "헤이 시리" 한 마디로 Claude와 음성 대화하는 방법을 정리했습니다.


📋 준비물

  • iPhone (iOS 16 이상)
  • Claude 앱 설치
  • Anthropic API 키 (console.anthropic.com 에서 발급)
  • API 크레딧 (최소 $5 충전 권장)

🔑 1단계 — API 키 발급

  1. console.anthropic.com 접속
  2. 구글 계정으로 회원가입 또는 로그인
  3. 좌측 메뉴 API Keys 클릭
  4. Create Key 버튼으로 새 키 생성
  5. 생성된 키 복사해서 안전한 곳에 저장 (다시 볼 수 없음)
  6. Plans & Billing에서 크레딧 충전 (최소 $5)

⚠️ API 키는 절대 외부에 공유하지 마세요. 채팅창에 붙여넣지 마세요.


⚙️ 2단계 — 단축어 앱 설정

새 단축어 만들기

  1. 단축어 앱 열기
  2. 우상단 + 버튼으로 새 단축어 생성

액션 1 — 텍스트 받아쓰기

  • 동작 검색에서 "텍스트 받아쓰기" 추가
  • 언어: 한국어(대한민국)
  • 듣기 중단: 정지 후

액션 2 — URL 콘텐츠 가져오기

헤더 3개 추가:

키 값

x-api-key 발급받은 API 키
anthropic-version 2023-06-01
content-type application/json

본문 요청 — JSON 필드 추가:

키 값 타입

model claude-sonnet-4-5-20250929 텍스트
max_tokens 1024 숫자
system 당신은 음성 비서입니다. 짧고 자연스럽게 한국어 구어체로 대답하세요. 마크다운 기호나 특수문자 없이 말하듯이 답변하세요. 텍스트
messages 배열 → 딕셔너리 → role: user / content: 받아쓰기한 텍스트 배열

⚠️ max_tokens는 반드시 숫자 타입으로 설정해야 합니다. 텍스트로 입력하면 오류 발생.

액션 3 — 딕셔너리 값 가져오기 (2번 중첩)

  • 첫 번째: URL 콘텐츠에서 content 키 가져오기
  • 두 번째: 위 결과에서 text 키 가져오기

액션 4 — 텍스트 말하기

  • 앞 단계 결과(사전 값)를 말하기로 연결

🍎 3단계 — 더 간단한 방법 (Claude 앱 공식 연동)

iPhone에 Claude 앱이 설치되어 있다면 훨씬 간단하게 설정 가능합니다.

  1. 단축어 앱에서 + 버튼으로 새 단축어 생성
  2. 동작 검색에서 "Claude" 검색
  3. "음성 대화 시작" 선택
  4. 단축어 이름 저장 (예: AI 또는 어시스턴트)

이렇게 하면 "헤이 시리, AI" 한 마디로 Claude와 바로 음성 대화가 시작됩니다.


🛠️ 트러블슈팅

오류 메시지 원인 해결 방법

credit balance is too low 크레딧 부족 console.anthropic.com에서 충전
max_tokens: Input should be a valid integer 숫자 타입 오류 max_tokens를 숫자 타입으로 변경
model: not found 모델명 오류 claude-sonnet-4-5-20250929 정확히 입력
듣기만 하고 응답 없음 변수 연결 오류 messages의 content에 받아쓰기한 텍스트 변수 연결 확인

✅ 완성 후 사용법

  • "헤이 시리, [단축어 이름] 실행해줘" → 음성 질문 → Claude 답변
  • 홈 화면에 아이콘 추가해서 탭으로도 실행 가능
  • 설정 → 손쉬운 사용 → 뒤로 탭에 연결하면 폰 뒷면 두드려서 실행 가능

작성일: 2026년 5월 | 참고: Anthropic API Docs

 

단축어 링크 필요하신분 참고하세요~! ---- ios에서만 작동됩니다.

https://www.icloud.com/shortcuts/57345763121c46659afcea4cdd43cf46

반응형

 

 

우선 사업자의 이름을 만드는 과정은 무척이나 힘들었다.

 

"그리고(&)"에서 시작된 작명은 아들과 딸의 이름을 줄인 "슈샤" 이건 너무 빵집느낌이라...

 

뭔가 하나가 빠져 있어 보여 다시 고민을 하기 시작했고 이름의 성인 "박"씨와 상자의 중의적인 이름인 "BOX"로 결정한듯 했지만

 

뭔가 또 아쉬워, 이때부터 AI도구(LLM)를 사용하여  많은 네이밍을 했지만 이것 역시 마음에 들지 않았다.

 

결국, 구관이 명관인지라 최종적으로 "BOX"라는 이름을 택했고 시대에 맞춰 플랫폼화에 중점을 두어 

 

"BOX_Archi",     "BOX_Book",     "BOX_DevAI" 등

 

업의 경계가 사라진 지금, 다양한 확장성을 포괄할 수 있는 부분으로 선택하게 되었다.

 

이제 로고 디자인을 해봐야지 하고 '덕테이프'로 핫한 chatGPT를 사용하여 간단한 스케치를 통하여 제작을 시작했다.

 

최초 디자인
2차안
3차안

다양한 대안을 받아 봤지만 이거다 하는 녀석은 없어 보였다.

 

다양한 형태의 제안과 로고에 대한 정의등 AI에게 러닝을 시킨후 다시 대안을 받아보았다.

 

좀더 다양한 대안들이 제시됐지만 아직 눈에 차지를 않았다. 

 

조금 더 고민해보고 다시 진행해 봐야겠다.

반응형

📋 프로젝트 개요

항목 내용

사이트 https://product-builder-recture.pages.dev/
GitHub https://github.com/woogim-afk/product-builder-recture
배포 Cloudflare Pages (자동 배포)
최종 커밋 bb5bd1e
작업일 2026-04-28 ~ 2026-04-29

🛠 전체 작업 내역

1단계 — 기본 사이트 구축

  • index.html : 로또 6/45 번호 추첨기 메인 페이지
  • style.css : 다크/라이트 테마, 반응형 디자인
  • script.js : 피셔-예이츠 셔플 알고리즘 기반 번호 생성, 단일/5개 동시 추첨, 히스토리 기능

2단계 — 기능 확장

  • 다크/라이트 모드 : CSS 커스텀 변수(--bg-gradient 등) + body.light 클래스 토글
  • 5개 동시 추첨 : drawMulti() 함수 및 renderMultiBalls() 렌더링 추가
  • 제휴 문의 폼 (contact.html) : Formspree(xvzdnndp) 연동, _next 리다이렉트, 완료 메시지 처리(https://formspree.io/register)
  • Disqus 댓글 : producttbuilder 쇼트네임, index.html 하단 삽입(https://disqus.com/)
  • 동물상 테스트 (animal.html) : TensorFlow.js MobileNet v2 기반 강아지상/고양이상/믹스상 판별, 브라우저 내 처리로 개인정보 보호(https://teachablemachine.withgoogle.com/)
  • Google AdSense : ads.txt 추가, 모든 페이지 헤드 스크립트 및 광고 유닛 삽입 (ca-pub-4067903464638354)

3단계 — AdSense 승인 최적화 ✅

작업 파일 내용

개인정보처리방침 privacy.html (신규) AdSense 쿠키, 이미지 처리, Formspree/Disqus/TF.js/Cloudflare 등 10개 항목
사이트 소개 about.html (신규) 서비스 설명, 기술 스택, 제휴 안내
로또 콘텐츠 섹션 index.html 로또 소개, 당첨 확률표(1~5등), 이용방법, FAQ
동물상 콘텐츠 섹션 animal.html 동물상이란, AI 분석 방법, 개인정보 안내, 강아지상·고양이상·믹스상 특징
전체 푸터 모든 페이지 로또추첨기·동물상테스트·소개·제휴문의·개인정보처리방침 링크
메타 태그 모든 페이지 meta description, og:title, og:description, og:url, canonical

📁 최종 파일 구조

로또 번호 추첨기/
├── index.html       — 로또 번호 추첨기 (메인)
├── animal.html      — 동물상 테스트 (AI)
├── contact.html     — 제휴 문의 (Formspree)
├── about.html       — 사이트 소개 ✨ 신규
├── privacy.html     — 개인정보처리방침 ✨ 신규
├── script.js        — 추첨 로직
├── style.css        — 공통 스타일
└── ads.txt          — AdSense 인증

✅ AdSense 승인 체크리스트

  • [x] ads.txt 등록 (google.com, pub-4067903464638354, DIRECT)
  • [x] 모든 페이지에 AdSense 헤드 스크립트 삽입
  • [x] 개인정보처리방침 페이지 (privacy.html) — 쿠키·제3자 서비스 명시
  • [x] 소개 페이지 (about.html) — 사이트 목적 및 운영자 정보
  • [x] 제휴 문의 페이지 (contact.html) — 연락처 제공
  • [x] 실질 텍스트 콘텐츠 (로또 설명, 당첨 확률, FAQ, 동물상 설명)
  • [x] 모든 페이지 하단에 개인정보처리방침 링크 노출
  • [x] meta description / og 태그 / canonical URL
  • [x] 다크/라이트 모드 반응형 디자인
  • [x] 복수 페이지 (5개) — thin site 아님

🔧 주요 기술 스택

  • Frontend : Vanilla HTML5 / CSS3 / JavaScript (ES5+)
  • AI 모델 : TensorFlow.js 4.17.0 + MobileNet v2 (CDN)
  • 추첨 알고리즘 : Fisher-Yates Shuffle
  • 폼 처리 : Formspree (서버리스)
  • 댓글 : Disqus
  • 광고 : Google AdSense
  • 호스팅 : Cloudflare Pages + GitHub Actions 자동 배포
반응형

개요

Windows 11 환경에서 Claude Code + ECC(Everything Claude Code) 플러그인 설치 및 설정한 내용 정리.

작업 일자: 2026-04-29 | 작업 경로: C:\\Users\\사용자


1. 설치 과정 요약

Git 설치 (사전 필수)

ECC 마켓플레이스 클론에 git이 필요한데 PATH 미등록 상태였음.

# winget으로 Git 설치
winget install Git.Git

# SSH known_hosts 등록 (GitHub)
mkdir -p ~/.ssh
ssh-keyscan github.com >> ~/.ssh/known_hosts
  • 설치 경로: C:\\Program Files\\Git\\cmd\\
  • Claude Code 재시작 필요 (새 PATH 반영)

ECC 마켓플레이스 & 플러그인 설치

# SSH 오류 발생 시 → HTTPS URL 사용
/plugin marketplace add <https://github.com/affaan-m/everything-claude-code>

# 플러그인 설치
/plugin install everything-claude-code@everything-claude-code

# 적용
/reload-plugins

2. 글로벌 settings.json 설정

경로: C:\\Users\\사용자명\\.claude\\settings.json

항목 값 설명

autoUpdatesChannel latest 최신 버전 자동 업데이트
theme dark 다크 모드
model sonnet 기본 모델: Claude Sonnet
MAX_THINKING_TOKENS 10000 사고 토큰 최대값
CLAUDE_CODE_SUBAGENT_MODEL haiku 서브에이전트 모델
permissions.allow Bash(git *) git 명령어 자동 허용

3. 활성화한 ECC 스킬 3종(프로젝트별 필요시 스킬추가)

스킬 역할

search-first 코드 작성 전 기존 라이브러리/도구 검색 우선
tdd-workflow RED→GREEN→REFACTOR TDD 사이클, 80%+ 커버리지 강제
strategic-compact 컨텍스트 50 tool call 초과 시 /compact 권고

strategic-compact 훅 (settings.json)

"hooks": {
  "PreToolUse": [{
    "matcher": "Edit|Write",
    "hooks": [{
      "type": "command",
      "command": "node \\"C:/Users/사용자명/.claude/plugins/cache/everything-claude-code/everything-claude-code/2.0.0-rc.1/scripts/hooks/suggest-compact.js\\"",
      "statusMessage": "Checking context budget..."
    }]
  }]
}
  • threshold: 50 tool call → 첫 알림, 이후 25회마다 반복
  • COMPACT_THRESHOLD 환경변수로 임계값 조정 가능

4. ECC 핵심 구성 요소

구성요소 경로 역할

Skills ~/.claude/skills/ 재사용 가능한 워크플로우 번들
Agents ~/.claude/agents/ 위임용 서브에이전트
Hooks settings.json > hooks 이벤트 기반 자동화
Rules ~/.claude/rules/ 항상 따르는 코딩 가이드라인
Commands ~/.claude/commands/ 슬래시 커맨드 진입점

5. ECC 주요 스킬 카테고리

코어 워크플로우

  • tdd-workflow — TDD 강제 (unit + integration + E2E)
  • verification-loop — 빌드 → 테스트 → 린트 → 보안 검증
  • strategic-compact — 컨텍스트 예산 관리
  • search-first — 구현 전 기존 도구 검색 우선
  • security-review — 보안 체크리스트
  • continuous-learning-v2 — 세션 패턴 자동 추출 → 스킬 진화

프레임워크별

  • Python: python-patterns, python-testing, django-*
  • Go: golang-patterns, golang-testing
  • Java: java-coding-standards, springboot-*
  • Frontend: frontend-patterns, frontend-slides

비즈니스/콘텐츠

  • deep-research, market-research, article-writing, content-engine

6. MCP 관리 원칙

  • 200k 컨텍스트 중 MCP 과다 활성화 시 실효 컨텍스트 70k로 감소
  • 권장: MCP 20~30개 설정, 실제 활성화는 10개 미만, 활성 도구 80개 미만
  • 확인 명령어: /mcp 또는 /plugins

7. 키보드 단축키

단축키 기능

Ctrl+U 입력 줄 전체 삭제
! 빠른 bash 명령어 실행
@ 파일 검색
/ 슬래시 커맨드
Shift+Enter 멀티라인 입력
Tab thinking 표시 토글
Esc Esc Claude 중단 / 코드 복원

8. 트러블슈팅 기록

문제 원인 해결

git not found Git PATH 미등록 winget 설치 후 재시작
SSH host key 오류 known_hosts 없음 ssh-keyscan github.com >> ~/.ssh/known_hosts
Plugin ecc not found 플러그인 이름 오류 everything-claude-code@everything-claude-code 사용

9. 관련 파일 경로

  • 글로벌 설정: C:\\Users\\사용자명\\.claude\\settings.json
  • ECC 플러그인 캐시: C:\\Users\\사용자명\\.claude\\plugins\\cache\\everything-claude-code\\
  • 프로젝트 설정: C:\\Users\\사용자명\\Desktop\\클로드설정\\260429md\\.claude\\settings.json
  • SSH known_hosts: C:\\Users\\사용자명\\.ssh\\known_hosts
  • ECC 스크립트(훅): .../2.0.0-rc.1/scripts/hooks/suggest-compact.js
반응형

2026년 4월 27일 | 제주 AI 아키랩

📋 목표

Python MCP 서버를 클라우드에 배포해서 어디서든 Claude Desktop과 연결하여 사용하기


⚙️ 환경 설정

GCP 설정 완료

  • 계정: woogim@gmail.com
  • 프로젝트: gen-lang-client-########## (Google AI Studio 자동 생성)
  • 리전: asia-northeast3 (서울)
  • : asia-northeast3-a

로컬 파일 구조 (C:\\Users\\[사용자]\\Desktop\\mcp_test)

mcp_test/
├── server.py          # MCP 서버 메인 파일
├── Dockerfile         # 컨테이너 설정
├── requirements.txt   # 패키지 목록
├── server.js
└── client.js

server.py 최종 버전

import os
from mcp.server.fastmcp import FastMCP

mcp = FastMCP("add-mcp-http")

@mcp.tool()
def add(a: int, b: int) -> int:
    """Add two numbers"""
    return a + b

if __name__ == "__main__":
    port = int(os.environ.get("PORT", 8080))
    mcp.run(transport="sse")

requirements.txt

mcp[cli]
uvicorn

❌ GCP Cloud Run 배포 실패

시도한 것들

  1. API 활성화: run.googleapis.com, cloudbuild.googleapis.com, artifactregistry.googleapis.com ✅
  2. IAM 권한 추가: artifactregistry.reader 역할 부여 ✅
  3. 새 프로젝트 생성: jeju-mcp-server-2026 생성 후 시도 ✅
  4. 이미지 직접 지정 배포 시도 ✅
  5. 다른 리전(us-central1) 시도 ✅

실패 원인

ERROR: Container import failed.
reason: ContainerImageImportFailed

결론: gen-lang-client-* 프로젝트는 Google AI Studio 자동 생성 프로젝트로 Cloud Run 컨테이너 실행에 내부 제한이 있음. 새 프로젝트도 동일 계정 레벨 제한으로 실패.


✅ Railway 배포 성공!

배포 과정

  1. GitHub repo 생성: woogim-afk/mcp-test
  2. 코드 push (폴더 구조: Desktop/mcp_test/)
  3. Railway 접속 → GitHub 연동 → 자동 배포

배포 결과

항목 값

플랫폼 Railway
상태 🟢 Online
URL https://mcp-test-production-f362.up.railway.app
SSE 엔드포인트 https://mcp-test-production-f362.up.railway.app/sse

🔌 Claude Desktop 연결 방법

설정 파일 위치

C:\\Users\\[사용자]\\AppData\\Roaming\\Claude\\claude_desktop_config.json

설정 내용

{
  "mcpServers": {
    "my-server": {
      "url": "<https://mcp-test-production-f362.up.railway.app/sse>",
      "transport": "sse"
    }
  }
}

연결 후 테스트

Claude Desktop에서 add(3, 5) 입력 → 결과: 8


📝 배운 점

  • Google AI Studio 자동 생성 프로젝트(gen-lang-client-*)는 Cloud Run 사용 불가
  • Railway는 GitHub 연동만으로 Dockerfile 자동 감지 후 배포 가능
  • FastMCP의 run() 메서드는 버전에 따라 host, port 파라미터 지원 여부가 다름
  • Cloud Run 배포 시 0.0.0.0:8080 바인딩 필수

🔜 다음 단계

  • Claude Desktop 앱 설치 및 MCP 연결 테스트
  • MCP 서버에 더 많은 도구(tool) 추가
  • 제주 AI 아키랩 프로젝트에 활용

+ Recent posts