잡다꾸리
미누(minu) 프로젝트 대화 내용
사용자 질문
현재 보고있는 프로젝트의 코드명은 minu야 한글로 미누라고 발음해.
응답
안녕하세요! 미누(minu) 프로젝트를 살펴보겠습니다. 먼저 프로젝트의 구조를 파악하기 위해 디렉토리 내용을 확인해 보겠습니다.
프로젝트의 구조를 파악했으니, 이제 프로젝트에 대한 정보를 요약해 드리겠습니다.
미누(minu) 프로젝트는 Spring Boot 기반의 웹 애플리케이션으로 보입니다. 프로젝트는 여러 모듈로 구성되어 있으며, 주요 모듈은 다음과 같습니다:
damda-webapp: 웹 애플리케이션의 메인 모듈
damda-commons: 공통 기능을 제공하는 모듈
damda-domain-data: 도메인 데이터 관련 모듈
damda-workflow: 워크플로우 관련 모듈
damda-system: 시스템 관련 모듈
그 외 여러 bootstrap 모듈들
AppRunner.java 파일을 통해 확인한 바로는, 이 프로젝트는 Spring Boot 애플리케이션으로 Spring Cloud 기능(Feign Client, Discovery Client)을 사용하고 있으며, 패키지 구조는 io.minu.damda와 kr.co.dandisoft.minu를 기본으로 하고 있습니다.
로그 메시지에서 "DAMDA :: WEBAPP"이라는 표시가 있는 것으로 보아, 이 프로젝트는 "담다(DAMDA)"라는 이름의 웹 애플리케이션인 것으로 보이며, "미누(minu)"는 이 프로젝트의 코드명인 것으로 판단됩니다.
이 프로젝트는 MSA(Microservice Architecture) 구조를 따르고 있는 것으로 보이며, 여러 서비스 모듈들이 함께 동작하는 형태로 구성되어 있습니다.
더 자세한 정보가 필요하시면 특정 부분에 대해 질문해 주시기 바랍니다.
사용자 질문
bootstrap으로 시작하는 이름을 가진 모듈들은 배포가능한 jar 형태를 만들 수 있는 모듈들이야. damda-system은 도메인 소스 및 리소스들로 구성되어있고, damda-system은 bootstrap-system에 포함되는 구조지. bootstrap-system은 구성 및 배포를 시작하는 것에 관련된 소스만 있어.
응답
네, 이해했습니다. 프로젝트 구조에 대한 추가 정보 감사합니다. 좀 더 자세히 살펴보겠습니다.
지금까지 살펴본 내용을 바탕으로 미누(minu) 프로젝트의 모듈 구조에 대해 정리해 드리겠습니다.
미누(minu) 프로젝트는 다음과 같은 모듈 구조로 이루어져 있습니다:
bootstrap으로 시작하는 모듈들:
배포 가능한 JAR 형태를 만들 수 있는 모듈들입니다.
예: bootstrap-system, bootstrap-workflow, bootstrap-human-resource-mng 등
이 모듈들은 구성 및 배포를 시작하는 것에 관련된 소스만 포함하고 있습니다.
실제 애플리케이션의 진입점(AppRunner.java)을 포함하고 있습니다.
각 모듈은 해당하는 damda 모듈을 의존성으로 포함합니다.
damda로 시작하는 모듈들:
도메인 소스 및 리소스들로 구성된 모듈들입니다.
예: damda-system, damda-workflow, damda-human-resource-mng 등
이 모듈들은 실제 비즈니스 로직과 도메인 코드를 포함하고 있습니다.
bootstrap 모듈에 포함되는 구조로 되어 있습니다.
damda-commons:
공통 기능을 제공하는 모듈입니다.
다른 damda 모듈들이 의존하는 기본 모듈입니다.
특히, bootstrap-system 모듈은 다음과 같은 특징을 가지고 있습니다:
damda-system 모듈을 의존성으로 포함합니다.
배포 가능한 JAR 파일을 생성할 수 있습니다(bootJar).
Docker 이미지 빌드 설정(jib)이 포함되어 있습니다.
애플리케이션 진입점(AppRunner.java)을 포함하고 있습니다.
damda-system 모듈은 다음과 같은 특징을 가지고 있습니다:
도메인 소스 및 리소스들로 구성되어 있습니다.
시스템 관련 도메인 코드(user, menu, board 등)를 포함하고 있습니다.
damda-commons 모듈을 의존성으로 포함합니다.
Spring Boot, Spring Cloud, MyBatis 등 다양한 라이브러리를 사용합니다.
이러한 구조는 마이크로서비스 아키텍처(MSA)를 따르고 있으며, 각 모듈이 독립적으로 배포 가능한 형태로 설계되어 있습니다. bootstrap 모듈은 배포를 위한 설정과 진입점을 제공하고, damda 모듈은 실제 비즈니스 로직을 구현하는 방식으로 분리되어 있습니다.