저의 첫 프로젝트이자 남들이 볼 땐 쉬워보여도 저에겐 꽤나 고난이었던 프로젝트, 카페 체크인을 소개합니다....!
우선 "카페 체크인" 이라는 프로젝트는 서울에 존재하는 수 많은 카페 중 제가 원하는 카페를 정하려면 한 세월이 걸리는 불편함을 느꼈고 직접 한번 사이트를 만들자 라는 생각에 만들었고 사용자들이 원하는 분위기의 카페를 한눈에 쉽고 빠르게 확인할 수 있는 서비스입니다 ㅎㅎ
카페 체크인 개요
주요 기능 |
• 자유 게시판 글 작성 및 좋아요 기능
• 카페 리뷰 및 좋아요 기능
• 댓글 기능
• 관리자를 통한 카페 등록 및 게시글 관리
|
개발 기간 |
• 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다이어그램
ㆍuser : 사용자 정보
ㆍuser_wish : 사용자가 찜한 카페 목록
ㆍcafe_information : 카페 정보
ㆍmenu : 카페 메뉴 정보
ㆍcafe_image : 카페 배경이미지
ㆍcafe_review : 사용자가 작성한 카페 리뷰
ㆍreview_content_url : 작성한 리뷰 이미지
ㆍboarding : 게시판 정보
ㆍcomments : 게시판에 달린 댓글 정보
ㆍboard_content_url : 작성한 게시판 이미지
ㆍmap : 지도에 표시할 카페 정보
UI & 기능
카페 체크인 - Login
카페 체크인 - Main
카페 체크인 - 게시글 목록
카페 체크인 - 게시글 상세보기
카페 체크인 - 카페 상세 정보
느낀 점
처음으로 진행한 프로젝트이면서 인증과 인가처리를 위해 시큐리티를 처음으로 접했습니다.
이번 프로젝트에서는 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 |