포스팅에서의 클린아키텍처는 Ports and Adapters 아키텍처, 헥사고날 아키텍처(육각형 아키텍처) 모두 같은 것을 의미한다. 클린 아키텍처는 도메인 중심의 아키텍처에 적합하기 때문에 도메인 엔터티를 만드는 것으로 시작한 후, 해당 도메인 엔터티를 중심으로 유스케이스를 구현한다. 엔터티에는 비즈니스 업무 규칙이 존재한다. 유스케이스는 엔티티를 감싸고 있다. 유스케이스는 애플리케이션에 특화된 업무 규칙(비즈니스 규칙)을 표현하며, 엔티티 내부의 핵심 업무 규칙을 호출(도메인에 접근)하고 시스템을 사용하는 흐름을 담는다. 엔티티(고수준영역)은 유스케이스영역(저수준영역)을 알게 해서는 안됨에 주의한다. 엔터티는 간단한 객체여야 하며, 프레임 워크 데이터베이스 또는 기타 복잡한 것에 의존해서는 안되고 유..
나는 프로젝트를 개발하면서, 이것이 최선의 코드일까?의 생각에서 시작하여, 이게 최선의 아키텍처 구조일까? 하는 생각의 확장으로, 좋은 코드를 작성하는 방법에서 부터 코드 수준을 넘어서는 좋은 아키텍처에 많은 관심을 갖게되었다. 그런데 좋은 코드에 대한 예시에 대한 자료는 많이 찾아볼 수 있었는는데, 좋은 아키텍처에 대한 예시는 그렇지 못했다.(하지만 다양한 아키텍처에 대한 많은 공부를 할 수 있었다. 그리고 내가 자료를 잘 찾지 못한 것도 한 몫했을것이다..) 좋은 코드와 좋은 아키텍처는 많은 개발을 진행경험하고 다양한 문제를 직면서하면서 점점 구체화되고 생성되어진 것 같다. 좋은 코드, 좋은 아키텍처는 무엇일까? 나는 개발이 그렇듯, 정답은 없지만, 오답은 존재한다 생각한다. 그리고 이번 기회를 통해..
오늘은 드디어 Member 도메인을 처음 설계한 목표 구현을 완료하여 마감을 하려고한다. Member 도메인의 개발은 목표는 23.06.01 ~ 23.06.07 마감하는 것을 목표로 진행 하였으나, 생각보다 2주일이나 더 소요되었다.(총 3주) 무엇 때문에 목표한 기간보다 훨씬 더 많은 기간을 소모하게 되었는가 돌이켜본다면 분명하게 내 개발 역량 부족과 나태한 내 자신이 원인이 아닌가 싶다. 그리고 이는 다음 개발에서 부터는 같은 실수를 하지 않도록 노력할 것이다. ConText Member 도메인은 신발 주문 시스템에서 첫번째로 식별 및 개발한 도메인이다. Member 도메인에서는 다양한 비즈니스 로직가 추가 될 수 있지만, 나는 Member 의 생성 및 업데이트의 기능만 추가하였고, 도메인 로직으로는..