개요 코틀린을 공부하다 보면 이펙티브 자바라는 책에서 제안했던 베스트 프랙티스 오버랩되어 보이는 경우가 종종 있는데 코틀린이 자바에 불편한 내용을 해결하기 위해 탄생했기 때문인가 싶다. 코틀린과 자바를 비교해서 보다 보면 오히려 자바에 대해 더 잘 알게 되는 게 아닌가 싶은데 서로가 다른 그 지점이 자바에 있었던 문제에 해결책 이여서다. 그래서 이펙티브 자바와 이펙티브 코틀린의 서로 연관된 챕터를 비교 정리해 보면 좋지 않을까 싶어 시리즈로 글을 작성해나갈 예정이다. 생성자 대신 정적 팩토리 메서드(함수)를 고려하라 자바에서는 메서드 코틀린에서는 함수라고 얘기하지만, 매번 소괄호치고 둘 다 쓰기는 난잡해지는 것 같아 정적 팩터리 함수로 통일해 쓸 생각이에요, 이 주네는 이펙티브 자바에서는 Item. 01..
2. 헥사고날(Hexagonal) 아키텍처로 전환하기 어쩌면 작은 스타트업에서는 적합하지 않을 수 있겠지만, 일반적인 계층형 아키텍처를 헥사고날 아키텍처로 전환하는 작업을 하면서 깨지는 테스트를 어떻게 보수하고 헥사고날 아키텍처에 익숙해지는 경험을 하고. 어떤 장점이 있는지 느껴보고자 하였다. 📅 일정 22.11.22 ~ 22.11.25 🎯 목적 미니 커머스를 헥사고날 아키텍처로 전환하여 헥사고날 아키텍처를 경험하는 것을 목적으로 한다.. 📢 요구사항 추가적인 피쳐는 없다. 현재 계층형 아키텍처에서 헥사고날 아키텍처로 전환하는 작업을 진행한다. 헥사고날(Hexagonal) 아키텍처 헥사고날 아키텍처는 포트와 어댑터(ports-and-adapters) 아키텍처로도 알려져 있는데, 데이터베이스나 UI가 없이..
1. ATDD 기반으로 커머스 개발 최근 학습 과정에 성장에 정체가 느껴져 고민을 해 보았는데 요즘 회사를 제외하고는 직접 고민을 통해 문제를 해결하는 것보다는 강의나 책을 보며 따라서 작성하거나 책을 읽으며 개념적인 부분을 채우기만 했다는 생각이 들었다. 개인 적으로는 어느 한 쪽이 중요하다기보다는 간접 경험과 직접 경험의 적절한 밸런스를 통해 간접적인 내용을 체화시키는 과정이 필요하다고 생각하는데 계속해서 머릿속에 쑤셔 넣기만 하고 그것을 채화하는 것이 부족했다는 생각이 들었다. 때문에 학습 방법을 조금 바꾸어 책이나 다른 매체를 통해 학습한 내용을 사이드 프로젝트에 직접 적용해보는 과정을 가지기로했다. 사이드 프로젝트는 가상의 회사의 제품을 만든다는 생각을 가지고 진행하기로 했다. 경험할 수 있는 ..
메시지 브로커와 이벤트 브로커 브로커 브로커는 매개 혹은 중계하는 역할이라는 의미를 가진다. 메시지 브로커와 이벤트 브로커는 이름 그대로 메시지 전달의 중계자 이벤트 전달의 중계자이다. 이와 같이 중계역을 두는 이유가 무엇일까? 상호간의 중간자가 없다면 서로 연결하기 위해서 서로가 구체적으로 알 필요가 있다. 때문에 서로가 종속된다는 단점을 가지게 돼 중간자가 필요하다. 이와 같이 중간자를 두는 패턴은 다양한 곳에서 사용된다. 예시로는 DIP나 MVVM등이 있다. 중간의 브로커를 둔다는 것은 일종의 의존성이 역전되는 것을 의미한다. 결국 브로커의 역할은 브로커로 연결된 양 쪽의 결합도를 낮추는 것이다. 메시지와 이벤트 메시지 기반 시스템과 이벤트 기반 시스템에서 각각의 차이는 아래와 같다. 메시지 기반 ..
- Total
- Today
- Yesterday
- OOP
- multimap
- 메모리 파편화
- 객체 풀
- Memory Fragmentation
- 수평 분할
- 외부 단편화
- pass by value
- Session
- 동적 디스패치
- 정적 타입 언어
- 내부 단편화
- RestAssured
- Object Pool
- 뾰족함
- 메모리 단편화
- 장애 해결기
- 클린 아키텍처
- pool
- Clean Architecture
- pass by reference
- 육각형 아키텍처
- Sticky Session
- 수직 분할
- 세션 불일치
- SpringBoot 2.2
- ATDD
- 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 |