← 목록
아키텍처 2026-06-22 28KB 읽기 26분

archytect 회의실 예약관리 프로그램

도메인: https://archytect.crowny.org · 포트: 9937 · 위치: /Users/ef/crowny-archytect 작성일: 2026-06-22

개요

사내 회의실 예약을 신청·승인 워크플로로 관리하는 웹앱. 사용자(80~100명)가 예약을 신청/수정신청하고, 관리자(5명 이내)가 승인·수정승인·직접입력한다. 외부 의존성 0 (node 내장 http만), 판정 로직은 한선씨(판정코어.한선)가 SSOT.

무엇을 했는지

판정코어 (한선씨 SSOT) — 판정코어.한선

4대 판정을 순수 함수로 구현, 자가검증 13/13 통과:
  • 권한판정(관리자여부) → 관리자/사용자
  • 시간충돌(같은방,같은날,시작1,끝1,시작2,끝2) → 겹침(분 단위, 부동소수점 회피)
  • 상태이동(현재,액션,관리자여부) → 요청/승인/거절/수정요청/취소 상태기계
  • 가시성(상태,관리자여부,본인여부) → 신청현황=신청자+관리자만 / 승인현황=모두

런타임 — server.js (판정코어 미러링)

  • 로그인: ID+PIN(4자리+) 자동가입, 관리자목록(data/config.json) 기반 역할판정, SHA256 PIN
  • 예약 신청/수정신청/취소(사용자), 승인/거절/수정승인/직접입력(관리자)
  • 승인·직접입력 시 시간충돌 재검사(409)
  • 가시성: 신청현황은 본인+관리자만, 승인현황은 전체
  • 내려받기: CSV(엑셀 한글 BOM) / TXT, 관리자 전용, 토큰 인증
  • 영속: data/*.json 원자적 저장(tmp→rename)

프론트엔드 — public/{index.html,app.js,style.css}

  • 크라우니 골드 디자인, 로그인→대시보드 SPA
  • 탭: 예약 승인현황 / 신청현황 / 내 예약
  • 기간: 월(기본) / 주 / 년 토글 + 이전·다음·오늘
  • 월간 달력 그리드(상태색), 주/년/신청현황은 리스트+처리버튼
  • 관리자: 직접입력 모달, Excel(CSV)·Text 내려받기 버튼

검증 (E2E 8/8)

가시성(타인 차단)·관리자 신청현황·승인·시간충돌 409·승인후 전체노출·CSV·권한 403 전부 통과.

인프라 결선

  • crowny-ports.sh set archytect 9937
  • gateway.yaml domain: FQDN 수정(archytectarchytect.crowny.org, ports.sh 버그)
  • 라이브 gwlive.toau 재실행(소스 재컴파일 없이 gateway.yaml 재로드) → 공개 443 HTTP 200
  • LaunchAgent com.crowny.archytect 부팅 영속

비용 산정 (사용자 질의 답)

  • 개발비: 150만원 한도 내 — 자체 프레임워크/한선씨 재사용
  • 유지비: 월 2만원(VAT) 한도 내 — 기존 인프라 공유
  • 서버 인프라 별도:
  • 자체호스팅(기본): 월 약 1,000~2,000원(전력만, 도메인·네트워크 0 — crowny.org 서브도메인+자체 DNS)
  • 분리형 클라우드 시: 월 약 6,000~12,000원(소형 VPS 1대 + 도메인 월할)
  • 관련 파일

    /Users/ef/crowny-archytect/
    ├── 판정코어.한선          # 판정 SSOT (13/13)
    ├── server.js              # 런타임
    ├── public/{index.html,app.js,style.css}
    ├── data/{config.json,reservations.json,users.json,seq.json}
    └── logs/
    ~/Library/LaunchAgents/com.crowny.archytect.plist
    

    운영 — 관리자 설정 (오너 작업)

    data/config.jsonadmins 배열에 실제 관리자 ID(최대 5)를 넣고 서버 재기동:

    bash# admins, rooms, title, hours 편집 후
    launchctl kickstart -k gui/$(id -u)/com.crowny.archytect
    
    관리자/사용자 모두 첫 로그인 시 자동 가입(ID+PIN). admins에 든 ID는 관리자 역할.

    잔여 이슈

    • 회의실 목록·운영시간은 config.json 직접편집(관리자 설정 UI 미구현)
    • 알림(이메일/문자) 미연동 — 필요 시 crowny 메일(9610)/CRM 문자 연동 가능
    • 반복예약·정원/비품은 범위 외(요청 시 확장)

    추가: 공개 웹 접속(TLS) 연결 — 2026-06-22 (게이트웨이 체크)

    증상: 라우팅(8080)은 됐으나 브라우저에서 인증서 오류로 "안 보임". 원인: 공개 443 TLS 종단이 stunnel-live.conf(:8443)인데 archytect SAN이 어느 cert에도 없어 마스터 폴백(CN=hansunc) 제시 → 브라우저 거부.

    조치:

    1. 전용 cert 발급: certbot certonly --webroot --cert-name archytect.crowny.org -d archytect.crowny.org (ACME webroot=게이트웨이 8080이 challenge 서빙)
    2. 두 stunnel conf 모두 SNI 블록 추가:
    - stunnel-live-443.conf(:443): sni = https443:archytect.crowny.org - stunnel-live.conf(:8443, 공개 경로): sni = https:archytect.crowny.org
    1. 두 stunnel 재기동 (8443은 gwlive헬스워치독이 영속 백업)
    결과: https://archytect.crowny.org/ → HTTP 200, TLS 검증 통과(-k 불필요), 워밍 0.05s. 기존 도메인(studio/docs/crowny.org/value) 전부 무회귀.

    함정 메모리: feedback_gateway_public_path_is_8443 (공개=8443, 새 도메인 cert는 두 conf 다).

    추가: 알림 + 관리자 설정 + 프로필 (3종) — 2026-06-23

    ① 관리자 설정 UI (admin 전용 ⚙)

    • 관리자 ID 관리(추가/삭제, 최대 5), 회의실 목록 관리, 운영시간, 서비스 제목
    • 알림 채널 토글(인앱/이메일/문자/카카오/웹푸시) + 발송자(architect@crowny.org) 표시
    • API: GET/PUT /api/admin/config — 관리자목록 변경 시 전 사용자 역할 재판정·즉시 반영

    ② 회의실 목록 맞춤

    • 설정 패널에서 칩 UI로 추가/삭제 → 신청·직접입력 드롭다운 즉시 반영(JSON 직접편집 불필요)

    ③ 알림 연동 (전 채널 구현, config 토글식)

    • 인앱: 즉시 완전 작동(🔔 헤더 벨, 미읽음 배지, 30초 폴링, 열면 자동읽음). data/notifications.json
    • 이메일: 크라우니 메일(:9610) 내부배송, 발송자 architect@crowny.org (채널 ON 시)
    • 문자(SMS): 크라우니 CRM(:9748) (채널 ON + 토큰 시)
    • 카카오/웹푸시: 엔드포인트 인터페이스 완비, 키 설정 시 활성
    • 디스패처: 베스트에포트·논블로킹(5초 타임아웃, 실패는 logs/notify.log, 예약응답 차단 안 함)
    • 이벤트: 신청·수정신청→관리자들 / 승인·거절·수정승인·직접입력→신청자 (판정코어.한선 알림대상())
    • 사용자 이메일 변경: 프로필 모달(이메일/전화/채널별 수신 토글). API GET/PUT /api/profile

    판정코어.한선

    • 알림대상(액션) 추가 → 자가검증 16/16
    • server.js가 미러링(알림대상/예약알림/알림보내기)

    게이트웨이 301 무한루프 수정 (중요)

    • 증상: 공개 https 301 루프(자기자신으로 redirect). 백엔드 9937은 직접 200.
    • 원인: gateway.yaml archytect 항목에 httpOnly: true 누락 → stunnel이 TLS 종단(평문 HTTP 전달)인데 게이트웨이가 HTTPS 리다이렉트 → 루프. (정상 서비스 studio/docs는 httpOnly:true 보유)
    • 조치: archytect 항목에 httpOnly: true 추가 + gwlive 재기동. 공개 200 회복.

    확장: 건축 행정 플랫폼 (4메뉴) — 2026-06-23

    archytect.crowny.org를 건축 종합 플랫폼으로 확장. 상단 주메뉴 4개 + SPA 경로 라우팅.

    메뉴 구조

    • 회의실 예약 /reserve (기본 진입) — 기존 예약 시스템 전체
    • 대관 시스템 /rental — 대강당/홀 등 대관 신청·승인·충돌검사·사용료·CSV. API /api/rentals(+/approve|reject|cancel)
    • 법령 질의회신 /law-qa — 질의 등록·분류·검색·관리자(전문가) 답변·근거조문·공개/비공개. API /api/lawqa(+/answer)
    • 건축법령 계산기 /calculator — 건폐율·용적률·법정한도 적합/초과·주차대수·최소조경·허용면적. 13개 용도지역×10개 용도

    한선씨 동반

    • 건축법령계산.한선: 건폐율bp/용적률bp/법정건폐율/법정용적률/주차대수/최소조경 — 자가검증 10/10 (베이시스포인트 정수계산, 부동소수점 회피). 프론트 calc()가 1:1 미러
    • 판정코어.한선 알림대상() — 대관/질의 이벤트도 재사용

    구조 변경

    • index.html: 멀티섹션 SPA(상단 .mainmenu 4탭, 섹션 show/hide, history pushState)
    • server.js: SPA 폴백(확장자 없는 GET→index.html), config에 venues/lawqaCategories, 관리자설정에 대관장소 관리
    • 알림: 대관 신청→관리자, 승인/거절→신청자 / 질의 등록→관리자, 답변→질의자 (인앱+채널 동일 디스패처)

    검증

    • 건축법령계산.한선 10/10, 판정코어 16/16
    • 대관 신청→승인→충돌409, 법령질의 등록→답변→검색, SPA 4경로 200, 공개 HTTPS 200(워밍 0.08s)

    법령엔진 (티옴타음 4상 멀티에이전트) — 2026-06-23

    법령질의·법령계산기를 현업 투입 가능한 신뢰수준으로 고도화. Opus/Sonnet 100에이전트 티옴타음 협업.

    Workflow (archytect-법령엔진)

    • 25항목(계산 9 + 질의 16) × 4상 파이프라인: 티(생성,opus)→옴(웹조사,sonnet)→타(적대검증,opus·high)→음(종합,opus·high)
    • 100 에이전트 · 5.0M 토큰 · 18분 · 모델분산+동시한도10+스로틀로 레이트리밋 회피
    • 산출 → data/lawdata.json (25엔트리, 260KB). 핵심표 고신뢰(건폐율 0.97/용적률 0.95), 특례·완화는 needsHumanReview 정직표기

    검증 성과

    • 용도지역 21개 전부(주거4·상업4·공업3·녹지3·관리3·농림1·자연환경보전1) 건폐율/용적률 법정상한 + 정확한 법조문(국토계획법 시행령 제84·85조)
    • 적대검증(타)이 폐지규정(도로사선제한 2015폐지)·오인용(건축법 제55조)·폐지용어(제2종지구단위계획 2012통합) 색출
    • 조례우선 원칙·산정제외 연면적·일조권·면적산정·주차·용도변경·대수선·인허가 16 QA

    앱 통합

    • 계산기: lawdata에서 21개 용도지역 자동 구동(드롭다운 재구성), 법정한도 적합/초과, 📖 근거법령 패널(조문·공식·조례주의)
    • 법령질의: 상단 📚 법령 지식베이스(신뢰도 배지·근거조문·caveats) + 사용자 질의 분리
    • 한선씨 건축법령계산.한선 21개 용도지역 동기화 → 자가검증 13/13
    • GET /api/lawdata 공개. 데이터 없으면 폴백

    크라우니코드 DB

    • 25 법령 엔트리 → 학습DB 24건 + 한선씨 코어 패턴 학습

    한계(정직)

    • 특례·완화(방화지구·취락지구·임대주택 용적률·공간혁신구역 2024신설 등) 항·호 출처혼선 → caveats/needsHumanReview, law.go.kr 원문대조 전 실무투입 금지 명시
    • 모든 산정에 관할 도시계획조례 최종확인 단서 병기

    법령엔진 2차 정밀검증 (web-grounded) — 2026-06-23

    1차에서 needsHumanReview로 플래그된 특례·완화 조항을 law.go.kr·법제처 원문으로 확정.

    Workflow (archytect-법령2차검증)

    • 10개 쟁점 × 3상(옴 원문조사 sonnet+WebFetch → 타 적대검증 opus → 음 확정 opus·high) = 30에이전트·1.65M토큰·11.7분
    • 전 10건 원문확정(신뢰 0.82~0.97, 평균 0.91) + 정확한 항·호 + 출처 URL

    확정 성과 (정확한 조문번호)

    • 방화지구 내화구조 80~90%: 제84조 제6항 제1호 (1차의 '제2항 이하' 추정 → 확정), 방재지구 150%=제6항 제2호
    • 자연취락지구 60%: 제84조 제4항 제1호 (용도지구라 제1항 아님)
    • 유원지 30%/공원 20%: 제84조 제9항 + 법제처 21-0075(2021.5.12)
    • 기존공장 부지확장 증축: 제84조의2 제4항(2024.5.28 신설), 4개 용도지역 40%
    • 임대주택 용적률 완화: 제85조 제3항 제1호 + 민특법 임대의무기간
    • 공간혁신구역: 법률 제20234호(2024.2.6 공포/8.7 시행) 제40조의3~5, 입지규제최소구역(제40조의2) 삭제
    • 연면적 제외: 건축법 시행령 제119조제1항제4호 가~바목(다·라목 삭제)
    • 주차 단위구획: 주차장법 시행규칙 제3조(국토부령 제1527호, 시행 2026.3.31)
    • 둘 이상 용도지역 걸침: 법 제84조 + 시행령 제94조(330㎡/상업 660㎡)
    • 현행 버전 확정: 국토계획법 시행령 대통령령 제36220호 / 건축법 시행령 제35717호

    반영

    • data/lawdata.json: specialCases[10] + lawVersion 스탬프 추가, zone_bcr/zone_far 신뢰도 0.9·needsHumanReview 해제
    • 계산기 ⚖ 특례·완화(원문확정) 패널 — 조문·원문인용·출처링크·신뢰도
    • 크라우니코드 DB 9건 추가 학습

    규칙기반 추론도구로 승격 (규칙엔진) — 2026-06-23

    법령엔진을 응용질문에 답하는 규칙기반 자문 도구로 승격.

    규칙엔진.한선 (SSOT, 자가검증 16/16)

    • 검증된 사실(21개 용도지역 + 2차 확정 특례)을 조건→결론 규칙으로 인코딩
    • 규칙 발화 우선순위: 방화특례(제84조6항1호 90%) > 취락(4항1호 60%) > 유원지(9항 30%) > 방재(6항2호 ×1.5) > 기본
    • 정북일조 이격(전용·일반주거, 10m경계), 주차(용도별 끝수올림), 조경, 적합판정
    • 함정 학습: hanseonc_high (A==0 그리고 B==0) 다중체이닝 우선순위 오류 → 양성판정 헬퍼함수 분리(정북일조대상 등)

    /api/advise (공개 — 대한민국 누구나)

    • 시나리오{용도지역·지구·용도·내화·재해시설·대지/건축/연면적·높이} → 종합 자문
    • 출력: 적용 건폐율/용적률(특례 사유 발화) · 최대 건축규모 역산 · 주차 · 조경 · 일조 · 적합판정·구속조건 · 발화규칙별 근거조문 · 면책
    • server.js 미러(규칙엔진.한선 SSOT)

    UI (건축법령 계산기 메뉴)

    • [간편 계산 | 규칙엔진 자문(응용질문)] 서브탭
    • 응용질문 프리셋: 최대 건축규모 / 방화지구 특례 / 적합 판정 / 주차
    • 자문 결과 카드: 응용답 히어로 + 적합판정 + 발화규칙(근거조문) + 면책·법령버전

    실증

    • 일반상업+방화+내화 800㎡ → 방화특례 90% 발화, 최대건축 720㎡/연 10,400㎡, 적합
    • 2종일반 근생 330㎡ 높이9m → 60%/250%, 주차 7대, 조경 33㎡, 정북일조 1.5m

    울트라 검증 (진행)

    • Workflow archytect-규칙엔진검증: 8영역 응용 테스트스위트 + 2 적대평가관 커버리지 색출 → 테스트 통과율·누락규칙 반영 예정

    규칙엔진 울트라 검증 결과 — 2026-06-23

    Workflow archytect-규칙엔진검증(10에이전트: 8영역 테스트생성 + 2 적대평가): 테스트 42개·누락규칙 24·오류지적 9.

    적대평가 판정 (전부 원문 대조 후 결론)

    • "정북일조 9m" 지적 → 오판: law.go.kr 제86조 현행 = 10m 경계. 엔진(10m) 정확.
    • "방화 90%/방재 ×1.5 근거없음" 지적 → 오판: 2차에서 제84조제6항제1·2호로 원문확정. 평가관은 요약사양만 받아 몰랐음. 엔진 정확.
    • 테스트 22개 불일치 → 대부분 에이전트 오류: 특례를 자격 없는 용도지역에 적용(예: 1종전용에 방화특례, 2종일반에 방재특례). 엔진은 제84조제6항 자격(방화=6개지역/방재=녹지·관리·농림·자연환경보전)을 정밀 제한 → 엔진이 더 정확. 직접검증 4/4 확인.

    반영한 진짜 누락 (계산 가능 항목)

    • 둘 이상 용도지역 걸침 가중평균 추가: (한도1×면적1+…)/Σ면적 + 과반규칙(소규모≤330㎡→큰쪽, 시행령 제94조). 규칙엔진.한선 자가검증 19/19. 실증: 2종일반600+일반상업400→건폐 68%/용적 670%
    • 적용범위 안내 추가(현업 정직성): 포함 7항목 vs 사이트별확인필요 7항목(대지안의공지·건축선후퇴·채광일조·가로구역높이·주차면제/복합·용적률완화·건폐율완화) — 자문 결과에 명시
    • 방화특례 80~90% 범위 주석(엔진은 상한 90 적용, 조례 확인)

    함정 학습

    • 한선씨 (A==0 그리고 B==0 …) 다중체이닝 우선순위 오판정 → 양성판정 헬퍼함수 분리 (메모리 feedback_hanseon_and_eq_precedence)

    결론

    규칙엔진은 법적으로 정확(자격제한·일조경계·특례근거 전부 원문확정). 사이트별 요소(대지공지·건축선·채광일조)는 범위 밖으로 명시. 현업 1차 검토도구로 투입 가능, 최종 인허가는 건축사·조례 확인.

    규칙엔진 3확장 (채광일조·주차면제·멀티존 UI) — 2026-06-23

    울트라 검증이 짚은 누락 3건을 law.go.kr 원문 확인 후 반영. 규칙엔진.한선 자가검증 23/23.

    ① 공동주택 채광방향 일조 (건축법 시행령 제86조 제3항)

    • 채광창 벽면→인접대지경계선 = 높이×0.5배(도시형생활주택 0.25배). 채광이격cm(높이,도시형)
    • 자문: 용도=공동주택 시 채광 이격 규칙 발화. 실증: 20m→10m(0.5)/5m(도시형 0.25)

    ② 부설주차 소규모 면제 (주차장법 시행령 별표1 비고)

    • 산정 주차대수 1대 미만(연면적<기준면적)이면 0대 면제. 실증: 근생 100㎡→0대, 500㎡→4대
    • 단독주택 50㎡ 이하도 면적/100<1 → 자동 면제

    ③ 걸침대지 멀티존 입력 UI

    • 자문 폼 "둘 이상 용도지역에 걸친 대지" 토글 → 용도지역+면적 2~3행 입력
    • 면적가중평균 자동산정 + 과반(≤330㎡→큰쪽) 규칙. 실증: 3존(2종일반500+일반상업300+자연녹지200)→건폐 58%/용적 535%
    • 도시형생활주택 체크박스 추가

    검증·반영

    • 규칙엔진.한선 23/23 (채광/주차면제/가중평균 포함)
    • 적용범위 안내 갱신: 채광일조·주차 소규모면제를 "포함"으로 이동
    • 크라우니코드 DB 학습 추가

    규칙엔진 3확장 v2 (인동간격·가로구역·내보내기) — 2026-06-24

    • ① 동(棟)간 인동간격 4케이스(제86조3항2호 가~마목): 채광마주봄 높이×0.5/주개구부 max(×0.5,10m)/벽면측벽 8m/측벽측벽 4m. 공동주택+높이 입력 시 표 출력
    • ② 가로구역 최고높이(건축법 §60): 지정 최고높이 입력 → 적합/초과 판정
    • ③ 자문 결과 내보내기: 복사(텍스트)·인쇄/PDF(print CSS)·공유링크(시나리오 URL 인코딩→로그인 후 자동복원)
    • 규칙엔진.한선 27/27. 적용범위 포함 10항목으로 확대
    • 장애복구: stunnel-live.conf irum 섹션 sni=https8443(잘못된 마스터명)이 8443 전체 기동거부→전 도메인 공개 000. https:로 수정 복구. 메모리 feedback_gateway_public_path_is_8443 보강

    플랫폼화: 랜딩·회원등급·대강당·셀코어분석·사례검색 — 2026-06-25

    공개 랜딩페이지 (크라우니 스타일)

    • /landing 공개(로그인 전): 히어로 + 4기능 카드(대강당대관/회의실예약/법령질의회신/건축법령계산기) + 등급 안내
    • 카드/시작하기 클릭 → 로그인. 로그인 후 의도한 메뉴로 라우팅. 노출은 분석 추적

    회원 등급/접근제어

    • 누구나 가입=회원 → 계산기·질의회신만. 지정회원 → 대관·회의실 탭. (메뉴 자체 게이팅)
    • 대관 신청: 대관코드(config.대관코드접두 "1234"로 시작, 관리자 수정) 보유자만. 본인 프로필 입력 또는 관리자 발급
    • 회의실 예약: 관리자가 id/pin 발급(회의실회원=true)한 회원만. 로그인 후 개인정보(주소/연락처/이메일/소속/건축사번호) 입력
    • 백엔드 접근() 플래그(지정/회의실회원/대관자격), 엔드포인트 403 게이팅. 관리자 회원관리(/api/admin/members: 지정·회의실·대관코드 토글, 회의실계정 발급)

    대강당 대관 (유료/공연장)

    • 대관료.한선 7/7: 기본료(시간제/종일제)+장비+감면(공익50/비영리30/주민20)×회차
    • config.hall(500석·무대·시간당10만/일당70만·장비4종). /api/hall, /api/hall/quote(공개 견적). 대강당 신청 시 서버 산정(클라 금액 불신)

    셀코어 사용분석 → 개선도구

    • 분석.한선 15/15: 이벤트가중·핫스코어(시간감쇠)·4상 접속판정·개선규칙(로딩/모바일/프리셋/대관전환)
    • 이벤트 로깅(질의검색·법령계산·대관문의·페이지뷰), /api/track 공개수집, /api/admin/insights(인기질의·인기계산·개선제안)

    법령 질의회신 = 사례 검색(재설계)

    • "질의 게시판" → "실제 질의회신·유권해석 사례를 의미어로 검색"(의견 아닌 사례 출력 + 근거법령)
    • 의미어매칭.한선 11/11: 자카드 유사도·부스트·노출(검증된 사례만)·응용가능 판정. /api/cases 검색
    • 사례 DB는 울트라 Workflow(법제처·국토부 웹그라운딩 수집→충실성검증→의미어코드화)로 구축 중

    한선씨 동반 6종

    판정16/16·계산13/13·규칙27/27·분석15/15·대관료7/7·의미어매칭11/11

    사례 검색 완성 + 대강당/대시보드 UI — 2026-06-25 (2)

    질의회신 사례 DB (울트라 웹그라운딩)

    • Workflow archytect-질의회신사례DB(42에이전트·2.3M토큰): 법제처 유권해석 실사례 62건(검증 58)·20분류·290 의미어
    • 실사례: 걸침대지(19-0392)·필로티(20-0536)·다락(17-0184)·유원지(21-0170)·정북일조(17-0245)·이행강제금(11-0016) 등 안건번호·회신일자·회신요지·근거법령·출처URL
    • data/cases.json (99KB). 의미어매칭(2글자 부분일치로 복합어 대응)

    사례 검색 UI (의견 아닌 사례 출력)

    • 법령질의회신 = 주제 검색 → 관련 사례 카드(분류·원문확인 배지·관련도·질의요지·회신요지·근거법령·출처링크·의미어태그)
    • 응용가능(보통이상 2건+) 배너 + 면책. 분류·인기의미어 브라우즈. 직접질의는 보조

    대강당 대관 UI (유료/공연장)

    • 대관 모달에서 대강당 선택 시 행사유형·회차·감면·부대장비 → 실시간 견적(/api/hall/quote), 사용료 자동산정

    인사이트 대시보드 (개선 도구)

    • 관리자 📊: 총이벤트·접속4상·모바일비율·대관전환 + 유형별 바 + 인기질의/계산/대관 + 셀코어 개선제안

    한선씨 동반 8종

    판정16·계산13·규칙27·분석15·대관료7·의미어매칭11 (+ hanseonc 코어 무수정)

    테스트 안내(/guide) + 작업정리(/task) — 2026-06-25 (3)

    /guide 등급별 테스트 페이지 (공개)

    • 4등급 데모 계정 자동보장(없으면 생성): 관리자 admin/admin1234, 등록사용자(회의실) user/user1234, 대관코드보유 rental/rent1234, 외부사용자 guest/guest1234
    • 각 계정 접근권한 배지(계산기·질의회신/대관·회의실탭/대관신청/회의실예약) + 설명 + ID/PIN 복사
    • 작동/개선 기록 폼(등급·구분·기능·내용·이름) → POST /api/feedback
    • 목적: "각 등급으로 테스트하고 원하는 것 기록 → 관리자가 확인·수정/개선"

    /task 작업정리 페이지 (공개)

    • 구축 내역 7영역 체크리스트(완료) + 피드백 목록(집계: 전체/개선/작동/처리완료)
    • 관리자(arch_tok 보유) → 피드백 상태(접수/개선중/완료) 클릭 변경. PUT /api/admin/feedback/:id
    • 하네스 작업목록(/tasks)에도 후속 4건 등록: 피드백반영·응용대답종합·사례DB확장·개선제안자동실행

    백엔드

    • DEMO 계정 데모보장(), POST/GET /api/feedback, PUT /api/admin/feedback/:id, /guide·/task 라우팅

    복합목적 홍보/마케팅 확장 — 건축 쇼케이스 (2026-06-26)

    배경

    KIRA(대한건축사협회)·서울건축사회 스크리닝 → archytect를 행정 내부도구에서 대외 홍보/마케팅 포함 복합 플랫폼으로 확장.

    KIRA 계열에서 추출한 기능: 건축사 찾기(의뢰인→건축사 검색·정보공개), 작품·실적 홍보(포트폴리오), 건축상/공모전(한국건축문화대상·신진건축사대상), 소식/홍보, 교육·연수, 채용·입찰.

    단계 계획

    • 1단계(완료): 공개 홍보 골격 — 소식/건축사찾기/작품 공개 쇼케이스 + 노출·검색 한선씨 코어 + 셀코어 홍보 이벤트
    • 2단계: 회원 사무소·작품 등록(마케팅 입력) + 관리자 소식/공모 게시
    • 3단계: 의뢰인 문의 매칭·성과 퍼널·SEO

    1단계 산출물

  • 홍보노출.한선 (16/16) — 노출자격·추천점수(조회×1+문의×5+작품×3+최신성)·작품점수(좋아요×4+수상50)·검색매칭(Jaccard)·부스트(지역+30/분야+40)·추천등급(프리미엄≥100/추천≥40/일반)
  • server.js: JS 미러 + 데이터(directory/works/news) + 공개 API
  • GET /api/directory?q&지역&분야 (검색·부스트정렬), GET /api/directory/:id (상세·조회+1)
  • GET /api/works?사무소, POST /api/works/:id/like|view
  • GET /api/news?분류
  • 홍보시드() — 견본 사무소3·작품3·소식3
  • public/홍보.html/showcase /find /works /news 서빙. 3탭(소식·공모 / 건축사 찾기 / 작품). 로그인 불필요.
  • 랜딩 홍보 섹션 + 건축 쇼케이스 진입 카드/헤더 링크
  • 셀코어: 건축사찾기·사무소열람·작품열람 이벤트 → 마케팅 인사이트 기반
  • 검증

    • 홍보노출.한선 16/16, server.js 문법 OK
    • 공개 라우트 전부 200: / /showcase /find /news /works /guide /task /reserve /law-qa /calculator
    • 디렉토리 검색: 지역=서울 → 도시건축사사무소 등급3(프리미엄) 부스트 정상
    • 공개 HTTPS(8443 SNI + 443): /showcase 200 (47ms), /api/news 3건

    관련 파일

    • /Users/ef/crowny-archytect/홍보노출.한선
    • /Users/ef/crowny-archytect/server.js (홍보 데이터·미러·API·시드)
    • /Users/ef/crowny-archytect/public/홍보.html
    • /Users/ef/crowny-archytect/public/index.html (랜딩 홍보)
    • 데이터: data/directory.json · works.json · news.json

    잔여 이슈

    • 2단계: 회원 자가 등록(사무소/작품) + 관리자 소식 게시 UI (현재 시드만)
    • 3단계: 의뢰인→건축사 문의 매칭 알림, 전환 퍼널, OG/SEO 메타

    단계별 공개(관리자 전용)로 전환 (2026-06-26)

    사용자 지시: "기능만 설정해놓고 숨겨놓기. 건축사 정보는 민감 → 단계별 오픈. 관리자만 보이게."
    • config.쇼케이스공개 플래그 신설(기본 false)
    • 쇼케이스 API 4종(directory/works/news) 게이트: 쇼케이스공개===true || 요청자=관리자 아니면 403 {준비중:true}
    • 랜딩 홍보 광고(히어로·카드·헤더링크) 전부 제거 → 공개 노출 0
    • 관리자 진입: 앱 헤더 "🏛 쇼케이스"(관리자만 표시) + /showcase 페이지 내 전체공개 토글 버튼(PUT /api/admin/config {쇼케이스공개})로 단계별 직접 오픈
    • /showcase 비관리자 접근 시 "🔒 준비 중 · 관리자 전용" 잠금화면
    • 검증: 비로그인 403 · guest회원 403 · admin 200 · 랜딩 공개노출 0(앱 내 hidden 버튼만)

    추가: 공간 예약 통합 + 테스터 피드백 반영 — 2026-07-09

    테스터(빈흥기 관리자) 접수 피드백 3건 반영:

    • F1 대관 시간선택에 하루/오전/오후 프리셋 → 대관료.한선 프리셋시작분/프리셋종료분(자정기준 분) + 예약모달 .mtpbtn 버튼. 대관료 검증 13/13.
    • F2 회의실예약/대관 차이 문의 → F3로 근본 통합.
    • F3 대강당·회의실 통합 요청(실제 6개 공간) → 회의실예약+대관을 단일 "공간 예약" 메뉴로 완전 통합.

    공간 예약 통합 구조

    • config.rooms = [대강당,김순하홀,국제회의실,친환경실,중회의실,임원실] + config.roomMeta{floor,paid}. 대강당=1층·유료(hall.name).
    • 유료방 판정: 판정코어.한선 유료공간(유료플래그,같은이름) (19/19). server.js hallAttach(r,d)가 유료방이면 대관료견적으로 fee·hall 부착.
    • 예약 모달: 방 선택 시 대강당이면 유료 필드(#mHall: 행사유형·회차·감면·부대장비·견적) 노출, /api/hall/quote 실시간. 일반방은 무료 승인예약.
    • 메뉴: 대관 탭 제거, "회의실 예약"→"공간 예약", /rental→reserve 리다이렉트. 목록/상세에 층·요금 태그.
    • /api/config에 roomMeta·hallName 노출, admin/config PUT roomMeta 수정 지원.

    테스터 피드백 루프 완성

    • 신규 API POST /api/feedback/:id/status(관리자, status+reply). task.html이 잘못 호출하던 /api/admin/feedback/:id(미존재) 수정.
    • /task 대답글 별도 블록 렌더 + 관리자 상태변경 시 답변 입력. F1/F2/F3 전부 완료+대답글 처리.
    E2E: 중회의실=무료, 대강당 하루종일+음향+동시통역 공익감면=435,000원 자동산정. 공개 9경로 200.