개발자
안녕하세요? 요즘 프로젝트에 아키텍처도 적용해보고 재사용성이 좋은 코드를 만들기 위해 열심히 삽질중인 대학생입니다. 최근 계층화 아키텍처와 DI를 알게되어 제 코드에 적용시켜보려고 하고있는데 도메인 관심사 분리에 따라 코드를 어디서부터 어디까지 같은 도메인에 넣어야 할지 헷갈리네요 예를 들어 제가 구현해야하는 비즈니스 요구사항이 게시판 기능이라고 할때 1. 게시글 목록을 조회하면 게시글 제목과 댓글의 개수가 함께 목록으로 뜬다 2. 게시글 상세 조회를 하면 게시글 내용과 댓글의 내용이 함께 뜬다 이와 같은 요구사항을 구현해야 한다고 가정하겠습니다. 먼저 게시글 목록을 조회하는 기능을 구현한다고 했을때 처음에는 아래의 첨부하는 사진(1)과 같은 의존관계를 생각했습니다. 왜냐하면 댓글 도메인은 순수 댓글과 관련된 기능들에 관한 코드가 들어가야 한다고 상각했기 때문에 "게시글에 달린 댓글 개수"를 구하는 인터페이스는 댓글 기능 자체에서는 필요없으니 게시글 도메인에서 구현해야 한다고 생각했거든요 그런데 이게 정답인지는 잘 모르겠습니다.. 댓글 개수를 조회하는 기능을 댓글 도메인에 구현하고 게시글 도메인을 댓글 도메인에 의존하는게 맞나? 싶기도 하고..사진(2) 너무 헷갈리네요..뭐가 정답일까요?
답변 2
게시글과 댓글에서 댓글의 갯수를 게시글 목록에서 보아야 할 때, "댓글의 갯수를 조회한다" 라는 기능이 게시글 도메인에 포함되느냐 또는 댓글 도메인에 포함되느냐 하는 질문으로 이해했습니다! 맞다면, 게시글 도메인이 가져가는 게 좋아보입니다. 사실 풀어내는 방법이야 다양해서 어떤 선택을 하더라도 큰 문제가 될 지.. 의문이 들지만. 게시글이 본인에게 달린 댓글을 알고 있어야 하니까 댓글의 갯수 또한 자연스레 알고 있을 것 같네요. " 최근 계층화 아키텍처와 DI를 알게되어 제 코드에 적용시켜보려고 하고있는데 도메인 관심사 분리에 따라 코드를 어디서부터 어디까지 같은 도메인에 넣어야 할지 헷갈리네요." 위 문장이 좀 헷갈리는데.. 계층화 아키텍처와 DI와 도메인 관심사 분리가 모두 독립적인 내용인지라 이걸 모두 포함해서 쭉- 설명을 드려야할 지, 또는 답변 2번째 문단에 적은 것처럼 어느 도메인이 좋을 것 같다! 이것만 답하면 될지요. 후자가 맞다면 답변은 이렇게 마무리합니다!
김태민
작성자
부산대학교 it응용공학과 • 2023년 04월 09일
아하 제가 이해도가 부족하다보니 말을 너무 어수선하게 쓴것같네요 ㅠㅠ 질문의 핵심은 말씀해주신 대로 게시글의 댓글 갯수를 조회하는 기능은 어떤 도메인이 가져가는지가 궁금했던게 맞습니다. 감사합니다!
도메인 모델링에서는 도메인 개념을 파악하고 이를 객체로 표현하는 작업이 중요합니다. 이때, 객체들 간의 관계는 도메인 모델에 따라 결정됩니다. 먼저, 게시글과 댓글은 서로 다른 도메인으로 볼 수 있습니다. 게시글 도메인과 댓글 도메인은 서로 분리하여 구현하고, 이들은 인터페이스를 통해 연결될 수 있습니다. 예를 들어, 게시글 도메인에서는 게시글의 제목과 내용, 게시글에 달린 댓글의 개수를 관리할 수 있습니다. 댓글 도메인에서는 댓글의 내용, 작성자, 게시글 번호 등을 관리할 수 있습니다. 이때, 게시글 도메인에서 댓글의 개수를 조회하는 인터페이스를 제공하고, 댓글 도메인에서는 이 인터페이스를 구현하여 게시글 도메인에서 사용할 수 있도록 합니다. 즉, 게시글 도메인에서 댓글의 개수를 조회하는 인터페이스를 구현하는 것이 올바른 방법입니다. 이는 댓글 도메인이 게시글 도메인에 의존하는 것이 아니라, 게시글 도메인에서 필요한 기능을 인터페이스를 통해 사용하는 것입니다. 이렇게 도메인 모델을 구성하면, 비즈니스 요구사항이 바뀌어도 각 도메인을 독립적으로 변경할 수 있어 유연하고 확장성 있는 코드를 구현할 수 있습니다 ----- ✅ Chat GPT의 답변을 평가해 주세요! 틀린 내용은 없는지, 답변이 도움이 되었는지 댓글로 작성해 주세요.
커리어리 AI 봇의 답변을 평가해 주세요!
지금 가입하면 모든 질문의 답변을 볼 수 있어요!
현직자들의 명쾌한 답변을 얻을 수 있어요.
이미 회원이신가요?
지금 가입하면 모든 질문의 답변을 볼 수 있어요!