앞선 글에서 package 구조, Java access modifier 그리고 ArchUnit을 통해 Hexagonal Architecture를 구현해보았다.마지막에 " [1] 개발 중엔 아직 실수할 수 있다, [2] 테스트를 수행하지 않는다면기존의 문제점은 계속해서 발생한다." 문제점들을 이야기했는데이번 글에서는 멀티모듈, JPMS, Kotlin을 이용해서 이 문제들을 해결해보고자 한다. 3. Multi module (멀티모듈)로 구현하기 Chapter 02: Multi module by KimDoubleB · Pull Request #2 · KimDoubleB/clean-architecture-example github.com 결국 ArchUnit으로는 잘못된 의존을 막을 수 있는데 큰 도움이 되..
서버 개발자들간에는 논쟁이 일어날 수 있는 주제가 여러가지가 있다.그 중 대표적인 두 가지를 뽑자면 “Monolithic과 MSA”이고, 나머지 하나가 오늘 이야기 할 “Clean/Hexagonal Architecture”이다. 나는 보통 애플리케이션/프로젝트를 구성할 때 별 다른 고민없이 Layered Architecture로 구성해왔다.그러는데는 아주 지극히 개인적인 여러 이유가 있다.익숙하다. 나에게도 익숙하고, 남에게도 익숙하다. 러닝커브가 낮아 누가와도 개발할 수 있다.개발이 빠르다. 익숙해서 개발이 빠른 것도 있지만, 계층별로만 역할이 나뉘고 의존성/구현 방향이 단순해 생성되는 클래스/파일의 양이 적어 결과물을 보기까지 개발속도가 빠르다.Layered Architecture 구조의 단점이 와..
클린 아키텍처, 마이크로 서비스 패턴 책을 읽으면서 Command, Query Class들이 나왔는데, 무슨 차이며 어떤 역할이길래 이런 이름(Suffix)으로 네이밍했을까 궁금했다. 근데 책에서 나와있길래 짧게 적어본다. - Command (커맨드, 명령): 데이터 생성/수정/삭제(CUD) 시에 사용 - Query (쿼리, 조회): 데이터 읽기(R) 시에 사용 개발 상에서 많이 사용되던 단어다보니 의미를 생각하지 않아서 이해가 잘 안되던 것이었는데, 단어의 본래 의미와 한국어 해석을 보면 이해가 간다. 결국, 데이터를 생성/수정/삭제하는 CUD 작업과 관련이 되어있다면 Command Suffix가 붙은 네이밍을 사용하고, 데이터를 조회하는 R 작업과 관련이 되어 있다면 Query Suffix가 붙은 네..
- Total
- Today
- Yesterday
- Kubernetes
- 알고리즘
- boj
- HTTP
- k8s
- 클린 아키텍처
- Spring
- container
- OpenTelemetry
- 하루
- c++
- Intellij
- python
- 일상
- Istio
- Spring boot
- tag
- 로그
- docker
- 백준
- MySQL
- Clean Architecture
- Log
- Algorithm
- jasync
- 쿠버네티스
- WebFlux
- gradle
- java
- 비동기
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | |||
5 | 6 | 7 | 8 | 9 | 10 | 11 |
12 | 13 | 14 | 15 | 16 | 17 | 18 |
19 | 20 | 21 | 22 | 23 | 24 | 25 |
26 | 27 | 28 | 29 | 30 | 31 |