1. 개요
- 프로젝트명 : petopia-2
- 기간 : 2021.11 (약 2주)
- 목표 : 배운 기술들을 활용하여 카페를 구현하는 것.
- 주제 : 반려동물의 정보 공유와 일상을 나눌 수 있는 카페
- 사용 스택 : MySQL, MyBatis, Spring, Java, Maven, HTML, CSS, JS, Thymeleaf, Bootstrap, Github, Apache Tomcat, Naver Cloud
2. 구상 및 진행
- 6인 1팀으로 진행되었던 프로젝트로 petopia 프로젝트를 강화하는데에 초점을 두었다. 즉, 기존의 주제를 엎지 않고 1차 프로젝트를 Spring framework로 전환하는 것이 목적이었다.
- MySQL의 Procedure, Event Scheduler, Trigger를 사용하여 간편성과 자동화를 추구하고자 하였다.
- 라이브러리 관리 도구는 팀원들이 Maven에 익숙해있기 때문에 Maven을 택하였고 learning curve와 시간을 고려하여 Persistence Framework는 MyBatis를 선택하였다.
- Spring Framework로의 전환과 기존 기능 강화가 우선이었기에 신규 기능을 많이 추가하지 않았다.
- (Controller - Service - Mapper) 혹은 (Controller -Service - DAO) 구조를 사용하였다.
3. 결과 및 사진
- Spring이 확실히 Java 하드코딩보다 간편하고 간단해진다.
- 클라우드 환경에 대한 연습을 위해서 DB만을 Naver Cloud로 하여 작동시켰다.
4. 피드백
- 등급의 추가 및 삭제에 따른 인가 부여를 위해 Security를 위한 Table이 필요할 것이다. Spring Security를 적용할 필요가 있다.
- MyBatis를 사용하였으나 최근 동향은 JPA를 사용하고 있는 추세이다 보니 MyBatis에서 Spring Data JPA로의 전환을 경험할 필요가 있어보인다. 다음 프로젝트에서는 JPA를 사용해보도록 하자.
- Trigger가 많아져 유지보수의 어려움을 느꼈다. 상호의존성도 늘어 오류도 많이 났다. 문서화해서 관리를 하는 방법도 있었지만 Event Scheduler로 구현이 가능한 기능들이 있었기에 방향을 틀었다.
5. 참고
코드 및 자료 : https://github.com/jhk1231/petopia2