정의복잡한 시스템에 대해서 간단한 인터페이스를 제공해서 시스템을 이용하는 사용 객체가 단일 진입점을 가지고도 모든 시스템을 시용할 수 있는 디자인 패턴을 말한다.위에 있는사진과 같이 클라이언트는 facade 시스템의 자세한 코드를 알 필요가 없다. 단지 시스템의 코드를 추상화한 것을 사용할 수 있다.어디서 본그림이지 않는가? 맞다 모듈화이다. 이는 다음과 같은 객체지향 설계 방법을 충족시킬 수 있다.단일 책임 원칙개방 폐쇄 원칙로우 결합높은 응집도정보 은닉인터페이스 분리이는 다음과 같은 장점을 가진다. 단순화: 복잡한 서브시스템의 사용을 단순화캡슐화: 서브시스템의 내부 구현을 감춰 사용자가 알 필요가 없게됨독립성: 클라이언트와 서브시스템 간의 결합도를 낮춤이로인해서 응집도는 높아지고 결합도가 낮아지는 결..
Use-Case Diagram유즈케이스 다이어그램은 시스템과 상호작용을 시각적으로 표현 한 것이다. 사용자의 관점에서 서비스, 기능, 관련 외부 요소를 보여준다. 이것을 사용하면 사용자가 어떤 기능을 사용할때 어떤식으로 연결되는지 직관적으로 볼 수 있다.1. 구성 요소1.1 Use Case시스템이 제공하는 작업 혹은 기능. Actor가 시스템을 통해 수행할 수 있는 하나의 특정 기능을 말함1.2 Actor (행위자)시스템에 대해 수행하는 역할(role), 시스템과 상호작용 하는 사람 또는 사람 혹은 서버사람은 사람그림으로 다른걸 수행해주는 서버는 네모난 상자로 나타내곤 한다.2. 구성요소 관의 관계2.1 연관 (Association) Use Case와 Actor의 관계를 표현한다.2.2 확장 (Exten..
Sequence Diagram 시퀀스 다이어그램은 프로그램 실행 과정을 시각적으로 나타내는 다이어그램이다. 프로그램 흐름에 따라 객체나 이벤트 간의 상호 작용을 시각적으로 보여주는 다이어 그램이다. 이 시퀀스 다이어그램을 사용하면 어떤 객체가 어떤식으로 상호작용하는지 알수 있으니 API 설계를 좀더 쉽게 할수 있다. 시퀀스 다이어그램에는 여러가지 구성 요소가 있다. 이 구성요소를 알아보자 1. 객체와 생명선 1.1 객체 (Object) 시스템의 다른 부분과 상호 작용하는 객체나 요소를 나타낸다. 주로 사각형으로 표시되며 이름 혹은 식별자가 포함될수 있다. 1.2 생명선 (Lifeline) 세로 점선으로 표시되며 위에서 아래로 갈수록 시간의 경과를 의미한다. 1.3 활성 박스 (Activation Box)..
Software Architecture Patterns 시스템의 설계, 구조, 행동을 결정하는 일련의 설계 원칙과 같은 가이드라인의 집합이다. 이런 가이드라인은 시스템을 효율적으로 구성하고 유지보수 할 수 있도록 돕는다. 오늘은 이중 요즘 뜨고있는 MSA와 많이 쓰인다고 볼 수 있는 Monolithic에 대해서 알아보려고 한다. 1. Monolith Architecture 단일체 아키텍처라고 부른다. 모든 업무 로직을 하나의 코드베이스로 묶어서 서비스하는 방식이다. 즉 하나의 큰 단일 단위로 개발하고 배포하는 방식이다. 쇼핑몰을 예로 들자면 하나의 App에 쇼핑, 결제, 회원관리등 BusinessLogic, Data Access, User Interface모두가 한 App에 들어가 있다. 장점 하나의 코..
RESTful API라는 것은 시스템이 인터넷을 통해서 정보를 교환할때 사용하는 인터페이스이다.소프트웨어끼리 통신할때 사용하는 표준이라고 생각하면 된다.추가적인 설명을 보자1. API란?application programing interface 즉 API는 소프트웨어끼리 통신할때 지켜야할 것들이 있다면 이를 정의한 규칙이다.데이터를 어떤 방식으로 주고 받을 지 정하는 방식이다.웹 API는 2가지 계층으로 나뉘게 되는데 클라이언트웹에서 정보에 엑세스 하려고하는 사용자이다.리소스다양한 애플리케이션이 클라이언트에 제공하는 데이터이다. 이떄 클라이언트에게 데이터를 전송하는 시스템을 server라고 한다.장점으로는 리소스의 출처에 대해서 자세히 알 필요가 없다는 것에 있다.2. REST란?REST란 Represe..