본문으로 건너뛰기
cccskills
무료GitHub에 공개

architecture-paradigm-layered

Applies layered n-tier architecture with enforced boundaries. Use when designing moderate systems needing clear presentation, domain, and persistence layers.

한국어 요약은 준비 중입니다. 원문 설명을 표시하고 있습니다.

실행 점수 미검증

설치 방법 보기

포함된 파일(1)

  • SKILL.md5.7 KB

SKILL.md(원문)

설치하기 전에 에이전트에게 전달되는 지시 내용을 확인할 수 있습니다.

The Layered (N-Tier) Architecture Paradigm

When to Employ This Paradigm

  • When teams need clear architectural boundaries and a familiar structure for moderate-sized systems.
  • When compliance or operations teams require clear separation of concerns (e.g., UI vs. domain logic vs. persistence).
  • When the deployment artifact remains a monolith, but code clarity and separation are degrading.

When NOT To Use This Paradigm

  • When high scalability demands require independent scaling of components
  • When multiple teams need independent deployment cycles
  • When complex business logic requires frequent cross-layer communication
  • When microservices architecture is already planned or in place
  • When real-time processing requirements make layered communication too slow

Adoption Steps

  1. Define the Layers: Establish a clear set of layers. A common stack includes: Presentation -> Application/Service -> Domain -> Data Access.
  2. Enforce Dependency Direction: Code in a given layer may only depend on the layer immediately below it. Forbid any "upward" dependencies or imports.
  3. Centralize Cross-Cutting Concerns: Implement concerns like logging, authentication, and validation as centralized middleware or policies, rather than duplicating this logic in each layer.
  4. Test Each Layer Appropriately: Apply testing strategies suitable for each layer, such as unit tests for the domain layer, service-layer tests for orchestration logic, and integration tests for persistence adapters.
  5. Document and Enforce Interactions: Maintain up-to-date dependency diagrams and use automated architecture tests to prevent developers from creating "shortcut" dependencies that violate the layering rules.

Key Deliverables

  • An Architecture Decision Record (ADR) that captures the responsibilities of each layer, the allowed dependencies between them, and the policy for any exceptions.
  • A formal dependency diagram stored with the project documentation.
  • Automated architectural checks (e.g., using ArchUnit, dep-cruise, or custom scripts) to prevent rule violations from being merged.

Technology Guidance

Layer Implementation Patterns:

  • Presentation Layer: React/Vue/Angular (Frontend), MVC Controllers (Backend)
  • Application Layer: Service classes, Application services, Use case orchestrators
  • Domain Layer: Business entities, Domain services, Business rules validation
  • Data Access Layer: Repository pattern, ORM mappers, Data access objects (DAO)

Architecture Enforcement Tools:

  • Java: ArchUnit for dependency rule testing
  • JavaScript/TypeScript: ESLint rules with dependency tracking
  • C#: NDepend for architectural analysis
  • Python: Custom decorators and import analysis tools

Common Layer Stacks:

  • 3-Layer: Presentation → Business Logic → Data Access
  • 4-Layer: Presentation → Application → Domain → Infrastructure
  • 5-Layer: UI → Controller → Service → Domain → Persistence

Real-World Examples

Enterprise ERP Systems: SAP and Oracle ERP use layered architecture to separate user interfaces from business logic and database operations, enabling different frontend applications to share the same business rules.

Banking Applications: Financial institutions employ layered architecture to maintain strict separation between customer-facing interfaces, transaction processing, and secure data storage for regulatory compliance.

E-commerce Platforms: Traditional e-commerce sites use layered architecture to separate product catalogs, shopping cart logic, order processing, and payment handling into distinct layers.

Risks & Mitigations

  • Excessive Rigidity and Latency:
    • Mitigation: For features that span multiple layers, strict adherence can lead to excessive "pass-through" code and increased latency. In such cases, consider using a Façade pattern to provide a more direct interface where appropriate.
  • "Leaky" Layers:
    • Mitigation: Developers may be tempted to bypass architectural rules for expediency, which degrades the architecture. Treat all architectural violations as build-breaking failures or critical issues in code review.

Concrete Components

Vocabulary for the tools and abstractions an implementation of this paradigm tends to carry. Not dependencies, and not tools: frontmatter.

  • dependency-validator: fails the build when a layer imports above its allowed depth
  • layer-enforcer: static-analysis gate that checks namespaces match layer rules
  • architecture-compliance-checker: diffs the implemented layer graph against the documented one

Exit Criteria

  • An ADR captures the chosen layer stack (3-layer, 4-layer, or 5-layer), responsibilities per layer, allowed dependency direction, and the policy for cross-layer exceptions.
  • A formal dependency diagram is committed to project documentation and matches the ADR's stated layer boundaries.
  • Automated architectural checks (ArchUnit, dep-cruise, or equivalent) are wired into CI and fail the build on any upward dependency.
  • Cross-cutting concerns (logging, auth, validation) are implemented once as middleware or policy and are not duplicated across layer implementations.

리뷰

아직 리뷰가 없습니다. 사용해 본 소감을 남겨 주세요.

댓글

로그인 없이 쓸 수 있습니다. 사용 후기, 질문, 작동하지 않은 환경 등을 편하게 남겨 주세요.

아직 댓글이 없습니다. 첫 댓글을 남겨 보세요.

보내면 바로 공개됩니다. 이메일 주소나 전화번호 같은 개인 정보는 쓰지 마세요. URL은 2개까지입니다.

0 / 1,000자

이 양식은 reCAPTCHA로 보호되며 Google 개인정보처리방침 및 서비스 약관이 적용됩니다.

같은 저장소의 스킬

Shapes turns action-first: action leads, steps numbered, state restated. Use for ADHD-friendly output. Do not use to trim tokens; use response-compression.

한국어 요약은 준비 중입니다. 원문 설명을 표시하고 있습니다.

athola/claude-night-market3432026년 10월 24일 업데이트

Inverts burden of proof for code additions. Use when reviewing PRs, planning refactors, or running unbloat to challenge every addition's necessity.

한국어 요약은 준비 중입니다. 원문 설명을 표시하고 있습니다.

athola/claude-night-market3432026년 10월 24일 업데이트

Tracks per-agent token usage and flags waste in parallel dispatch. Use when evaluating parallel agent efficiency or after a multi-agent run.

한국어 요약은 준비 중입니다. 원문 설명을 표시하고 있습니다.

athola/claude-night-market3432026년 10월 24일 업데이트

Coordinates Claude agent teams via filesystem protocol. Use when orchestrating parallel agents with task dependencies. Do not use for single-agent tasks.

한국어 요약은 준비 중입니다. 원문 설명을 표시하고 있습니다.

athola/claude-night-market3432026년 10월 24일 업데이트

Evaluates API surface design, consistency, and exemplar alignment. Use when reviewing public API changes or before releasing a new API surface.

한국어 요약은 준비 중입니다. 원문 설명을 표시하고 있습니다.

athola/claude-night-market3432026년 10월 24일 업데이트

Selects architecture paradigm via research before scaffolding. Use when architecture is undecided and the choice needs justification and documentation.

한국어 요약은 준비 중입니다. 원문 설명을 표시하고 있습니다.

athola/claude-night-market3432026년 10월 24일 업데이트

athola의 스킬 모두 보기

이 스킬의 문제 신고