Flask - Architecture(아키텍처)

황인용·2020년 2월 3일
0

Flask

목록 보기
11/13

코드구조

아키텍처 고려사항

  • 확장성(Extensibility)

  • 재사용성(Reusability)

  • 보수 유지 가능성(Maintability)

  • 가독성(Readability)

  • 테스트 가능성(Testability)

레이어드 아키텍쳐

  • Presentation Layer

  • Business Layer

  • Persistence Layer

레이어드 아키텍쳐 특징

  • Presentation Layer는 Business Layer에 의존하고,
    Business Layer는 Persistence Layer에 이존하게 된다.

  • 반대로 Business Layer는 Presentation Layer에 대해 독립적이고,
    Persistence Layer는 business나 Presentation Layer에 독립적이다.

  • "Separation of Concerns" : 각 레이어의 역할이 명확하다.
    presentation layer는 business layer를 호출하여 사용.
    business layer는 persistence layer를 호출하여 사용.

Presentation Layer

  • 해당 시스템을 사용하는 사용자 혹은 클라이언트 시스템과 직접적으로 연결되는 부분

  • 웹사이트에서는 UI, 백엔드API에서는 엔드포인트에 해당함.

  • HTTP 요청(request)들을 읽어 들이는 로직을 구현.

  • View

Business Layer

  • 비지니스 로직, 즉 정책을 구현하는 부분.

  • 예를들어 Minitter의 경우, tweet 내용은 300자 이상 넘으면 안되는 로직을 구현.

  • Service

Persistence Layer

  • 데이터베이스와 관련된 로직을 구현.

  • Business Layer에서 필요한 데이터 생성, 수정, 읽기 등을 처리.

  • 실제 데이터베이스에서 데이터를 저장, 수정, 읽어들이기 하는 역할 수행.

  • Model

정리

  • API코드의 구조를 구성할 때 고려해야할 사항
    - 확장성(Extensibility)
    • 재사용성(Reusability)
    • 보수 유지 가능성(Maintability)
    • 가독성(Readability)
    • 테스트 가능성(Testability)
  • 레이어드 패턴을 사용하는 아키텍처는 다음 3가지 레어이로 나뉜다
    - Presentation Layer : 엔드포인트부분(view)
    • Business Layer : 비즈니스 로직부분(Service)
    • Persistence Layer : 데이터베이스 로직부분(Model)
profile
dev_pang의 pang.log

0개의 댓글