본문 바로가기

ddd5

[리팩토링] 도메인 모델 중심 Clean Architecture 로의 리팩토링 프로젝트를 수도 없이 리팩토링했다. 보다 더 객체지향적인 코드를 작성하기 위한, 유지 보수가 쉬운 코드를 작성하기 위한, 더 작은 객체를 위한 코드를 계속해서 고민하고 구조를 변경했다. 지난 달부터 해서 소프트 웨어 아키텍처에 관해서 관심이 생겼다. 클린 코드를 추구하다 보니 자연스럽게 설계적 고민으로 귀결되었다. 원티드 백엔드 챌린지를 하며 알게된 클린 아키텍처, 도메인 주도 설계 철저 입문, 도메인 주도 설계로 시작하는 마이크로 서비스를 읽어가며, 내가 구성해오던 소프트웨어 설계의 큰 전환점을 맞이하게 되었다. 단순히 예제 프로젝트만을 만드는게 아닌 본 프로젝트에 이를 적용시켜보기로 결정했다. MSA 는 오버 엔지니어링이라 판단했고, 모노리스 구조이지만 최대한 도메인 별 분리가 된 상위 바운디드 컨텍.. 2022. 12. 12.
[감상문] <도메인 주도 설계로 시작하는 마이크로 서비스 개발> 을 읽고 도메인 주도 설계 철저 입문과 같이 구매한 책이다. DDD 와 MSA 라니 제목이 매우 흥미로웠고, 분산 환경에서 정석적인 아키텍처 설계 및 코드 작성법을 배우고 싶었기 때문에 읽게 되었다. 첫 장은 아마존의 비즈니스 민첩성의 비밀 내용을 설명하며 아마존 만의 빠른 배포 속도의 노하우와, 현재 가장 대중화된 인프라인 클라우드 서비스 내에서 어울리는 애플리케이션의 조건을 설명한다. 그리고 자연스럽게 마이크로 서비스의 소개로 이어진다. 마이크로 서비스 아키텍처는 기존 모노리스 아키텍처와 다르게 설계에 각별히 신경을 써야 한다. 상대적으로 유지보수를 더 쉽게 할 수 있는 구조이지만, 데이터 정합성 문제가 가장 큰 이슈이기 때문이다. 그를 보완하기 위한 수많은 패턴들을 소개했다. 애플리케이션 레벨에서도 정합성을.. 2022. 12. 9.
[감상문] 도메인 주도 설계 철저 입문을 읽고 나서 이 책을 읽은 이유는 참 웃프다. ​ 사야 할 책을 착각했다.. ㅎㅎ 착각하고 잘못 구매한 책이다. 당근러에게 구매한 책이라 환불은 어렵고 다시 물어보기 귀찮아서 그냥 읽기로 했다. ​ 코드가 C# 언어로 작성되어 있고, 저자도 일본 사람이라서 안 읽힐 것 같았다. 대충 보다가 안 읽히면 당근에 판매하려고 했었다. ​ 다행히 C#을 좀 해서 그런지 (예제 코드가 그렇게 어렵지 않았다) 그럭저럭 이해해가며 완독했다. ​ ​ 도메인 주도 설계니 계층형 아키텍처, 클린 아키텍처니 설명하는 개념들은 다 오가다가 배우고 봐왔던 코드 구성이 짬짬이 있었다. 그땐 그렇게 써야 되나 보다 하고 앵무새처럼 외워서 썼던 기억이 있다. ​ 프로젝트를 시작하며 이해가 뒷받침되지 못한 틀을 깨고 그냥 정석대로 코드 작성을 했었.. 2022. 11. 27.
[회고] 클린 아키텍처 책 스터디 및 미니 프로젝트를 마치며 최근 신입 개발자로의 여정을 시작하기 위해 채용 연계형 인턴십, 신입 공채를 보고 확인하며 서류 지원을 하고 있다. 여전히 할 일은 산더미지만, 조금 더 시간을 효율적으로 써가며 발전하고 싶기에 읽고 싶었던 책을 가지고 스터디를 하면 어떨까라는 생각을 했었다. 마침 같은 여정 길에 올라있는 친구가 떠올랐고, 제안을 수락하여 만들면서 배우는 클린 아키텍처라는 책을 가지고 2주 간의 스터디를 마쳤다. 이 책을 읽고 소프트웨어의 설계적 고민에 한층 더 깊이 빠지게 됨과 동시에 새로운 세상으로의 발을 디딘 느낌이 들었다. 설계 내용은 평소에 가장 많이 고민했던 부분인지라 책이 이해가 잘 되었었고, 애매했던 부분을 2회독, 다른 관점으로 읽어보려 3 회독하며 완독을 했다. 주관적이지만 개발 공부를 하며 드는 생각.. 2022. 11. 20.
Layered & Domain Architecture 란 무엇일까? 스프링 프레임워크를 공부하며 프로젝트를 설계하는 도중 프로젝트 설계 과정에서 의외의 문제가 발생했었다. 기존에 만들었던 웹 프로젝트대로 Controller & Service & Domain & Repository 패키지를 생성해서 만들었지만 프로젝트를 설계하는 데에 있어서 분명히 설계 기준이 있을 거라는 생각이 들었다. 아니나 다를까 DDD이든 Layered 이든 여러 가지 프로젝트 아키텍처가 존재하는 것을 알게 되었고, 이번 기회에 상세히 정리해서 프로젝트에 구체적으로 적용시켜볼 생각이다. 소프트웨어 아키텍처(Software Architecture) 란? -> 말 그대로 구조이다. -> 여러 가지 소프트웨어 구성 요소가 가진 특성 중 외부에 드러나는 특성, 구성 요소 간의 관계를 표현하는 시스템 구조나.. 2022. 5. 3.
반응형