Skip to content

dongjun1217/BootGenie

Repository files navigation

BootGenie : Spring 초기 구성 프로젝트

Background

주니어 개발자들이 스프링 프로젝트를 시작할 때, 구조 패턴에 대해 잘 모르는 경우가 많습니다. 이를 돕기 위해 웹 페이지에서 구조 패턴을 선택하면 해당 패턴으로 프로젝트가 구성되며, 각 클래스에 해당 클래스의 역할과 구조 패턴 내에서의 역할이 주석으로 작성된 프로젝트 생성 도구를 개발하고자 합니다. 이 도구는 주니어 개발자들이 더 쉽게 스프링 프로젝트를 시작하고, 구조 패턴을 이해하는 데 도움을 줄 것입니다.

Requirements

Must Have

  • 구조 패턴 선택 기능
  • 스프링 버전 선택 기능
  • 의존성 선택 기능
  • 빌드 방법 선택 기능 (Maven/Gradle)
  • 생성된 각 클래스에 주석으로 역할 설명 추가
  • 웹 인터페이스 제공

Should Have

  • UI의 사용성 개선
  • 다양한 구조 패턴 지원 (MVC, Hexagonal 등)

Could Have

  • 사용자 정의 템플릿 추가 기능
  • 다국어 지원

Method

본 섹션에서는 요구사항을 충족시키기 위한 기술적 방법을 설명합니다. 이 프로젝트는 웹 인터페이스를 통해 사용자에게 다양한 스프링 구조 패턴을 선택할 수 있는 기능을 제공하며, 선택한 패턴에 따라 프로젝트를 생성합니다. 각 클래스에는 해당 클래스의 역할과 패턴 내에서의 역할을 설명하는 주석이 추가됩니다.

아키텍처 개요

프로젝트는 클라이언트-서버 아키텍처로 설계됩니다. 클라이언트는 사용자 인터페이스를 제공하는 웹 애플리케이션이며, 서버는 프로젝트 생성을 처리하는 백엔드 애플리케이션입니다.

architect.png

주요 컴포넌트

  1. 웹 인터페이스

    • 사용자가 구조 패턴, 스프링 버전, 의존성, 빌드 방법을 선택할 수 있는 인터페이스 제공
    • 선택된 옵션을 서버로 전송
  2. 프로젝트 생성기

    • 구조 패턴에 따라 프로젝트를 생성
    • 각 클래스에 주석을 추가하여 역할 설명
  3. Spring Initializer API

    • 스프링 프로젝트 템플릿을 생성하기 위해 사용

데이터베이스 스키마

데이터베이스는 사용되지 않으므로 스키마는 필요하지 않습니다.

알고리즘 및 로직

  1. 구조 패턴 선택 로직

    • 사용자가 선택한 구조 패턴에 따라 미리 정의된 템플릿을 사용하여 프로젝트 생성
    • 각 템플릿은 해당 패턴에 맞는 디렉토리 구조와 클래스를 포함
  2. 주석 추가 로직

    • 각 클래스 파일에 주석을 추가하여 클래스의 역할과 구조 패턴 내에서의 역할 설명

logic.png

Implementation

  1. 프로젝트 구조

    • 클라이언트: React.js 또는 Vue.js를 사용하여 웹 인터페이스 구현
    • 서버: Spring Boot를 사용하여 백엔드 구현
  2. 구현 단계

    1. 웹 인터페이스 구축
      • 구조 패턴, 스프링 버전, 의존성, 빌드 방법을 선택할 수 있는 폼 구성
      • 폼 데이터를 서버로 전송하는 기능 구현
    2. 서버 구현
      • Spring Boot 애플리케이션 설정
      • 구조 패턴에 따라 프로젝트 템플릿을 생성하는 로직 구현
      • 각 클래스 파일에 주석을 추가하는 기능 구현
      • 프로젝트 파일을 압축하여 클라이언트에 전달하는 기능 구현
    3. 통합 및 테스트
      • 웹 인터페이스와 서버 간 통신 테스트
      • 다양한 구조 패턴에 대한 프로젝트 생성 테스트
      • 사용자 피드백을 반영하여 UI/UX 개선
  3. 기술 스택

    • 프론트엔드: React
    • 백엔드: Spring Boot, Java
    • 빌드 도구: gradle
    • 배포: Docker
    • Cloud: AWS

Milestones

  1. 프로젝트 초기 설정 및 요구사항 정의 (1주)
  2. 웹 인터페이스 프로토타입 개발 (2주)
  3. 백엔드 프로젝트 생성기 개발 (3주)
  4. 웹 인터페이스와 백엔드 통합 (1주)
  5. 테스트 및 사용자 피드백 반영 (2주)
  6. 최종 배포 및 문서화 (1주)

Gathering Results

프로젝트 완료 후, 다음 항목을 평가합니다:

  1. 요구사항 충족 여부 (구조 패턴, 스프링 버전, 의존성, 빌드 방법 선택 기능)
  2. 사용자 피드백을 통해 UI/UX 평가
  3. 생성된 프로젝트의 품질과 주석 설명의 명확성

About

Empowering Developers, One Boot at a Time with Boot-Genie.

Resources

License

Stars

Watchers

Forks

Packages

No packages published

Contributors 2

  •  
  •