Files
2nd/10_Wiki/Topics/AI_and_ML/CPTED.md
T
koriweb d8a80f6272 chore(wiki): dangling 링크 canonical 정규화 (768파일/1200건)
이름만 다른(표기 변형) [[위키링크]]를 대상 문서의 canonical 제목으로 치환해
끊겼던 1,200개 링크를 연결. 제목/파일명 정규화 일치만 적용하고 별칭 매칭은
과병합 위험으로 제외(애매성 가드). 원본은 _link_reconcile_backup/ 에 백업.
도구: Datacollect/scripts/link_reconcile_apply.mjs

Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
2026-06-08 12:24:15 +09:00

8.5 KiB

id, title, category, status, canonical_id, aliases, duplicate_of, source_trust_level, confidence_score, verification_status, tags, raw_sources, last_reinforced, github_commit, tech_stack
id title category status canonical_id aliases duplicate_of source_trust_level confidence_score verification_status tags raw_sources last_reinforced github_commit tech_stack
wiki-2026-0508-cpted CPTED (Crime Prevention Through Environmental Design) 10_Wiki/Topics verified self
CPTED
environmental design
defensible space
broken windows
urban safety
Oscar Newman
none A 0.88 applied
urban-planning
security
cpted
defensible-space
broken-windows
smart-city
environmental-design
2026-05-10 pending
language applicable_to
urban planning / security
Urban Design
Smart City
Security Architecture

CPTED (Crime Prevention Through Environmental Design)

📌 한 줄 통찰

"매 공간 으로 범죄 의 prevention". 매 CCTV 의 reactive X — 매 building / lighting / fence 의 design 의 의지 의 deter. 매 5 strategy. 매 modern: 매 smart city + AI 의 simulation 의 augment.

📖 핵심

매 5 strategy (2nd-gen CPTED)

  1. Natural Surveillance: 매 visibility (low fence, transparent wall, lighting).
  2. Natural Access Control: 매 single entry, 매 clear pathway.
  3. Territorial Reinforcement: 매 public-private boundary 의 clear.
  4. Activity Support: 매 people 의 traffic.
  5. Maintenance (Image): 매 broken window 의 fix.

매 historical

  • Jane Jacobs (1961): "The Death and Life of Great American Cities" — 매 "eyes on the street".
  • Oscar Newman (1972): "Defensible Space".
  • C. Ray Jeffery (1971): 매 CPTED term.
  • Wilson & Kelling (1982): 매 broken windows theory.

매 1st vs 2nd vs 3rd generation

세대 강조
1st 매 physical (Jeffery, Newman)
2nd 매 social cohesion (community)
3rd 매 sustainability + tech

매 application 예

  • Park: 매 sightline + lighting + 매 wide path.
  • Apartment: 매 lobby visibility + 매 single entry + 매 maintained.
  • Parking lot: 매 lighting + 매 emergency phone + 매 cctv.
  • School: 매 layered security + 매 visibility + 매 community.
  • ATM: 매 lighting + 매 visibility + 매 mirror.
  • Transit station: 매 sightline + 매 staff presence.

매 modern (smart city)

  • AI surveillance: 매 abnormal pattern detection.
  • Adaptive lighting: 매 motion-triggered.
  • Crowd flow analytics: 매 design feedback.
  • Predictive crime mapping: 매 high-risk area focus.
  • Citizen reporting app: 매 311 / SeeClickFix.

매 limitation / critique

  • Displacement: 매 crime 의 다른 area 의 move.
  • Surveillance: 매 privacy concern.
  • Equity: 매 wealthy area 의 over-invest.
  • False sense: 매 design 의 omnipotent X.
  • Broken windows critique: 매 racial bias.

매 Korea CPTED

  • 매 2014 의 시범 도시.
  • 매 경찰청 의 cooperation.
  • 매 Salt Path / 안심 귀가 길.
  • 매 mural / lighting / mirror.

매 design checklist

  1. 매 sightline 의 unobstructed?
  2. 매 lighting 의 0.5+ lux 의 every spot?
  3. 매 access route 의 single + clear?
  4. 매 dead-end / hidden alcove?
  5. 매 maintenance 의 < 24h response?
  6. 매 territoriality (sign, paint, fence)?
  7. 매 activity (cafe, store) 의 generator?

💻 패턴 (응용 — design checklist + sim)

CPTED audit checklist (programmatic)

