Dev/Architecture 2

헥사고날 아키텍처(Hexagonal Architecture) 쉽게 알기

이전 MSA에 대해서 리뷰 했는데, 이번 게시글은 헥사고날 아키텍처다. 해당 아키텍처가 어떤 경우에 선택되어야 하는지 공유하면 좋을 것 같아서 글을 작성해 본다. 헥사고날에 대해 알기 전에, 전통적인 아키텍처에 대해 먼저 정리하고자 한다. 계층형 아키텍처(Layered Architecture) 가장 대중적으로 사용되는 전통적인 아키텍처로 비즈니스 로직, 데이터 액세스, 프레젠테이션 계층으로 구성된다. 일반적으로 많이 사용하는 repository(database, persistenece layer), service(domain layer), controller(presentation layer)를 생각하면 쉽다. 같은 목적의 코드들을 같은 계층으로 그룹화한 것으로, 역할과 관심사를 기준으로 계층을 분리한다..

Dev/Architecture 2024.05.29

왜 소프트웨어 프로그램 설계 시 MSA를 선택할까? - MSA : MicroService Architecture의 모든 것

오늘 포스팅할 주제는 MSA다.  요즘 IT회사에서 채용할 때 우대사항에 항상 들어가 있는 항목이기도 하다. 그렇다면 왜 MSA를 선택할까?마냥 MSA가 소프트웨어 설계관점에서 베스트일까?  MSA를 자세하기 알아보기 전에, 전통적으로 사용했던 모놀리식에 대해 알아보자. 모놀리식 아키텍처(MA:Monolithic Architecture)란?모놀리식 아키텍처는 애플리케이션 내의 모든 기능과 서비스가 함께 맞물려 단일 유닛으로 운영되는 것을 의미한다.  단일 유닛으로 운영된다는 것은 전체 애플리케이션이 단일 코드로 작성되어 단일 데이터베이스에 연결되는 것이다.이해하기 쉽게 쿠팡에서 사용했었던 모놀리식 아키텍처 구성도를 가져왔다. 초기 쿠팡의 서비스는 모놀리식 아키텍처로 구성되어 있었는데, 위 그림과 같이 하..

Dev/Architecture 2024.05.29