Skip to content

Latest commit

 

History

History
70 lines (60 loc) · 4.04 KB

File metadata and controls

70 lines (60 loc) · 4.04 KB

컴퓨터학부 강의실/시설물 예약 시스템

소개

이 프로젝트는 경북대학교 컴퓨터학부 건물(예: IT4, IT5 등) 내 강의실과 시설물을 예약할 수 있는 자바 기반의 GUI 프로그램입니다. 자바 Swing과 MVC 패턴을 적용하여, 실제 2D 도면 느낌의 UI와 직관적인 예약 기능을 제공합니다.

주요 기능

  • 2D 도면 기반 UI: 건물/층별 강의실 및 시설물 배치를 시각적으로 확인
  • 가용 상태 표시: 각 강의실/시설물의 사용 가능 여부를 색상과 텍스트로 표시
  • 예약 기능: 버튼 클릭 시 날짜/시간대/예약자 입력 후 예약 가능 여부 확인 및 처리
  • MVC 패턴 적용: Model-View-Controller 구조로 유지보수성과 확장성 강화

Gradle이란?

Gradle은 자바 프로젝트에서 자주 사용하는 "빌드 도구"입니다.

  • 여러 개의 자바 파일을 한 번에 컴파일하고, 실행에 필요한 라이브러리(외부 jar)도 자동으로 관리해줍니다.
  • build.gradle 파일에 필요한 설정을 적어두면, 복잡한 명령 없이 ./gradlew build 또는 ./gradlew run만으로 프로젝트를 빌드/실행할 수 있습니다.
  • 이 프로젝트에서는 소스코드 컴파일, 실행, 라이브러리 관리(예: Swing은 JDK에 내장) 등을 Gradle이 자동으로 처리해줍니다.
  • 장점:
    • IDE 없이도 터미널에서 쉽게 빌드/실행 가능
    • 팀원 모두가 동일한 환경에서 개발 가능
    • 라이브러리 추가/관리가 매우 쉬움

MVC 패턴이란?

MVC(Model-View-Controller) 패턴은 소프트웨어 설계 원칙 중 하나로, 프로그램을 세 가지 역할로 분리하여 개발합니다.

  • Model(모델): 데이터와 비즈니스 로직을 담당합니다. (예: 강의실, 시설물, 예약 정보 등)
  • View(뷰): 사용자에게 보여지는 UI를 담당합니다. (예: Swing 화면, 버튼 등)
  • Controller(컨트롤러): 사용자의 입력을 받아 Model과 View를 연결하고, 이벤트를 처리합니다. 이렇게 분리하면 코드의 재사용성과 유지보수성이 높아지고, 역할별로 협업이 쉬워집니다.

폴더 구조

ClassroomReservation/
├── src/
│   └── main/
│       ├── java/org/javateam11/
│       │   ├── controller/      # 컨트롤러 (이벤트 처리)
│       │   ├── model/           # 도메인 모델 및 비즈니스 로직
│       │   └── view/            # 사용자 인터페이스 (Swing)
│       └── resources/
├── build.gradle
├── README.md
└── ...

실행 방법

  1. JDK 17 이상이 설치되어 있어야 합니다.

  2. IntelliJ IDEA를 사용하여 실행하는 것을 권장합니다:

    • IntelliJ IDEA에서 프로젝트를 열고 src/main/java/org/javateam11/Main.java를 실행하세요.

    또는 터미널에서 프로젝트 루트 디렉토리로 이동 후 아래 명령어를 실행할 수 있습니다:

    ./gradlew build
    ./gradlew run

개발 환경

  • Eclipse Temurin JDK 21
  • Gradle 빌드 시스템
  • (권장) IntelliJ IDEA 또는 Eclipse

기여 방법

⚠️ 주의사항

  • main 또는 dev 브랜치에 직접 커밋하지 마세요!
  • dev 브랜치에서 새 브랜치를 만들기 전에 항상 pull 해서 최신 상태를 유지해주세요.
  • 모든 변경사항은 반드시 dev 브랜치에서 분기한 새로운 브랜치에서 작업해주세요.
  • 작업이 완료되면 Pull Request를 통해 코드 리뷰를 받은 후에만 main 브랜치에 병합됩니다.
  1. 팀원들은 각자마다 자신이 개발할/수정할 기능의 브랜치를 반드시 dev 브랜치를 베이스로 만들어서 거기서 작업합니다.
  2. 브랜치 이름은 자신이 개발할/수정할 기능을 잘 나타내는 이름으로 작성합니다. (예: feat/reservation-view, fix/button-color)
  3. 기능 추가/버그 수정 후 Pull Request(PR)를 올려주세요.
  4. 코드 스타일을 잘 지키고 주석을 잘 달아주세요.