def cpted_audit(location):
    return {
        'natural_surveillance': {
            'sightline_coverage': measure_sightlines(location),  # 매 % visible
            'avg_lux_at_night': measure_lighting(location),
            'window_facing_ratio': building_facade_ratio(location),
        },
        'access_control': {
            'entry_count': count_entries(location),
            'pathway_clarity': measure_path_clarity(location),
        },
        'territoriality': {
            'boundary_markers': count_boundary_signs(location),
            'private_public_clarity': assess_boundary(location),
        },
        'activity': {
            'foot_traffic_per_hour': pedestrian_count(location),
            'commercial_density': commerce_per_sqm(location),
        },
        'maintenance': {
            'graffiti_density': count_graffiti(location),
            'broken_lighting_pct': pct_broken_lights(location),
            'litter_score': litter_density(location),
        },
    }

Crime risk simulation

def predict_crime_risk(area, design_params):
    """매 simple model 의 risk score."""
    risk = 0
    risk -= design_params['lux_avg'] * 0.3
    risk -= design_params['sightline_pct'] * 0.5
    risk += design_params['hidden_alcoves'] * 2
    risk -= design_params['foot_traffic_per_hr'] * 0.01
    risk += design_params['litter_score'] * 0.5
    return max(0, risk)

# 매 design alternative 의 비교
baseline = predict_crime_risk(area, current_design)
improved = predict_crime_risk(area, {**current_design, 'lux_avg': 5, 'hidden_alcoves': 0})
print(f'Risk reduction: {baseline - improved:.1f}')

Adaptive lighting (smart city)

class AdaptiveStreetlight:
    def __init__(self, motion_sensor, schedule):
        self.sensor = motion_sensor
        self.schedule = schedule
    
    def update(self):
        time = datetime.now().time()
        # 매 base level
        base_level = self.schedule.level_for(time)
        
        # 매 motion 시 의 brighten
        if self.sensor.motion_detected_recently(seconds=30):
            self.set_brightness(min(100, base_level + 50))
        else:
            self.set_brightness(base_level)

311 / citizen report integration

def cpted_response_pipeline(report):
    """매 citizen report → 매 prioritize."""
    if report.type == 'broken_streetlight':
        priority = 'high' if report.area.crime_rate > MEDIAN else 'medium'
        target_response = 24 if priority == 'high' else 72  # hours
    elif report.type == 'graffiti':
        priority = 'medium'
        target_response = 48
    elif report.type == 'overgrown_bush':
        priority = 'medium'  # 매 sightline 의 obstruct
        target_response = 72
    
    return dispatch(report, priority, target_response)

Design alternative scorer

def score_design_options(options):
    scored = []
    for opt in options:
        score = (
            opt.surveillance_score * 0.3 +
            opt.access_control_score * 0.2 +
            opt.territoriality_score * 0.2 +
            opt.activity_score * 0.2 +
            opt.maintenance_score * 0.1
        )
        cost = opt.estimated_cost
        scored.append((opt, score, score / cost))  # 매 cost-effectiveness
    return sorted(scored, key=lambda x: -x[2])

Predictive crime mapping (caution)

# 매 ProPublica / Gender Shades 의 lesson:
# 매 historical crime data 의 bias.
# 매 over-policing 의 reinforce.

def predict_with_bias_check(features, model, bias_audit):
    pred = model.predict(features)
    
    # 매 demographic 의 audit
    by_demo = bias_audit.check(pred)
    if by_demo['disparity'] > 0.2:
        flag('Disparate impact detected — review required')
    
    return pred

🤔 결정 기준

상황 Strategy
Park redesign Sightline + lighting + activity
Apartment Single entry + lobby visibility
Parking Lighting + emergency call + visibility
Transit Sightline + staff + cctv
Smart city Adaptive lighting + crowd analytics
Tight budget Lighting + maintenance

기본값: 매 surveillance + lighting + maintenance + activity 의 first investment.

🔗 Graph

🤖 LLM 활용

언제: 매 urban planning. 매 building design. 매 smart city. 매 community safety initiative. 언제 X: 매 systemic root cause (poverty 의 substitute). 매 surveillance state justification.

안티패턴

  • Surveillance 의 only: 매 design 의 ignore.
  • Fortress design: 매 community 의 disconnect.
  • No maintenance: 매 broken windows.
  • No activity: 매 dead street.
  • Bias 의 ignore (predictive crime): 매 over-policing.
  • Rich neighborhoods 만 의 invest: 매 inequity.

🧪 검증 / 중복

🕓 Changelog

날짜 변경
2026-05-08 Phase 1
2026-05-10 Manual cleanup — 5 strategy + history + smart-city + 매 audit / sim / adaptive code