MatZip은 직관적인 UI로 맛집을 탐색하여 정보를 확인할 수 있고, 자신의 미식 경험을 다른 사람들과 공유할 수 있는 맛집 추천 및 리뷰 커뮤니티 웹 서비스입니다. 단순한 정보 제공을 넘어, 사용자들이 '맛있는 순간'을 기록하고 연결되는 공간을 만드는 것을 목표로 하였습니다.
- 맛집 검색: 강력한 통합 검색과 상세 필터, 정렬 기능을 통해 취향에 맞는 맛집을 빠르고 정확하게 찾을 수 있습니다.
- 맛집 정보: 주소, 메뉴 등 기본 정보부터 카카오맵 연동 위치, 방문자들이 직접 올린 사진과 리뷰까지 방문에 필요한 모든 정보를 제공합니다.
- 찜 하기: 마음에 드는 맛집을 찜해두면, 마이페이지에서 저장한 가게 목록을 간편하게 관리할 수 있습니다.
- 리뷰 작성: 별점, 사진, 텍스트로 맛집에 대한 나의 평가를 기록하고 다른 사람들과 유용한 정보를 나눌 수 있습니다.
- 관리자 기능: 회원, 맛집, 리뷰 등 사이트의 핵심 데이터를 조회 및 관리하고, 각 데이터 통계를 통해 운영 현황을 파악할 수 있습니다.
본 프로젝트는 Spring MVC 프레임워크를 기반으로 한 MVC (Model-View-Controller) 패턴을 따릅니다. 이를 통해 역할과 책임을 분리하여 코드의 재사용성과 유지보수성을 높였습니다.
| 구분 | 기술 | 설명 |
|---|---|---|
| Presentation Layer | JSP, HTML, CSS, JavaScript |
사용자 인터페이스 및 동적 웹 페이지 렌더링 |
| Business Layer | Spring MVC, Java |
비즈니스 로직 처리, Controller/Service 계층 구성 |
| Persistence Layer | MyBatis, Oracle DB |
데이터베이스 연동 및 영속성 관리 (DAO) |
| Server | Apache Tomcat |
웹 애플리케이션 서버 |
| Build Tool | Maven |
의존성 관리 및 프로젝트 빌드 |
본 프로젝트의 맛집 정보, 이미지, 리뷰 등 대용량의 초기 데이터는 Python을 사용하여 구축되었습니다.
- 수집: 공공 데이터 포털 API 및 웹 크롤링(selenium 라이브러리 활용)을 통해 원시 데이터를 수집했습니다.
- 전처리 및 삽입: 수집된 데이터를 정제(BeautifulSoup 라이브러리 활용)하고, Oracle DB 구조에 맞게 가공하여 대량 삽입을 진행했습니다.
보안 및 정책상의 이유로 데이터 수집 및 삽입에 사용된 Python 코드는 저장소에 포함하지 않았습니다. 대신, sql/ 디렉토리에 DB 테이블과 시퀀스를 생성하는 MatZip4.sql 파일을 제공합니다.
MatZip-WEB-Project/
├── pom.xml # Maven 의존성 및 빌드 설정
├── sql/ # DB 스키마 및 데이터
│ └── MatZip4.sql # 테이블 생성 스크립트
├── src/
│ ├── main/
│ │ ├── java/ # Java 소스 코드
│ │ │ └── kr/ac/kopo
│ │ │ ├── controller
│ │ │ ├── service
│ │ │ ├── dao
│ │ │ ├── vo
│ │ │ └── util
│ │ ├── resources/ # MyBatis 매퍼(XML), 프로퍼티 파일
│ │ └── webapp/
│ │ ├── resources/ # CSS, 이미지 등 정적 파일
│ │ └── WEB-INF/
│ │ ├── jsp/ # JSP 뷰 파일
│ │ ├── tags/ # 재사용 tag 파일
│ │ ├── dispatcher-servlet.xml # Spring Web Context 설정
│ │ └── web.xml # 웹 애플리케이션 배포 서술자 (최초 진입점)
│ └── test/
└── target/ # 빌드 결과물 (.war)
- 이름, 지역, 카테고리 등 통합 검색 및 필터 기능을 통해 맛집을 탐색
- 마음에 드는 맛집을 찜할 수 있고, 마이페이지에서 찜한 맛집만 확인
- 다녀간 맛집에 리뷰를 작성
- 별점을 체크하고 이미지를 업로드
- 관리자 계정으로만 접근할 수 있는 관리자 대시보드
- 회원/맛집/리뷰 등 핵심 데이터 조회 및 관리, 각 데이터 통계를 확인
- 황제윤 (@JeyunH)
- 폴리텍 성남 하이테크과정[인공지능소프트웨어과] 이수중
- 국민대 테크노디자인 전문대학원 AI디자인 전공 졸업
- 서울과학기술대학교 기계시스템디자인공학 전공 졸업





