레이어드 아키텍처란? 레이어드 아키텍처는 소프트웨어를 다양한 기능적 층(레이어)으로 분리하여 구축하는 설계 패턴입니다. 각 레이어는 독립적인 역할과 책임을 가지며, 상위 레이어는 하위 레이어의 서비스를 이용합니다. 레이어드 아키텍처의 구조 프레젠테이션 레이어(Presentation Layer): 사용자 인터페이스와 사용자 상호작용을 처리합니다. 비즈니스 로직 레이어(Business Logic Layer): 애플리케이션의 핵심 비즈니스 규칙을 구현합니다. 퍼시스턴스 레이어(Persistence Layer): 데이터베이스와의 상호작용, 데이터의 영속성 관리를 담당합니다. 데이터 액세스 레이어(Data Access Layer): 데이터 소스를 직접 다루며, CRUD 작업을 수행합니다. 레이어드 아키텍처의 장점..
Architecture
소프트웨어 아키텍처의 중요성 소프트웨어 아키텍처는 시스템의 구조를 정의하며, 이는 시스템의 성능, 확장성, 유지보수성에 중대한 영향을 미칩니다. 효과적인 아키텍처 설계는 복잡한 소프트웨어 시스템의 성공적인 구현을 위한 필수적인 단계입니다. 다양한 소프트웨어 아키텍처의 종류 모놀리식 아키텍처(Monolithic Architecture) 전통적인 아키텍처로, 하나의 큰 시스템으로 모든 기능이 통합되어 있습니다. 단순하고 직관적이지만, 대규모 어플리케이션에는 유연성과 확장성의 한계가 있습니다. 레이어드 아키텍처(Layered Architecture) 소프트웨어를 분리된 층(레이어)으로 구성하는 방법입니다. 각 레이어는 독립적인 역할과 책임을 가지며, 일반적으로 사용자 인터페이스, 비즈니스 로직, 데이터 액세스..
마이크로서비스(MSA) 아키텍처 란? MSA 아키텍처는 하나의 큰 애플리케이션을 여러 개의 작은 애플리케이션으로 쪼개어 변경과 조합이 가능하도록 만든 형태를 말한다. 작은 레고 블록(microservice) 하나 하나를 붙여 어떠한 큰 결과물을 만드는 레고 놀이를 생각하면 이해하기 쉽다. 마이크로 서비스의 특징 각각의 서비스는 그 크기가 작을 뿐, 서비스 자체는 하나의 모놀리식 아키텍처와 유사한 구조를 갖는다. 각각의 서비스는 독립적으로 배포가 가능해야 한다. 각각의 서비스는 다른 서비스에 대한 의존성이 작아야 한다. 각 서비스는 개별 프로세스로 구동되며, REST API와 같은 가벼운 방식으로 통신되어야 함. 마이크로서비스(MSA) 아키텍처 장점 배포 관점 서비스 별 개별 배포가 가능하다. (배포 시 ..
모놀리식 아키텍처 (Monolithic Architecture) 란? 모놀리식 아키텍처는 마이크로서비스(MSA) 아키텍처에 반대되는 개념으로, 애플리케이션의 모든 구성 요소가 한 프로젝트에 통합되어 있는 형태를 말한다. 모놀리식 아키텍처 (Monolithic Architecture) 장점 개발 초기에 단순한 아키텍처 구조로 인해 개발에 용이하다. 어떤 서비스든지 개발되어 있는 환경이 같아서 복잡하지 않다. 배포가 간단하다. 확장성이 쉽다. 로드밸런스를 이용하여 로드 부하를 나눠 가지는 방식으로 진행한다. 쉽게 고가용성 서버 환경을 만들 수 있다. End-to-End 테스트가 용이하다. 모놀리식 아키텍처 (Monolithic Architecture) 단점 프로젝트의 규모가 커짐에 따라 애플리케이션 구동 시..