[MSA] 개인 프로젝트 Monolithic to MSA 전환기 - (1) MSA란?
·
아키텍쳐
저는 현재 진행중인 간단한 게시판 도메인 개인 프로젝트가 있습니다. 현재의 프로젝트 아키텍쳐는 Monolithic 아키텍쳐입니다. Monolithic 아키텍쳐에서 MSA로의 전환을 경험해보고 싶어서 개인 프로젝트에 적용하고자 합니다! 개인 프로젝트인만큼 엄~청나게 규모가 작지만 작은 상태에서 전환해보고 그 이후 MSA에서 확장도 시간이 되면 경험해보려고 합니다! 실전에 들어가기 전에, 간략하게 Monolithic 아키텍쳐와 MSA 아키텍쳐가 무엇인지 이론적으로 먼저 알아보겠습니다. 개인 프로젝트에 적용하는 만큼 제 개인 프로젝트에 빗대어서 설명을 해보겠습니다! 개인 프로젝트 ERD는 다음과 같습니다. 정말 단순한 게시판 서비스로, Member 서비스와 Board 서비스 2가지 도메인의 서비스만 존재합니다..
Controller와 Service 레이어 간 요청 & 응답 Dto 사용에 관하여
·
아키텍쳐
🌈 0. 들어가기 전 이번에 Controller와 Service 레이어에서 Dto를 주고받는 과정에 대해 생각해보게 되었다. 이전에는 관성적으로 Controller와 Service 간의 요청, 응답 Dto 각각 하나로 관리했었다. 이때, Layered Architecture와 유지보수성의 관점에서 두 레이어 간의 Dto 사용을 다시 생각해보게 되었다. Web 요청 & 응답 시에 Controller와 Service 간의 Dto 사용에 대해 개인적인 생각을 기록하고자 한다. 🎯 1. Web 응답 : Service에서 Response Dto 생성 후 Controller에서 반환? 일반적으로, Web 응답에 Service가 Response Dto를 Controller에 반환하는 경우가 대부분일 것이다. ✅ Se..
[아키텍쳐] 패키지 구조 : 계층형 VS 도메인형 어떤 것을 선택할까?
·
아키텍쳐
🎯 0. 들어가기 전 MVC 패턴 & 자바 기반의 콘솔 애플리케이션에서는 관성적으로 model(domain) & controller & view 패키지를 만들고 시작하는 경우가 대부분이었다. 웹 애플리케이션을 구현하면서, 설계 단계에서 관성을 버리고 패키지 구조에 대해서 고민하기로 했다. 그리고 설계하면서 설계 단계에서 패키지 구조에 대한 고민을 겪었다. 늘 하던 것처럼 '계층형'으로 패키지 구조를 만드는 것이 좋을까? '도메인형' 구조가 있다는데 이 구조를 적용해볼까? 계층형과 도메인형 둘 중 하나를 선택하기 위해, 두 구조의 장단점을 비교해보자. 장바구니 애플리케이션이라고 가정하고, 도메인이 'Member', 'Product', 'Cart'가 있다고 하고 비교해보자. 🎯 1. 계층형 구조 contr..
[아키텍쳐] Service, Repository가 왜 필요할까?
·
아키텍쳐
🎯 0. 주제 선정 이유 하나의 애플리케이션을 만들 때 자연스럽게 Controller, Service, Repository, Dao를 나누고 시작하는 경우가 많았다. Controller는 HTTP 요청 및 응답을 처리하는 가장 앞 단이기 때문에 자연스럽게 존재해야했고 Dao는 DB와 연결해서 데이터를 영속화하기 위해 필요한 것이 자연스러워보였다. 하지만, Service와 Repository는 왜 필요한지 이유를 정확히 알지 않고 관성적으로 쓰는 경우가 많았다. 그래서 Layered Architecture를 공부한 지금, 왜 Service, Repository가 필요한지 내 생각을 정리해보려고 한다. 우테코 미션에서 경험해보면서 생긴 나의 생각을 정리해보겠다! (주관적인 내용이라 틀린 부분이 있을 수 있다..
[아키텍쳐] Layered Architecture란? (feat. 자동차 경주 미션 예시)
·
아키텍쳐
🎯 1. Layered Architecture란? Layered Architecture : 계층화 아키텍쳐 Layered Architecture는 어느 하나의 프레임워크에 종속적인 개념이 아니라 소프트웨어 개발에서 일반적으로 흔히 사용되는 아키텍쳐의 개념이다. Layered Architecture는 각 구성 요소들이 '관심사의 분리(Separation of Concerns)'를 달성하기 위해 '책임'을 가진 계층으로 분리한 아키텍쳐이다. 관심사의 분리 : 책임(관심사)을 기준으로 다른 책임(관심사)를 분리하는 것 ※ 그렇다면, 관심사의 분리를 왜 할까? 하나의 계층에 관심사가 여러개가 존재한다면 해당 계층의 응집도가 떨어지고 결합도가 높아진다. 각 계층들을 관심사 기준으로 분리함으로써 계층의 응집도를 ..
BE_성하
'아키텍쳐' 카테고리의 글 목록 (2 Page)