📌 목적 과 대상
- 목적 : 반려견 기반 지역 커뮤니티 활성화 및 편의 제공 및 실시간 유기견 홍보 및 입양 유도 서비스
- 대상 : 전국 반려 가구 및 반려동물을 맞이하고자 하는 사람, 동물을 사랑하는 모두
📝 학습목표
- jsp/servlet을 활용한 서버 사이드 동적 웹페이지 구현
- 비동기 api 호출, Ajax 비동기 통신에 대한 이해 및 클라이언트 사이드 동적 웹 페이지 구현
- 디자인 패턴 MVC 에 대한 이해
- 브라우저 개발자 도구 활용
📝 협업 프로세스
- 팀 구성원들의 많은 협의를 통해 아이디어와 목표 이해
- 목적에 맞는 API 선택과 학습 및 정보 수집
- 구현할 페이지를 구성하고 페이지에 따라 클래스를 나누고 분업
- 담당 기능을 구현하고 평가 또는 피드백 요청
- 프로젝트를 통해 얻은 지식 공유
프로그램 소개 설명 및 이슈
[인덱스]

[로그인]

[회원 가입]
1. Daum Postcode Service API :
사용자가 우편번호와 주소를 찾을 수 있도록 하여 주소 정보를 필수 입력값으로 요구하여 각 페이지의 필터 기능에 활용
2. 문자인증 API(COOLSMS) :
문자인증을 사용하여 본인인증을 함
2-1. API 키를 레포지토리에 노출된 상태로 업로드(타인이 도용할 우려)
해결 : 인증키를 .properties 파일로 분리하여 .gitignore에 추가

[주변 반려견 시설]
1. geolocation API :
사용자 위치를 얻어 사용자 위치 기반 지도를 제공
2. 주변 펫 관련 장소 마커 제공, 마커 클릭시 상세보기 제공
3. 카테고리 별 검색 가능

[유기동물 조회 및 동물보호센터 조회]
1. 유기동물 조회 :
농림축산식품부 농림축산검역본부: 동물보호관리시스템 유기동물 정보 조회 서비스 API
1-1. 공고 마감일에 따라 정렬 제공
2. 동물 보호소 정보 조회 :
농림축산식품부 농림축산검역본부: 동물보호센터 정보 조회 API
2-1. 운영시간, 전화번호 등 제공
3. 인메모리 캐시 활용 :
이유 : 전국 유기동물의 수가 많아 페이지 요청시 데이터를 불러 정보를 가공하는데에 시간이 오래 걸림
해결 : 모든 데이터를 서버 시작시에 List 객체를 사용하여 서버 내에 보관하고 필요로 한 정보를 요청시에 보관된 데이터에서 가공하여 페이지 로딩 속도를 향상
4. 서버 side 스케줄링 로직으로 주기적으로 데이터를 설정해주어 업데이트
이유 : 지역 유기동물 호출 API를 서버 첫 구동 시에만 불러왔을 때에는 시간 흐름에 따른 데이터 갱신이 없기에, 스케줄링을 통해 해결



[반려견 카풀]
1. 카카오 맵 API :
API Document에서 제공하는 샘플을 참고, 변경하여 출발지 도착지 키워드 검색 후 마커 각각 제공
2. 카카오 길찾기 API :
표시된 출발지와 도착지 마커를 활용하여 경로 데이터에 선을 그어 경로를 표시
3. 채팅 :
웹소켓을 활용하여 작성자와 개별적인 채팅 제공



[산책아르바이트 및 게시판]
1. cos 라이브러리 :
cos 라이브러리를 통해 멀티파트 요청을 활용하여 파일(반려견 사진) 업로드 처리
2. 페이징 구현



[플로팅 배너]
1. paypal 결제 API 연결
2. 플로팅 배너 :
유기견 입양 플로팅 배너 클릭 시 국가 동물 보호 정보 시스템 홈페이지 입양안내 페이지로 이동



개선 하고 싶은 점
- 브라우저에서 제공하는 geolocation을 사용 하였지만 시연할때는 인증 문제로 사용하지 못했기에 IP 주소 기반 위치를 사용하여 개선하고 싶음
- 채팅 기록이 데이터베이스에 기록되지 않아 과거 기록을 볼 수 없어서 채팅을 데이터 베이스에 기록할 수 있도록 하여 과거 기록을 볼 수 있게 하고 싶음
- 산책 아르바이트와 반려견 카풀 메뉴에서 사용자들이 연락처나 채팅으로 매칭되기 때문에 미흡함이 있다고 생각을 하여 아르바이트 신청이나 채팅을 신청하게 되면 알림을 구현하고 싶음
- 각 페이지마다 필터가 콤보박스이거나 버튼으로 되어 있는데 통일되어 있지 않아 한가지의 방법으로 통일하고 싶음
'PROJECT' 카테고리의 다른 글
| [팀프로젝트]Health-Record (0) | 2024.04.20 |
|---|---|
| [팀프로젝트] Lotto (0) | 2024.04.20 |