스프링 프레임워크

[스프링부트] 풋살 예약 사이트

맘모스커피 2023. 7. 10. 15:35

👩‍🌾 풋살 예약 사이트 개발 과정 입니다.

     - 개발인원 : 1명

    -  개발기간 : 23.06.18 ~ 23.07.10

🔍 개발 목표는 1. 크롤링 2. 구매 과정 3. 찜하기 4. 카카오, 네이버, 구글 API로 계정 연동을 목표로 진행하였습니다.

 

오프사이드 DB 설계

전반적인 데이터베이스 설계는 이렇게 진행하였습니다. 

 

1. 회원가입

✍ 회원가입 기능은 유효성 검사를 통해 진행되도록 개발하였습니다. 

 

 

 

정규화 표현식을 js로 설정하여 설정에 맞지 않으면 오류가 나는 형식으로 설계하였습니다. 자세한 정규표현식 사용은 아래 링크를 통해 확인하세요.

[Java] 정규표현식 사용법 및 예제 - Pattern, Matcher (tistory.com)

 

 

 두번째로 우선한 사항은 회원가입시 비밀번호 암호화 입니다. 

poxm.xml 에 의존성을 주입한 후 BCryptPasswordEncoder를 통해 암호화가 가능하도록 개발하였습니다.

회원가입 중 getPassword()를 통해 입력값을 받은 후 암호화를 진행하여 다시 setPassword로 넘겨주어 데이터베이스에 저장이 됩니다.

 

2. 로그인 

 

  로그인 창입니다. 기본적인 로그인 기능 및 API를 통해 로그인이 가능합니다.

 

 

기본적으로 로그인 API를 사용하려면 appication.properties에 사용할 기능들을 추가해주어야 합니다. 

(NAVER CLOUD PLATFORM 네이버 클라우드 플랫폼 (ncloud.com)) 이 사이트를 통해 로그인 API key값과 사용방법을 익힐 수 있습니다.

 

정상적으로 데이터베이스에 연동이 된것을 확인하실 수 있습니다.

 

✍  마이페이지는 시간 관계상 완벽히 구현하지 않았습니다. 나중에 내용을 추가 업데이트 할 예정입니다.

✍ 관리자 페이지 

 

- 주요한 기능들만 구현하였고 매출관리 페이지를 추가할 예정입니다. 

- 경기장 등록 및 매니지 페이지에서 검색기능 및 페이징 처리를 적용하였습니다. 

 - 매치 등록 페이지 입니다. 주소번호를 입력하는 이유는 나중에 카카오 주소 API를 통해 존재하는 주소에 따른 분류를 진행하기 위함입니다.

- 매치 등록 현황입니다. 사용자가 구매를 진행하면 set과 get을 통해 matchCount가 줄어들고 만약 정원이 가득차면 매치가 진행되게 개발하였습니다.

 

✍ 메인 페이지

 - 오프사이드의 메인페이지 입니다. category에 따라  나눠지게 만들었습니다. 이로써 사용자들은 자신의 수준에 맞는 매치에 등록할 수 있습니다. 

 

- 네이버 스포츠 뉴스를 크롤링했습니다. 

 

- 크롤링 방법은 아래 링크를 통해 공부하였습니다. 

[Java] - Jsoup을 이용한 크롤링(feat. 인프런) (tistory.com)

 

✍ 다음 API를 통해 입력한 주소가 session에 저장됩니다. 저장한 지역에 매치가 있을경우에만 매치가 표시됩니다. 

 

✍카테고리에 따라 경기장이 나타납니다.

 

 

✍ 매치 정보 페이지입니다. 프로젝트를 빠르게 제작하기 위해 장바구니 기능은 모형만 갖춘 상태이며 <c:out> 태그를 통해 value값을 확인 후 필요한 값만 나타난 상태입니다. 

 

✍다음 주소 API를 통해 경기장의 위치를 파악할 수 있도록 개발하였습니다.

 

✍댓글 페이지입니다. 평점과 리뷰를 등록할 수 있습니다. 만약 댓글을 이전에 작성하였다면. 오류 경고 메시지가 나옵니다.

✍ 구매 페이지 입니다. 적용한 할인가에 맞춰 가격이 정해지며, 적립 포인트 기능을 추가하였습니다.

✍ 마지막으로 찜하기 기능입니다.

사용자의 Id와 매치의 Id를 사용하여 찜하기 기능을 구현하였습니다.

- 하트 모양 클릭시 정상적으로 데이터베이스에 적용이 되는것을 확인하실 수 있습니다.

 

 

🏇 마치며 ... 

 공부해보고 싶었던 기술들을 하나씩 적용하는 프로젝트를 만들고 싶어 진행하였습니다. 로직을 구현하거나 3일이 걸려도 안고쳐지는 오류를 수정하느라 시간을 많이 할애한것 같습니다. 개발 과정에 대한 전체 포스팅을 진행하려 했으나, 시간관계상 다음 기회에 부족한 부분을 전부 채운 뒤 포스팅 해보겠습니다. 감사합니다.  🏇

 

 

 

[Java] - Jsoup을 이용한 크롤링(feat. 인프런)

• 안녕하세요~ 이전에 운영하던 블로그 및 GitHub, 공부 내용을 정리하는 Study-GitHub 가 있습니다! • 네이버 블로그 • GitHub • Study-GitHub • 🐔 📎 Jsoup을 이용한 크롤링 안녕하세요! 이번에 정리

zzang9ha.tistory.com

 

[Java] 정규표현식 사용법 및 예제 - Pattern, Matcher

자바에서 정규표현식(Regular Expression)'을 사용해보자. 1. 정규표현식(Regular Expression) 정규표현식 혹은 정규식은 특정한 규칙을 가진 문자열의 집합을 표현하는데 사용되는 언어다. 정규 표현식은

hbase.tistory.com