Architecture 5

MVC 패턴 알아보기

📌 MVC 패턴이란? 소프트웨어 설계 시 사용하는 소프트웨어 패턴의 한 종류입니다. Model-View-Controller 패턴의 약자입니다. 이 패턴을 사용함으로써, 사용자 인터페이스(Interface)로부터 비즈니스 로직(Logic)을 분리하고, 애플리케이션의 시각적 요소와 그 이면에서 실행되는 비즈니스 로직 간에 영향을 최소한으로 줄여, 프로그램의 유지 보수성을 높이고, 성능을 향상 시킬 수 있습니다. 즉, 사용자 인터페이스로부터 비즈니스 로직을 분리하여 애플리케이션의 시각적 요소나 비즈니스 로직을 서로 영향 없이 쉽게 고칠 수 있는 애플리케이션을 만들기 위한 소프트웨어 디자인 패턴이라고 할 수 있습니다. 📌 MVC 패턴의 구성요소와 원칙 Model 데이터와 비즈니스 로직을 관리한다. ⇒ 데이터와 ..

Architecture 2023.11.03

Layered Architecture 알아보기

📌 들어가며 시스템을 설계할 때 필수적으로 고려하게 되는 부분이 아키텍처인 것 같습니다. 이때 많은 사람들이 자신이 설계하는 시스템을 표현할때 Layered Architecture를 사용합니다. 이번 포스팅에서는 해당 아키텍처에 대해 알아보는 시간을 갖도록 하겠습니다. 📌 Software Architecture 먼저 '소프트웨어 아키텍처'란 무엇인지 정리해 보도록 하겠습니다. 소프트웨어 아키텍처는 모든 소프트웨어 시스템의 기본 구조를 말하며 소프트웨어 시스템의 구성방법에 대한 중대한 결정사항을 모아 놓은 것이라고 볼 수 있습니다. 시스템 구성 및 동작 원리 구성 요소 간의 관계 및 시스템 외부 환경과의 관계를 묘사 시스템 구성 요소에 대한 설계 및 구현을 지원하는 수준을 시술 요구 사양 및 시스템 수명 ..

Architecture 2023.11.02

응용 서비스는 어떻게 구현해야 하는가

📌 들어가며 이번 포스팅에서는 응용 서비스를 구현할때 항상 절대적일 순 없지만 따르면 좋은 구현 방식에 대해서 포스팅하고자 합니다. API를 개발할 수록 이 기능에 대한 로직은 어디에 있어야 할까? 혹은 응용 서비스가 이렇게 길어지는게 맞나...? 자주 고민하게 됩니다. 물론 도메인의 상황, 팀별 규칙에 따라 달라질 순 있겠지만 통상적인 구현 방식에 대해 정리해 보고자 합니다. 📌 응용 서비스란 응용 서비스는 표현 영역과 함께 사용자와 도메인을 연결해주는 매개체 역할을 합니다. 표현 영역이 사용자로부터 URL, 요청 파라미터, 쿠키, 헤더 등을 이용해서 사용자가 어떤 기능을 실행하기를 원하는지 판별하고 근 기능을 제공하는 응용 서비스를 실행하게 됩니다. 응용 서비스는 실행하는데 필요한 입력값을 메서드 파..

Architecture 2023.03.25

백엔드 아키텍처 개요(2) - DIP

지난 글에서 가장 기본적인 계층 구조의 아키텍처 구성에 대해 알아보았습니다. 이번 글에서는 그러한 계층 구조 아키텍처를 사용했을 때의 문제점과 이를 해결하기 위한 DIP(Dependency Inversion Principle) 의존성 역전 원칙을 알아보도록 하겠습니다. 예를 들어 어떠한 도메인의 가격 계산 규칙 기능이 있습니다. 할인 금액 계산 로직이 복잡해지게 되면 객체 지향으로 로직을 구현하는 것보다 룰 엔진을 사용하는 것이 더 알맞을 때가 있습니다. 다음의 예시 코드는 Drools라는 룰 엔진을 사용해서 로직을 수행하는 인프라스트럭처 영역의 코드입니다. public class DroolsRulerEngine { private KieContainer kContainer; public DroolsRul..

Architecture 2023.01.22

백엔드 아키텍처 개요

대학교 시절과 회사에 입사한지 얼마 되지 않았을 때 까지는 아키텍처의 중요성에 대해 간과했습니다. 그나마 알고 있는 것이라고는 MVC 프레임워크 정도가 전부였습니다. 물론, MVC 프레임워크 역시 아키텍처 영역에서 보기에는 표현영역을 위한 기술 중에 하나일 뿐이지 아키텍처를 대변하지는 않습니다. 회사에서 프로젝트를 진행하면서 DDD 에 관해 접하게 되고 AA(Application Architecture) 분들과 협업을 하게 되면서 아키텍처에 대한 공부 역시 필요하다는 것을 알게 되었습니다. 사실 아키텍처 공부는 정말 끝이 없는 것 같습니다. 정확한 영역이 어디까지인지도 아직 잘 모르겠습니다. 아키텍처를 공부하다 보면 이와 관련된 수많은 다른 영역들을 접하게 됩니다. DIP, infrastructure, ..

Architecture 2023.01.16