Project

[Project] - 카페 체크인

EJUN 2024. 4. 5. 23:18

저의 첫 프로젝트이자 남들이 볼 땐 쉬워보여도 저에겐 꽤나 고난이었던 프로젝트, 카페 체크인을 소개합니다....!

 

우선 "카페 체크인" 이라는 프로젝트는 서울에 존재하는 수 많은 카페 중 제가 원하는 카페를 정하려면 한 세월이 걸리는 불편함을 느꼈고 직접 한번 사이트를 만들자 라는 생각에 만들었고 사용자들이 원하는 분위기의 카페를 한눈에 쉽고 빠르게 확인할 수 있는  서비스입니다 ㅎㅎ

 

 

 


카페 체크인 개요
주요 기능
자유 게시판 글 작성 및 좋아요 기능
카페 리뷰 및 좋아요 기능
댓글 기능
관리자를 통한 카페 등록 및 게시글 관리
개발 기간
2023.07 ~ 2023.10 (3개월)
참여 인원
• 백엔드(1명)
Skills JAVA, Spring Boot, JPA, SMTP, Mysql
담당 역할 1. DB설계
2. REST API설계
a. 카페 정보를 조회하는 API
b. 게시물 CRUD API
c. 게시물 댓글 CRUD API
d. 카페 리뷰 CRUD API
e. 사용자 CUD API
3. Session 로그인 방식 구현
a. Session로그인 방식을 통한 게시글, 카페 리뷰, 개인 정보등을 관리
4. SMTP 통한 메일 전송
a. 사용자가 PW 까먹은 경우, 등록한 email로 임시 PW전송
Github Link github.com/CafeCheckin/CafeCheckin

카페 체크인 구조

 

카페 체크인 ERD

ERD다이어그램

user : 사용자 정보

user_wish : 사용자가 찜한 카페 목록

cafe_information : 카페 정보

menu : 카페 메뉴 정보

cafe_image : 카페 배경이미지

cafe_review : 사용자가 작성한 카페 리뷰

review_content_url : 작성한 리뷰 이미지

boarding : 게시판 정보

comments : 게시판에 달린 댓글 정보

board_content_url : 작성한 게시판 이미지

map : 지도에 표시할 카페 정보

 

UI & 기능

 

카페 체크인 - Login

 

Login page

 

카페 체크인 - Main

 

Main page

 

카페 체크인 - 게시글 목록

 

게시글 목록 page

 

카페 체크인 - 게시글 상세보기

 

게시글 상세보기 page

 

카페 체크인 - 카페 상세 정보

 

카페 상세 정보 page

 


느낀 점

처음으로 진행한 프로젝트이면서 인증과 인가처리를 위해 시큐리티를 처음으로 접했습니다.

이번 프로젝트에서는 Session방식을 이용하여 로그인을 처리하였습니다.

Session 방식은 Stateful방식을 이용하는 이론입니다.

이번 프로젝트는 React와 Ajax통신을 하지 않고 단순히 html, css만을 이용하여 View를 구성한 프로젝트이었습니다.

하지만 나중에 현업에 가서 혹은 다른 팀원들과 프로젝트를 진행하게 된다면 프론트와 통신을 해야하지 않을까? 라는 생각이 들었습니다.

지금 사용하고 있는 Session방식은 Stateful이기 때문에 항상 동일한 서버가 운영이 되야한다는 단점을 지니고 있습니다.

여기서 저는 그럼 만약에 서버가 여러대인 상황에서 쿠버네티스처럼 오토스케일링이 진행되면 매번 로그인을 해야하는 번거로움이 있을 거 같다는 생각이 들었습니다.

그래서 Stateful과 반대인 Stateless방식에는 무엇이 있는지 알아보던 중 JWT인증방식을 알게 되었습니다.

JWT는 Stateless방식을 이용하기 때문에 아무 서버나 호출해도 큰 문제가 없습니다.

다음 프로젝트를 진행할 때는 로그인 방식을 Session이 아닌 JWT를 이용하여 구현을 해보고 직접 EC2환경에 배포를 진행하여 서비스를 운영해보고 싶다 라는 생각이 들고 개발에 흥미를 가지게 해준 프로젝트였습니다.

'Project' 카테고리의 다른 글

[TDD] API 응답속도를 개선해보자.  (0) 2024.08.13
[Project] - Distance  (1) 2024.05.12
[Project] - 가자지구  (0) 2024.04.05