01 / 프로젝트 이해

해수욕장 정보·날씨·리뷰를 한곳에서 살펴보고, 성향·평점·위치에 따라 취향에 맞는 바다를 찾는 여행 서비스입니다.
- 개발 기간
- 2024.03.21 ~ 2024.04.19
- 팀 구성
- 4인 팀 · 전원 프런트엔드·백엔드 개발
- 기술 스택
- Spring MVC · MyBatis · JSP · OracleDB
- 제공 상태 ·
- 공개 저장소 · README에 기능별 시연 자료 제공
내 역할과 핵심 기여
4인 팀의 팀장으로 일정·요구사항·전체 흐름과 UX/UI를 정리하고 메인 추천, BBTI, 지역 탐색·정보 화면과 전체 CSS를 구현했습니다.
- 리뷰 평점·성향 태그·현재 위치로 나눈 메인 추천과 결과 화면을 구현했습니다.
- BBTI의 문항·유형 계산·결과 이미지와 저장·추천 연결을 맡았습니다.
- 지역 선택·지도·해수욕장 정보·리뷰 화면을 연결하고 GitHub·코드를 관리했습니다.
- JSP · jQuery 웹
Tiles 레이아웃 · AJAX · 브라우저 위치·Kakao Maps
페이지 요청 · 추천·지역 목록 AJAX 조회
Controller · JSP 화면 · MyBatis 조회·저장
해수욕장·리뷰 조회 · 기상 정보 연결
- Oracle DB
해수욕장·BBTI·회원·리뷰·태그·별점
- 공공 기상·천문 API
예보·수온·파고·특보·일출·일몰
내 담당: 팀 리딩·추천·BBTI·지역·정보 화면과 디자인. 기상 처리, 회원·마이페이지, 리뷰·문의 CRUD는 팀원과 분담했습니다.
구조·설계 판단 상세02 / 구현과 문제 해결
성향 테스트를 다음 방문의 추천으로
- 01 · 사용자 → JavaScript문항 응답
세 쌍의 성향 선택 횟수를 누적합니다.
- 02 · 브라우저유형 결과
세 축을 조합해 유형 코드와 결과 이미지를 보여줍니다.
- 03 · 사용자 → 서버확인·저장
기존 결과의 변경 여부를 확인합니다. 비회원은 로그인·가입 흐름으로 값을 전달합니다.
- 04 · Spring MVC → Oracle추천에 적용
저장한 유형의 태그를 메인 추천 조회 조건에 사용합니다.
추천은 Spring MVC와 Oracle 조회로 실행합니다. 별도 Python 스크립트는 회원 BBTI 통계 차트 생성에 사용했습니다.
실행 흐름 상세사용자 역할별 유스케이스
- 방문자
- 지역·위치로 바다 탐색
- 해수욕장 정보·날씨·리뷰 조회
- BBTI 테스트
- 회원
- 성향 결과 저장·변경
- 저장한 성향으로 추천 받기
CASE 01문자열 태그를 다시 분리해 집계해야 할 때
- 문제
- 리뷰 해시태그를 공백 구분 문자열로 보관해 대표 태그·BBTI 추천 집계가 복잡해졌습니다.
- 판단·대응
- REGEXP_SUBSTR·계층형 조회·LISTAGG로 태그를 분리하고 집계했습니다.
- 결과·한계
- 당시 조회를 구현했지만 복잡한 쿼리가 남았습니다. 정규화 필요성을 배운 사례이며 태그 관계 모델 개선은 향후 계획입니다.
구현한 범위와 남은 과제
성향·지역·위치 탐색을 해수욕장 정보와 리뷰 화면으로 연결했습니다. 태그 정규화와 추천 쿼리 개선은 완료된 성과가 아닌 후속 리팩토링 계획입니다.