Java 17과 Apache Tomcat 기반의 음반 전문 쇼핑몰 팀 프로젝트입니다.
POP, ROCK, JAZZ, CLASSIC 카테고리별 음반을 판매하며, 회원 취향 기반 추천, 장바구니, 주문/배송 조회, 리뷰, 1:1 문의, 관리자 대시보드 등 실제 쇼핑몰 수준의 기능을 구현하였습니다.
Front Controller + Command Pattern을 적용하여 요청을 구조적으로 처리하였습니다.
모든 요청을 하나의 서블릿에서 받아 properties 파일 매핑을 통해 Command 객체로 위임하는 구조를 설계하였습니다. URL과 클래스 간 결합도를 낮추고 기능 추가 시 properties 파일만 수정하면 되도록 확장성을 높였습니다.
회원 비밀번호는 SHA-256으로 단방향 암호화하여 저장하고, 민감 데이터는 AES-256 양방향 암호화를 적용하여 보안을 강화하였습니다.
YouTube에서 특정 영상에 대해 외부 사이트 iframe 삽입을 허용하지 않는 경우(임베드 제한) 재생이 차단됨
임베드 불가 영상은 YouTube 링크로 직접 연결하는 fallback 처리를 추가하고, DB에 임베드 가능 여부 플래그를 관리하여 분기 처리
취향 정보를 세션에서 읽어오는 구조였는데, 마이페이지에서 취향을 변경해도 기존 세션 값이 유지되어 추천 목록이 갱신되지 않음
취향 저장 시 세션의 취향 값도 함께 갱신하도록 수정하여 변경 즉시 추천 목록에 반영되도록 처리
취향 추천이 마이페이지에서 선택한 장르 카테고리 기반의 단순 필터링으로 구현되어 개인화 수준이 낮음
구매 이력 및 위시리스트 데이터를 활용한 협업 필터링 알고리즘 도입으로 개인화 추천 품질 향상 가능
JSP/Servlet 기반 구조로 View와 비즈니스 로직이 혼재되어 유지보수가 불편함
Spring Boot + Thymeleaf 또는 REST API + React 구조로 전환하면 관심사 분리 및 확장성 개선 가능