Skip to content

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

License

Notifications You must be signed in to change notification settings

dongjun1217/BootGenie

Folders and files

NameName
Last commit message
Last commit date

Latest commit

caaeb1a · Jul 6, 2024
Jun 5, 2024
Jun 26, 2024
Jun 5, 2024
May 18, 2024
Jun 23, 2024
May 30, 2024
Jun 26, 2024
Jun 23, 2024
Jun 17, 2024
Jun 20, 2024
Jul 6, 2024
Jun 21, 2024
May 30, 2024
May 18, 2024
Jun 16, 2024
May 18, 2024
Jun 23, 2024
Jun 26, 2024
May 18, 2024

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. 생성된 프로젝트의 품질과 주석 설명의 명확성