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 수정(archytect→archytect.crowny.org, ports.sh 버그) - 라이브 gwlive.toau 재실행(소스 재컴파일 없이 gateway.yaml 재로드) → 공개 443 HTTP 200
- LaunchAgent
com.crowny.archytect부팅 영속
비용 산정 (사용자 질의 답)
관련 파일
/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.json의 admins 배열에 실제 관리자 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) 제시 → 브라우저 거부.
조치:
- 전용 cert 발급:
certbot certonly --webroot --cert-name archytect.crowny.org -d archytect.crowny.org(ACME webroot=게이트웨이 8080이 challenge 서빙) - 두 stunnel conf 모두 SNI 블록 추가:
stunnel-live-443.conf(:443): sni = https443:archytect.crowny.org
- stunnel-live.conf(:8443, 공개 경로): sni = https:archytect.crowny.org
- 두 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/일반)GET /api/directory?q&지역&분야 (검색·부스트정렬), GET /api/directory/:id (상세·조회+1)GET /api/works?사무소, POST /api/works/:id/like|viewGET /api/news?분류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.jshallAttach(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 전부 완료+대답글 처리.