9/29/2018

스프링 쇼핑몰 만들기 #1. 시작하기

스프링 쇼핑몰 만들기

스프링 게시판 만들기를 응용하여 쇼핑몰을 만들겠습니다.

게시판과 쇼핑몰은 크게 다르지 않지만, 구조와 규모에 차이가 있습니다.

제대로된 프로젝트는 프로젝트에 대한 각종 문서가 있으며, 이 문서를 보고 프로젝트의 개요와 기능도, 용어와 데이터 베이스 설계에 대해 알 수 있습니다.

또, 사이트 디자인이나 각종 기능에 대한 요구사항이 있어서 간단하진 않지만, 여기에서는 그런거 없이(...) 최대한 간단하게 만들겠습니다.

이번에 만들 쇼핑몰은

1. 관리자 모드가 존재하며 상품/회원의 관리 기능
2. 상품은 대분류/소분류로 분류
3. 상품 등록간 이지웍 에디터 사용
4. 상품 등록간 이미지 파일 첨부 및 썸네일 사용
5. 로그인한 회원은 상품을 카트 보관 및 구입
6. 각 상품별 후기(댓글) 작성
7. 오픈API를 이용한 주소 기능
8. 회원가입시 이메일 인증 기능

이렇게 8가지의 기능으로 구성되어있으며, 아마도 이정도면 기본적인 기능으로서 충분하리라 생각합니다. 물론 필요에 따라 더 많거나 적어질수도 있습니다.

새로운 프로젝트를 진행할 땐, 가급적 새로운 스프링을 사용합니다. 기존에 사용하던 스프링을 그대로 사용할 경우, 예상치 못할 충돌이 발생할 수 있으며 관리에도 용이하기 때문에 프로젝트별로 IDE(통합 개발 환경. 스프링이나 이클립스 등)를 구분해서 사용하는걸 추천합니다.

또, 프로젝트에 사용될 파일들을 준비하는데 대표적으로 JQuery(제이쿼리)나 Bootstrap(부트스트랩)입니다. CDK를 이용하는 경우, 버전이 바뀔 수 있으며, 버전이 바뀌게되면 의도한것과 다르게 작동할 수 있기 때문에 사용하는 버전을 따로 다운로드 받아서 준비합니다. 기본적으로 사용될 이미지 파일 또한 같이 준비합니다.

프로젝트를 생성합니다.

프로젝트의 Properties에서 언어 인코딩과 자바 버전을 설정합니다.

pom.xml에서 필요한 라이브러리를 가져옵니다.

스프링에 오라클과 마이바티스 연동
스프링 게시판 만들기 #17. 패스워드 암호화 구현
스프링 게시판 만들기 #16. 아이디 중복검사 기능 구현

이메일 전송 라이브러리와 썸네일 라이브러리는 나중에 가져오겠습니다.

root-context.xml에 데이터 베이스 접속에 필요한 코드를 추가합니다.

스프링에 오라클과 마이바티스 연동

한국어를 사용할거니 web.xml에 필터를 추가합니다.

스프링 한글 설정

마지막으로 사용할 서버를 추가합니다.

스프링 톰캣 서버 추가

기본설정을 끝냈으면 프로젝트를 실행하여 이상이 없는지 확인합니다.

게시물 수정
  1. 작성자가 댓글을 삭제했습니다.

    답글삭제
    답글
    1. 안녕하세요 ide 환경은 바꾸는건 처음시작할떄 workspace 의장소를 바꾸는걸 말씀하시는건가요?

      삭제
    2. wordksapce의 장소를 다르게 사용하는게 일반적인데, 저는 프로그램 자체를 다른걸로 사용하여 폴더별로 분류합니다.

      즉.. 게시판 프로젝트를 진행한다고 할 때

      게시판 프로젝트의 스프링 d:\board_project\sts
      게시판 프로젝트의 워크스페이스 d:\board_project\workspace
      게시판 프로젝트의 라이브러리 및 파일 d:\board_project\file

      쇼핑몰 프로젝트의 스프링 d:\shoppingmall_project\sts
      쇼핑몰 프로젝트의 워크스페이스 d:\shoppingmall_project\workspace
      쇼핑몰 프로젝트의 라이브러리 및 파일 d:\shoppingmall_project\file

      이런식으로 분류해서 사용합니다.

      물론 꼭 이렇게 할 필요는 없고 그냥 워크스페이스만 변경해도 무관합니다.

      삭제
  2. 다음글은 어떻게 찾아 가나요

    답글삭제
    답글
    1. 안녕하세요? 방문해주셔서 감사합니다.

      원래는 작년 말쯤에 다시 작성하려고했는데... 프로젝트를 계속 이어하다보니 늦어지네요;
      다음글은 게시물의 태그로 찾아가시면 됩니다.

      게시물의 태그는 게시물 본문이 끝나는 지점에 있으며, 링크는 여기입니다.

      삭제
  3. 깃허브에있는 7z로 되어있는 파일을 받았는데 오류가 뜨네영. 404로 뜨고

    http://localhost:8000/controller/ 여기까지는 뜨는데 다른 jsp 파일은 오류가 뜹니다

    답글삭제
    답글
    1. Failed to execute goal org.apache.maven.plugins:maven-war-plugin:2.2:war (default-war) on project controller: Error assembling WAR: webxml attribute is required (or pre-existing WEB-INF/web.xml if executing in update mode) -> [Help 1]
      [ERROR]
      [ERROR] To see the full stack trace of the errors, re-run Maven with the -e switch.
      [ERROR] Re-run Maven using the -X switch to enable full debug logging.
      [ERROR]
      [ERROR] For more information about the errors and possible solutions, please read the following articles:
      [ERROR] [Help 1] http://cwiki.apache.org/confluence/display/MAVEN/MojoExecutionException

      pom 에서 오류나네요

      삭제
    2. 안녕하세요? 방문해주셔서 감사합니다.

      먼저 루트 url을 /controller 에서 /로 변경해주세요.
      1. 서버 더블 클릭
      2. 모듈 탭 선택
      3. 모듈 화면의 현재 프로젝트 선택 후 edit 버튼 클릭
      4. /controller 를 / fh 변경 후 저장

      그리고 war를 생성하는데에서 문제가 발생했다는 에러같은데, WEB-INF/web.xml의 경로가 올바른지 확인해보셔야 할 것 같습니다.

      삭제
    3. 감사합니다

      삭제
  4. 익명2/05/2021

    환경설정 따라가기 너무 어렵습니다..여지껏 문제없던 이클립스가 이 예제 환경설정 따라하다가 이클립스키면 workspace was written with an older version. continue and update workspace which may make it incompatible with older versions? 이런창 뜨는데 어떻게해결해야하나요..

    답글삭제
    답글
    1. 늦었을지 모르지만.. 게시판 만들기부터 따라하시면 더 수월하실겁니다

      삭제
  5. 혹시 이메일 인증 기능은 어디에서 볼 수 있나요?

    답글삭제