기술 블로그
/
[Spring MSA] 00. 학습내용
Search
Duplicate
💡
[Spring MSA] 00. 학습내용
상태
소개문
수업
Spring MSA
주제
4 more properties
참고내용
조사
참고내용
NOTE
도메인 주도 설계
DDD(Domain-Driven Design) 계층구조(Layered Architecture) 알아보기
시작하기 앞서 도메인이 무엇인지, 도메인 주도 설계(Domain-Driven Design)란 무엇인지부터 가볍게 알고 넘어가자. 도메인이란 사전적 의미는 '영역', '집합'이다. '실세계에서 사건이 발생하는 집합' 이라고 생각하면 쉬울 것 같다. DDD에서 말하는 도메인은 비즈니스 도메인을 말하며, 비즈니스 도메인은 유사한 업무의 집합이다. 쇼핑몰을 예로 들면, 쇼핑몰에서는 손님들이 주문하는 도메인(Order Domain)이 있을 수 있고, 직원입장에선 옷들을 관리하는 도메인(Manage Domain)이 있을 수 있고, 결제를 담당하는 도메인(Payment Domain)이 있을 수 있다. 이렇게 여러가지 도메인들이 상호작용하며, 비즈니스 도메인별로 나누어 설계하는 것이 바로 도메인 주도 설계(이하 DDD..
DDD Bounded Contexts & Subdomains
Bounded Contexts, subdomains and strategic design from Domain-Driven Design explained. 0:00 Complex Systems 0:26 Ambiguous Language 1:26 Separating Contexts 2:06 Context Map 2:22 Types of Subdomains 3:11 Integrating Between Contexts
제로부터 시작하는 DDD를 위한 이벤트스토밍
서론 최근 다양한 소프트웨어 개발 방법론에 대해서 탐구하고 있었다. 테스트 주도 개발(TDD, Test-Driven Development), 행동 주도 개발(BDD, Behavior-Driven Development)등의 개발 방법론을 살펴보던 중, 도메인 주도 설계(DDD, Domain-Driven Design)에 대한 내용을 찾아 보게되었는데, 소프트웨어의 복잡성을 줄이고, 비즈니스 로직의 이해를 향상시킬 수 있다는 것으로 알게 되었다. 소프트웨어의 복잡성을 어떤 방법으로 줄일 수 있는지에 대해 많은 관심이 있었는데, 다른 개발 방법론 보다 도메인 주도 설계에 대해 필요성을 더욱 느끼게 되어 가장 우선적으로 찾아보기 시작했다. 이번에는 그 도메인 주도 설계에 대해 찾아본 내용을 간략하게 정리하여, ..
[Backend] ㄷㄷㄷ: Domain Driven Design과 적용 사례공유 / if(kakao)dev2022
Legacy Server의 포팅을 위해 Domain Driven Design을 적용하여 MSA 화 한 사례를 공유합니다. #MSA #DDD 카카오 엔터테인먼트에서 백엔드 개발자로 일하고 있는 셜록입니다. git blame을 열면 혹시나 제가 짠 코드일까 두근두근하면서, 레거시 서버로 고통받았던 나날과 함께 backlog를 열심히 청소하는 중입니다. ifkakaodev2022에 대한 자세한 정보는 👉 https://if.kakao.com ifkakaodev2022에 대한 문의는 👉 if@kakaocorp.com #카카오 #이프카카오 #개발자컨퍼런스 #기술 #개발 #ifkakao2022 #ifkakaodev2022
Why DDD, Clean Architecture and Hexagonal ?
어느 순간부터 소프트웨어 개발 세계에서는 도메인 주도 설계, 클린 아키텍처라는 용어가 사용 되기 시작했습니다. 이것들은 도대체 어떤 것이며, 왜 등장하게 됐을까요? 도메인 주도 설계(Domain-Driven Design) 💡 소프트웨어의 본질은 해당 소프트웨어의 사용자를 위해 도메인에 관련된 문제를 해결하는 능력에 있다 DDD와 객체지향 도메인 주도 설계를 보다 잘 이해하고 적용하기 위해선 객체지향에 대한 이해가 필요합니다. 객체지향의 본질과 핵심은 뭘까요? 저는 객체 그 자체라고 생각합니다. 객체지향이라는 것은 결국 각 객체간 역할을 명확히 가져가고, 각 객체간에 메시지를 주고 받는 형태의 프로그래밍 방법론이라 생각하기 때문인데요. 그렇다면 객체지향 프로그래밍에서 사용되는 이 객체들은 어떻게 추려낼 수..
DDD(Domain Driven Design)
Domain Driven Design에 대해 알아보자
DDD 핵심만 빠르게 이해하기
마이크로서비스의 설계 방법론인 DDD(Domain Driven Design)에 대해 제가 가진 지식과 그간의 경험을 기반으로 정리하였습니다. 이 글을 읽기 전에 먼저 일하는 방식 변화를 이끌고 있는 애자일, 마이크로서비스, 데브옵스, 클라우드에 대해 기본적인 이해를 하실것을 권장 합니다. https://happycloud-lee.tistory.com/261?category=8322466 일하는 방식 변화 핵심만 빠르게 이해하기: 애자일, 마이크로서비스, 데브옵스, 클라우드 새로운 변화의 물결 학습 목표 마이크로서비스가 최근에 왜 주목 받고 있는지 거시적 관점인 일하는 방식 변화의 측면에서 이해하는 것이 목표입니다. 이를 위해 일하는 방식 변화가 왜 필요한 happycloud-lee.tistory.com ..
CQRS 패턴이란...?
CQRS : Command Query Responsibility Segregation)즉, CQRS 패턴은 커맨드와 책임을 분리하는 패턴이다.책임 분리를 위해서는 코드의 모듈이 분리되어야 한다.
소프트웨어 ‘설계’의 정의는 변해야 한다 | 요즘IT
올해 2월과 3월에 썼던 두 편의 설계 관련 글이 계기가 되어서 개인 브런치에 틈이 날 때마다 생각을 기록하기 시작했습니다. 19편의 기록을 남기면서 설계에 대한 생각을 꾸준히 하는 중에 마침 동료의 모델링 과정을 도우면서 새롭게 느끼는 점을 공유합니다.
ddd-example-ecommerce
클린 아키텍쳐 (헥사고날 아키텍쳐)
스프링부트 헥사고날 아키텍쳐 코드 구조
스터디 메인 페이지 * 헥사고날 아키텍쳐를 이제 공부 시작해보는거라 틀린 내용이 있을 수 있습니다. 헥사고날 아키텍쳐 스터디를 시작했는데, 책(만들면서 배우는 헥사고날 아키텍처 설계와 구현)의 개념들이 초반부터 좀 어려웠다. 구체적인 코드를 먼저 짜보지 않고 설명만 보면 너무 이해가 더딜 것 같았다. 내 경우에 스프링부트로 프로젝트를 만들 때 사용할 아키텍쳐를 공부해보기 위해 시작한거라 책에서 설명한 헥사고날 구조가 스프링부트에 어떤식으로 적용될지부터 감이 와야 이후 내용을 진행할 수 있을거라 생각했다. 그래서 책의 내용을 보고 예상되는 코드 구조를 한번 짜봤다. 현업에서 현재 헥사고날 아키텍쳐를 적용중인 분께 여쭤보니 다행히 코드 구조 자체는 헥사고날 구조가 맞다고 들어서 만들어본 코드를 기준으로 헥사..
클린아키텍처
[설명] 클린 아키텍처를 실제 구현해 보았습니다. [프로젝트해시태그] #cleanarchitecture #springboot [관련링크] - 왜 프로젝트를 멀티 모듈로 구성할까 https://youtu.be/VPzg61njKxw - Process Integration https://youtu.be/3JkzbzneCy8 - 소리치는 아키텍처를 위한 빌드 모듈 분리 https://youtu.be/8lHQEye8xsQ - Event Storming https://youtu.be/uocEsOuvfwk - 개발 공정 https://youtu.be/f1-ZOrLCBEA - 회원가입 : usecase 설계구현 https://youtu.be/uzmikMAsCYg - 회원가입 : api구축 https://youtu.be/ehcyuVh3frY - 회원가입 : infra구축 https://youtu.be/3N_VVxDoxvM - 회원가입 : UI 구현 https://youtu.be/ZNxSvfHYTlU [챕터] 00:00 intro 03:27 멀티 모늘 구성 29:58 Process Integration 49:06 소리치는 아키텍처 01:14:30 Event Storming 01:29:22 개발공정 01:53;54 usecase 설계구현 02:19:28 api구축 02:38:58 infra 구축 02:59:09 UI구현
만들면서 배우는 클린 아키텍처 - 예스24
우리 모두는 낮은 개발 비용으로 유연하고 적응이 쉬운 소프트웨어 아키텍처를 구축하고자 한다. 그러나 불합리한 기한과 쉬워보이는 지름길은 이러한 아키텍처를 구축하는 것을 매우 어렵게 만든다. 이 책에서는 전통적인 계층형 아키텍처(layered architectu...
아키텍처 패턴과 도메인 주도 개발
참조 도메인 주도 설계 철저 입문 - 예스24 NHN FORWARD 22 - 클린 아키텍처 애매한 부분 정해 드립니다. - YouTube 소프트웨어 아키텍처란 ? 소프트웨어 아키텍처는 기능과 구조 중 구조에 대한 이야기 코드를 구성하는 원칙 좋은 아키텍처를 가진 프로젝트에서는 고민하지 않아도 됨 (책) 일반적인 소프트웨어 개발에서 아키텍처는 가장 중요한 개념이지만 DDD…
MSA, Kafka
댓글 : 이벤트스토밍
[설명] 댓글기능을 하나의 도메인으로 보고 이벤트스토밍을 진행해봤습니다. [프로젝트해시태그] #therapy #eventstorming #댓글 [챕터] 00:00 intro 02;22 요구사항 03:44 이벤트 스토밍 08:09 모델 정의 08:42 마무리
EventStorming2Code
EventStorming to Code Generator
EventStorming2Code
EventStorming to Code Generator
[MSA] Outbox Pattern
MSA 아키텍처? 마이크로서비스아키텍처에 대한 화두가 널리 퍼진지 한 8년정도 된 것 같다. 대학교 1학년 때(2014년도)에 쿠버네티스에 대해 알게되어 도커컨테이너에 대해 공부했었던 기억이 있는데, 인프라(infrastructure)영역은 쿠버네티스, 오픈시프트(redhat), 탄주(vmware) 등의 오케스트레이터를 통해 널리 사용하고 있는 것 같다. 그럼 이제 어플리케이션영역이 마이크로서비스화 되어야한다. 필자는 작년 한 해동안 마이데이터 제공자 API 프로젝트를 openshift 기반 환경에서 진행하였는데, redhat 기반이라 해당 플랫폼에서 제공하는 3scale(API G/W), rhsso(인증), Fuse, Jboss 를 사용하여 컨테이너를 운용했다. 하지만 마이데이터 제공자는 단순히 Rea..
Microservices: Clean Architecture, DDD, SAGA, Outbox & Kafka
Learn Spring boot microservices with Clean & Hexagonal architectures, DDD, SAGA, Outbox, CQRS, Kafka, Kubernetes & GKE
Apache Kafka를 사용하여 EDA 적용하기
안녕하세요, 여기어때의 결제정산개발팀에서 예약 개발 업무를 맡고 있는 paori 입니다.
Spring Cloud로 개발하는 마이크로서비스(인프런 강의 정리)
시스템의 수평적 확정에 유연하다확장된 서버, 시스템 부하분산 가용성 보장시스템 또는 서비스 어플리케이션 단위 패키지(컨테이너 기반)서비스 생성-통합-배포, 비즈니스 환경 변화에 대응 시간 단축분활된 서비스 구조무상태 통신 프로토콜서비스 추가 삭제 자동 감지변경된 서비스
조사
NOTE
Kotlin으로 Spring AOP 극복하기! | 카카오페이 기술 블로그
Kotlin의 문법적 기능을 사용해서 Spring AOP 아쉬운 점을 극복한 경험을 공유합니다.
Kotlin + Spring 튜토리얼 따라하기
많은 Java + Spring 기반으로 웹 백엔드 개발을 하던 회사들이 하나둘 언어를 Kotlin으로 전환하고 있습니다. 저 역시 예외는 아니라서, 새로 합류한 팀에서는 Kotlin + Spring으로 서비스를 구성하고 있네요. 예전에는 개인 공부의 성격으로만 Java + Spring 5를 공부했다면, 이젠 생존형(?)으로 Kotlin + Spring 5를 공부하게 되었습니다. 간단하면서도 하나의 flow를 따라서 Kotlin + Spring 개발을 해 보고자, Spring 공식 튜토리얼을 따라해보게 되었습니다. Spring Boot + Kotlin 튜토리얼 GitHub 링크 다만 공식 문서가 작성된 시점은 Spring 2.3.0이 최신 버전이던 시점이라... Gradle 등 여러 환경이 조금 오래 됐습..
Get started with Spring Boot and Kotlin | Kotlin
Get started with Spring Boot and Kotlin. Create a Spring Boot application with Kotlin.
GitHub - joneconsulting/toy-msa at springboot3.2
A Toy project for a mas practice. Contribute to joneconsulting/toy-msa development by creating an account on GitHub.
Spring Cloud로 개발하는 마이크로서비스 애플리케이션(MSA) 강의 - 인프런
Spring framework의 Spring Cloud 제품군을 이용하여 마이크로서비스 애플리케이션을 개발해 보는 과정입니다. Cloud Native Application으로써의 Spring Cloud를 어떻게 사용하는지, 구성을 어떻게 하는지에 대해 배울 수 있는 강의...