Skip to content

전국 학원과 학생들 간의 정보 교류 커뮤니티, Spring Web Project.

Notifications You must be signed in to change notification settings

Jaehwi-So/WEB_Project_EduExplorer

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

15 Commits
 
 
 
 
 
 
 
 

Repository files navigation

SpringSchool



1. 개요

  • 학원을 등록하고 검색하며 커뮤니티 기능을 수행할 수 있는 웹 사이트
  • JAVA 기반 웹 어플리케이션

2. 사용 언어 및 기술, 프로그램 버전

  • jdk 1.8.0_251, eclipse IDE, Visual Studio Code

서버

  • Apache Tomcat 8.5

언어

  • JAVA, JSP, HTML/CSS, JavaScript

데이터베이스

  • Oracle Database 11g

프레임워크

  • Spring 3.1.1

라이브러리

  • JQuery, AspectJ, Jackson, JDBC/DBCP

협업 도구

  • Slack, Git

오픈 API

  • 카카오맵 API, 다음 우편번호 서비스 API


3. 웹 어플리케이션 소개 및 기능


3-1. 프로젝트 목표

인터넷이 활성화된 21세기에서 이제 사업주들의 홍보의 주된 수단은 웹이라고 봐도 무방하다.
의류들은 쇼핑몰을 통해서, 아르바이트나 일자리도 웹사이트를 통해 구인하고 구직하며 음식점 또한 배달 어플리케이션 등으로 홍보되고 있다.
그렇다면 학원 또한 인터넷에 검색하는 것, 혹은 직접 학원에 방문하며 찾아다니는 수고를 덜고 학원측이 홍보할 수 있고, 학생들이 학원을 검색할 수 있는 웹사이트를 개발하고자 프로젝트가 시작되었다.

프로젝트 목표

  • 학원 검색과 홍보, 커뮤니티 기능을 가진 웹 애플리케이션 개발
  • 공부를 하고자 학원을 찾는 학생들의 학원 검색
  • 점주들의 학원 홍보와 소식 게시물, 1:1 문의를 통한 소통
  • 클라이언트들 간에 게시물을 올리고 댓글과 답글을 통한 커뮤니티 기능
  • 클라이언트들의 이용 편의를 위한 알림, 바로가기, 회원관리 등의 기능

3-2. 프로젝트 구성

데이터베이스

  • 회원 테이블
  • 게시판 테이블
  • 댓글 테이블
  • 알림 로그 테이블
  • 학원 목록 테이블
  • 학원 내부 게시판 테이블
  • 1:1 문의 게시판 테이블
  • 즐겨찾기, 좋아요 테이블

3-3. 기능 아키텍쳐


3-4. 제공하는 기능 목록 및 이용 사례

3-4-1. 회원 관련 서비스

3-4-2. 게시판 관련 서비스

3-4-3. 학원 관련 서비스

3-4-4. 마이페이지 서비스

3-4-5. 학원 추천 서비스


4. 회고


4-1. 기능 및 서비스적 측면


  • 학원과 학생들간의 소통이 가능한 커뮤니티를 구현하여 프로젝트 목표에 부합하는 웹 어플리케이션을 제작하였다.
  • 학원 측은 학원 등록, 소식 게시판, 1:1문의 등의 서비스를 통해 학생들에게 학원을 홍보하고 마케팅하려는 수단으로 웹을 이용할 가치가 있다고 본다.
  • 학생 측 또한 등록된 학원을 살펴보며 검색 기능을 통해 조건에 부합하는 학원을 찾을 수 있으며 1:1 문의나 게시판을 살펴보며 원하는 학원을 찾을 수 있어 사용자 요구를 만족시켰을 것이라고 본다.
  • 자유게시판과 댓글, 답글 서비스를 통한 커뮤니티 기능과 사용자 편의를 만족시키는 알림이나 기타 유저 인터페이스를 제공하여 웹 서비스 이용이 더욱 흥미롭고 간편해 졌을 것이라고 본다.

  • 관리자 계정에게 게시물 삭제, 학원 삭제 외에 다양한 서비스를 제공하지 못한 것이 아쉽다. 회원을 관리할 수 있는 플랫폼을 제공하면 좋을 것 같다.
  • 검색 기능 외에 학원 측에 별점 평가 및 좋아요 순으로 정렬 기능을 고민했으나 별점이나 좋아요의 조작이나 소위 말하는 갑질을 고려하여 도입하지 못했다. 만약 도입한다면 별도의 자격을 갖춘 사람에게만 별점을 매길 수 있도록 하는 시스템을 구현하면 어떨까.

4-2. 기술 및 업무적 측면


  • 매일 자신이 맡은 업무의 진척도를 기록하고 Slack을 통해 형상 관리를 하여 프로젝트 병합이 상대적으로 쉬웠다.
  • 유지보수 과정에서 인터페이스 활용을 도입하여 남이 작업한 내용을 알아보기 쉬워져 협업에 유용하였다.
  • 기본적으로 분업하여 작업했지만 검색을 통해 해결이 불가능하다면 물어보고 서로 아는 지식을 활발히 공유하였다.
  • 프로젝트 이후의 유지보수를 통해 프로젝트의 더욱 편리한 UI를 제공하려 했으며 오류사항과 알고리즘 효율성 등을 보완하였다.

  • 프로젝트 계층을 더 작은 단위로 나누었으면 좋았을 것 같다. 처음에는 간단한 데이터 교환을 예측해 Controller 계층과 Dao 계층만을 나누었는데 하다보니 복잡한 알고리즘이 필요하여 중간에 Service 계층이 있었다면 유지보수가 원활했을 것이다.
  • 협업 시 팀장으로서 업무의 분업과 프로젝트 병합을 담당하여 팀원들과 의사소통을 많이 하려고 노력하였지만 아쉬운 점이 남는다. 업무를 맡길 때 더 많은 소통을 통해 팀원들이 자신있는 부분이나 개인의 능력을 파악한 후 분업했으면 능률이 더욱 증가했을 것이다.
  • 합병 시 나 자신을 포함한 서로의 코드 스타일이 달라 어려움을 겪었다. 나 혼자 만드는 것이 아닌 여러명이 함께 만드는 작품이므로 스파게티 코드나 유지보수가 어려운 코드는 반드시 지양하고 줄바꿈과 주석을 통한 가독성 있는 코드의 중요성을 다시 한번 깨달았다.

About

전국 학원과 학생들 간의 정보 교류 커뮤니티, Spring Web Project.

Topics

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages