국비학원에서 '응용SW엔지니어링(전자정부표준프레임워크) 양성과정'을 이수하며 진행한 첫번째 개인프로젝트입니다. MVC1 모델에서 총 열 한 번의 리팩토링을 거쳐 ModelAndView 전략의 MVC2 모델로 발전시키는 방식으로 프로젝트를 진행하였습니다. 스프링 프레임워크 환경에서 개발하였고 기본 CRUD가 가능합니다.
- 총 개발 기간 : 2개월
- 구현 : 2019/10/17 ~ 2019/12/16
- 시스템 개요 : 회원제 쇼핑몰입니다. 크게 회원 모듈, 상품 모듈, 판매 모듈로 나누었고 회원 등급(관리자/일반회원)에 따라 이용할 수 있는 메뉴가 다르게 구성되어 있습니다.
- 언어 : java
- 백엔드 : 스프링 프레임워크 4.0.1, Apache Tomcat 8, MyBatis, JSoup
- 프론트 : HTML5 / BootStrap 3 / CSS3 / jQuery / Ajax
- Database : Oracle 10g
- IDE : Eclipse
-
처음으로 언어를 접하고 해본 미니 프로젝트였습니다. 처음에는 코드 한 줄 한 줄 읽는 것조차 버거웠는데 후반부에는 웹 사이트의 구조를 어떻게 짜야 더 효율적일지 고민하면서 개발이 얼마나 즐거운지 느끼게 되었습니다.
-
Presentation 레이어와 Business 레이어로 나누고, 또 B/L 안에서 Service 레이어와 Persistence 레이어로 나뉘는 MVC2 구조를 배울 수 있었습니다.
-
검색 기능을 구현하면서 동적 쿼리를 배웠습니다. 검색 조건은 무엇이며, 검색어는 무엇인지에 따라 결과값이 다르게 도출되는 쿼리문을 짜는 일은 무척 재미있었습니다.
-
포인트 적립 기능을 추가하면서 DB 설계의 중요성을 깨달았습니다. 처음에는 Users라는 테이블에 point 컬럼을 추가하여 데이터를 처리했는데 포인트 적립/사용 내역을 제공할 수 없다는 사실을 깨달았습니다. 후에 point 라는 테이블을 추가하여 적립/사용 내역을 관리하였고, DB를 다룰 때 설계가 얼마나 중요한지 깨달을 수 있었습니다.
-
스프링 프레임워크의 편리함을 배웠습니다. 로그인 체크 여부를 인터셉터에 맡기고(AOP), 의존성 주입을 통해 유지보수를 편리하게 할 수 있었습니다. 어노테이션을 통한 관리 역시 무척 획기적이었습니다.
-
스크롤을 내리면 데이터를 불러오는 무한스크롤 기능을 구현하면서 AJAX를 통한 비동기 통신을 배웠습니다.
-
사용자가 검색어를 입력하면 타사이트의 검색 엔진에서 검색한 결과를 출력하였습니다. jsoup을 통해 간단한 크롤링을 해볼 수 있었습니다.
-
검색창에 검색어 입력 시 자동으로 완성시키고 바로바로 결과가 동적으로 구성되는 기능을 구현하지 못하여 아쉬웠습니다.
-
오픈 API 를 통해 SNS로그인과 아임포트 결제를 구현하지 못하여 아쉬웠습니다. (추후 팀프로젝트를 통해 구현해볼 수 있었습니다.)
-
깃허브를 통해 형상관리를 배우는 과정에서 커밋을 제대로 숙지하지 못해 새 주소를 몇 개 생성하였습니다. 한 프로젝트 내에서 커밋과 푸시를 통해 형상관리를 올바르게 하는 방법을 배우고 싶습니다. (추후 팀프로젝트를 통해 배울 수 있었습니다.) https://github.com/primewinter/06PJT https://github.com/primewinter/06refactoring https://github.com/primewinter/07refactoring
12/16 이후로 커밋한 부분은 팀 프로젝트 구현 당시 샘플을 위해 웹소켓을 통한 채팅, 댓글 작성시 게시글 작성자에게 알림 PUSH 하기입니다.