Giter Site home page Giter Site logo

java-mvc2-spring_pocketmonshop's Introduction

MVC2 Model Architecture 간략 소개

국비학원에서 '응용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

배운 점

  1. 처음으로 언어를 접하고 해본 미니 프로젝트였습니다. 처음에는 코드 한 줄 한 줄 읽는 것조차 버거웠는데 후반부에는 웹 사이트의 구조를 어떻게 짜야 더 효율적일지 고민하면서 개발이 얼마나 즐거운지 느끼게 되었습니다.

  2. Presentation 레이어와 Business 레이어로 나누고, 또 B/L 안에서 Service 레이어와 Persistence 레이어로 나뉘는 MVC2 구조를 배울 수 있었습니다.

  3. 검색 기능을 구현하면서 동적 쿼리를 배웠습니다. 검색 조건은 무엇이며, 검색어는 무엇인지에 따라 결과값이 다르게 도출되는 쿼리문을 짜는 일은 무척 재미있었습니다.

  4. 포인트 적립 기능을 추가하면서 DB 설계의 중요성을 깨달았습니다. 처음에는 Users라는 테이블에 point 컬럼을 추가하여 데이터를 처리했는데 포인트 적립/사용 내역을 제공할 수 없다는 사실을 깨달았습니다. 후에 point 라는 테이블을 추가하여 적립/사용 내역을 관리하였고, DB를 다룰 때 설계가 얼마나 중요한지 깨달을 수 있었습니다.

  5. 스프링 프레임워크의 편리함을 배웠습니다. 로그인 체크 여부를 인터셉터에 맡기고(AOP), 의존성 주입을 통해 유지보수를 편리하게 할 수 있었습니다. 어노테이션을 통한 관리 역시 무척 획기적이었습니다.

  6. 스크롤을 내리면 데이터를 불러오는 무한스크롤 기능을 구현하면서 AJAX를 통한 비동기 통신을 배웠습니다.

  7. 사용자가 검색어를 입력하면 타사이트의 검색 엔진에서 검색한 결과를 출력하였습니다. jsoup을 통해 간단한 크롤링을 해볼 수 있었습니다.

더 배우고 싶은 점

  1. 검색창에 검색어 입력 시 자동으로 완성시키고 바로바로 결과가 동적으로 구성되는 기능을 구현하지 못하여 아쉬웠습니다.

  2. 오픈 API 를 통해 SNS로그인과 아임포트 결제를 구현하지 못하여 아쉬웠습니다. (추후 팀프로젝트를 통해 구현해볼 수 있었습니다.)

  3. 깃허브를 통해 형상관리를 배우는 과정에서 커밋을 제대로 숙지하지 못해 새 주소를 몇 개 생성하였습니다. 한 프로젝트 내에서 커밋과 푸시를 통해 형상관리를 올바르게 하는 방법을 배우고 싶습니다. (추후 팀프로젝트를 통해 배울 수 있었습니다.) https://github.com/primewinter/06PJT https://github.com/primewinter/06refactoring https://github.com/primewinter/07refactoring

참고

12/16 이후로 커밋한 부분은 팀 프로젝트 구현 당시 샘플을 위해 웹소켓을 통한 채팅, 댓글 작성시 게시글 작성자에게 알림 PUSH 하기입니다.

java-mvc2-spring_pocketmonshop's People

Contributors

primewinter avatar

Stargazers

 avatar

Watchers

James Cloos avatar  avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.