6명이 한 팀이 되어 웹사이트를 기획하고 개발했습니다. 각자 기능의 프론트엔드 백엔드를 담당했습니다.
회원이 상품을 조회하고 구매할 수 있고 입점신청을 통해 판매할 수 있는 웹사이트를 개발했습니다.


위 프로젝트에서 저는 메인페이지와 여행페이지(상세보기)구현 상품등록 및 수정
WebSocket을 이용한 1:1채팅기능, 비밀번호 찾기시 임시비밀번호 전송과 security 를 이용한 암호화 GeoLocation을 통한 주소 마커 DB 기획 및 설계를 담당했습니다.
DB설계 같은 경우는 최대한 많은 카테고리를 나누는것으로 실행시 서버에 부담을 줄여보자 하는 생각으로 설계하였습니다.

구현한 페이지 별 기능
1. 여행 페이지
메인과 마찬가지로 검색기능 추가로 입력된 날짜와 인원수 그리고 지역 선택을 통해 조건에 맞는 상품(호텔)을 출력합니다.

2. 상품 등록
상품등록은 티켓,상품,여행상품등을 value를 통해 구분하고 bot_title에 팬션, 호텔을 통해
다시 한번 구분하여 등록하게됩니다.

상품에 이미지 등록은 MultipartFile 인터페이스를 통해 여러장에 사진을 올릴 수 있도록 구현하였습니다.
향상된 for과 swich문을 통해 사진의 갯수만큼 savefile함수를 통해 저장합니다.
객실공통, 편의서비스같은 경우 체크박스를 통해 등록하기때문에 체크한 문자열 뒤에
갯수만큼 -1을 빼고 ","를 추가하여 DB에 저장됩니다.


2-2. 상품수정
상품수정시 조건을 통해 파일에 유무를 확인하고 있다면 저장된 파일을 deleteFile함수를 통해
지우고 새로운 이미지를 등록합니다.


3. 여행 리스트
검색시 나오는 리스트 페이지
인원수와 날짜,지역을 매개변수로 DB에 접근하여 일치하는 항목들을 출력합니다.

우측은 GeoLocation으로 마커 표시 Kakao 지도 Web API을 사용합니다.
List에 진입시 입력받은 지역값을 통해
값을 포함하는 곳에 마커를 찍도록 구현했습니다.

4. 임시비밀번호
ajax를 통하여 아이디가 유효한가를 먼저 판단하고 유효하다면 다시한번 컨트롤러에 진입하여 이메일로 임시비밀번호(랜덤한 문자+숫자)를 전송하고 전송된 임시비밀번호를 DB에 암호화된 형태로 저장되도록 구현했습니다.
임시비밀번호 문자를 생성시 연산이 많이 들어가기 때문에 Stringbuffer를 사용했습니다.

5. 채팅
session에 담겨있는 유저에 정보를 통해 채팅룸을 생성합니다. member_idx로 관리자와 고객을 구분하고
생성된 채팅룸에 대화를 저장합니다.
조건을 통해 이전 채탱이 있다면 mapper를 통해 불러온 이전 채팅들을 확인할 수 있습니다.
이전 채팅이 없다면 roomName에는 상담을 원하는 고객에 이름과 새로운 room_idx를 생성하여
채팅을 시작합니다.


처음 접하는 팀 프로젝트에서 저는 개인의 역량을 키우는 것만큼이나 적극적인 자세로 소통하는 것이 정말 중요하구나 느꼈습니다.
이커머스 웹페이지를 구현하면서 서비스를 이용하는 고객에 입장에서도 편리하고 개발자 입장에서도 유지보수 및 코드 수정에 대해 많이 생각하고 공부하는 시간이 됐습니다.
마지막으로 개발이 재밌게 느껴졌던 뜻 깊은 프로젝트였습니다.
감사합니다.