앞선 글에서 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가 붙은 네..
`만들면서 배우는 클린 아키텍처` 책을 보면서 헥사고날 아키텍처 구조에 대해 학습하고 있다. 기존까지는 생각하지 못했던, 또한 패키지나 구조에 대해 잘 몰라 '이렇게 하는게 맞나'하면서 고민했던 것들이 좀 풀려나가는 것 같다. 이 글에서는 학습하며 배웠던 패키지 구조와 간단 아키텍처를 백업용으로 작성하고자 한다. 패키지 구조 책에서는 adapter, application, domain을 주 패키지로 잡고, 내부적으로 port, in, out 등의 부 패키지로 구성하고 있다. com.binux.server ├── BinuxApplication.java ├── BinuxConfiguration.java ├── BinuxConfigurationProperties.java ├── account │ ├── ada..
- Total
- Today
- Yesterday
- Clean Architecture
- container
- 하루
- MySQL
- Spring
- Log
- gradle
- 로그
- OpenTelemetry
- WebFlux
- 클린 아키텍처
- HTTP
- Spring boot
- python
- Kubernetes
- Istio
- k8s
- 일상
- java
- 비동기
- Intellij
- Algorithm
- 쿠버네티스
- c++
- jasync
- boj
- 백준
- 알고리즘
- docker
- tag
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |