- 114

나혼자 미슐랭 개발일지 #9 – 위시리스트 추가 및 계정 기능 개선, 핫리뷰 기능 개발

📌 Scope ?위시리스트 테이블 및 기능 설계이메일/비밀번호 찾기 기능 구현사용자 폰 번호 추가 (회원정보 확장) -> 이메일 찾기 기능에서 사용하기 위리뷰 좋아요(ReviewLike) 테이블 추가홈화면에 '핫리뷰' 기능 추가 (조회 API, 향후 정렬 방식 고도화 예정) 1. 위시리스트 테이블 및 기능 설계기존 사용자 데이터와 별도로 "가고 싶은 맛집"을 저장할 수 있는 기능이 필요해서 WishList 테이블을 새로 설계하였습니다.이 테이블은 유저와 음식점 사이의 다대다(N:N) 관계를 단순화하여 구성했고, 다음과 같은 필드를 포함하였습니다. 프론트에서는 특정 음식점 상세페이지에서 '위시리스트 담기' 버튼을 통해 추가 가능 ( 기능 개발 중 ) 저장된 리스트는 마이페이지 > ‘내 리스트’ 탭에서 ..

머신러닝 & 딥러닝 정리

머신러닝과 딥러닝의 정의, 차이점, 그리고 각자 어떤 분야에 적합한지에 대해 정리해보겠습니다. 1. 머신러닝(Machine Learning) ? "컴퓨터가 데이터를 통해 스스로 학습하게 하는 기술"-> 기계야 학습좀 해봐... 머신러닝은 사람이 일일이 프로그램하지 않아도, 데이터를 통해 규칙을 학습하게 하는 기술입니다. 다시 말해, 컴퓨터에게 데이터를 주고, 패턴을 스스로 찾아내어 미래를 예측하게 하는 것. 머신러닝의 핵심 개념: 사람이 모델의 구조나 입력값을 설계대표 알고리즘: 의사결정나무, SVM, KNN, 랜덤포레스트, 선형회귀, 로지스틱 회귀 등특징 추출(Feature Engineering)을 사람이 직접 수행Supervised Learning, Unsupervised Learning, Re..

카테고리 없음 2025.06.26

나혼자 미슐랭 개발일지 #8 – 리뷰 수정 기능 구현 및 별점 구조 개선

📌 scope ?리뷰 수정 페이지(EditReviewPage) 개발음식/분위기/서비스 별점 분리 구조 반영백엔드 리뷰 테이블 구조 수정리뷰 수정 API 및 이미지 업데이트 기능 구현 1. 리뷰 수정 기능 필요성리뷰 작성 이후 사용자가 내용을 수정할 수 있도록 기능을 추가해야 했습니다. 하지만 단순히 평점 하나만 바꾸는 게 아니라, 음식/분위기/서비스 각각의 점수를 분리해서 받고 있었기에, 기존 리뷰 테이블 구조 자체를 바꿔야 했습니다... (설계할 때 한번 더 생각할걸....ㅜ) 2. BE 리뷰 테이블 구조 수정기존에는 평균 평점 rating 필드만 있었지만, 이번 수정으로 다음 3가지 항목들을 추가하였습니다.foodRating: 음식 맛에 대한 점수moodRating: 분위기 점수service..

카테고리 없음 2025.06.03

나혼자 미슐랭 개발일지 #7 – 로그인 / 회원가입 / 카카오 로그인 기능 구현

범위: JWT 기반 인증 시스템 구현, 로그인/회원가입 API, 카카오 OAuth 연동, 프론트 연동 및 토큰 처리 그동안 데이터만 주고받던 편안한 API들과는 다르게,이번엔 사용자 인증이라는 큰 산을 마주하게 됐다. 1. 전체 흐름 구성 – JWT 기반 인증 시스템처음에는 그냥 로그인/회원가입만 만들 생각이었지만,리뷰 작성, 마이페이지 접근 등 사용자 인증이 필요한 기능이 많아질 걸 고려해서처음부터 JWT 기반 구조로 설계하기로 했다. 회원가입 → 유저 DB 저장 (비밀번호 암호화 포함)로그인 → 이메일 & 비밀번호 확인 → JWT 토큰 발급이후 모든 요청은 Authorization: Bearer 으로 인증 Spring Security 없이 순수하게 커스텀 필터 + JwtUtil로 처리했다. 2. ..

나혼자 미슐랭 개발일지 #6 – 리뷰 이미지 S3 업로드 및 출력 기능

범위: 리뷰 등록 기능 구현, 이미지 업로드(S3 연동), Kakao 장소 검색 연동, Restaurant DB 자동 저장 이번에는 사용자 리뷰 등록 경험을 본격적으로 구현하기 위해 여러 기능을 통합하였습니다.특히, 텍스트 리뷰뿐 아니라 이미지 업로드와 장소 검색까지 포함되어 기능적 완성도가 한 단계 더 올라갔습니다. 1. 리뷰 작성 기능 전체 흐름 정리리뷰 작성은 단순 텍스트 입력을 넘어서음식점 검색평점(음식, 분위기, 서비스)코멘트이미지 첨부까지 포함되도록 재설계 하였습니다. 리뷰 흐름 요약사용자가 음식점명을 입력하면 Kakao API로 검색검색 결과를 리스트로 보여주고 클릭 시 selectedRestaurant 설정리뷰 작성 완료 후 ‘저장하기’ 버튼 클릭 시,이미지가 있다면 S3에 업로드리뷰 정..

나혼자 미슐랭 개발일지 #5 – 마이페이지 및 프로필 수정 기능 구현

범위: 사용자 정보 관련 백엔드 확장, 마이페이지 UI 구성, 프로필 수정 페이지 제작, API 연동 이전 개발일지(#4)까지는 리뷰 작성 및 리스트 기능 구현에 집중했다면,이번에는 사용자 개인화 경험을 위한 "마이페이지"와 "프로필 수정" 기능을 새롭게 구축하였습니다.이를 위해 백엔드와 프론트 모두 구조적 확장이 필요했고,유저 데이터 모델 자체를 개선하여 더 많은 정보를 다룰 수 있도록 개선하였습니다. 1. 사용자 정보 모델 확장🔸 Entity 변경 (User.java)기존 User Entity는 로그인/회원가입 기반 정보만 있어 프로필 정보를 표현하기엔 한계가 있습니다.이에 따라 아래 필드를 추가하였다.profileImageString사용자 아바타 or 이미지 URLregionString활동 지역..

나혼자 미슐랭 개발일지 #4 – 리뷰 작성과 리스트 페이지 완성(무한스크롤 & 필터)

범위: 리뷰 작성 기능 구현, 무한 스크롤 적용, 정렬/필터 기능 추가, UI/UX 개선 1. 리뷰 작성 페이지(ReviewAddPage) 개발 ✅ 기능 요약음식점 검색 → 선택 → 별점 선택 → 코멘트 작성 → 저장 흐름음식점은 2글자 이상 입력 시 실시간 검색별점은 3개 항목(맛, 분위기, 서비스)으로 쪼개서 받고, 평균값만 저장필수값 누락 시 알림 및 유효성 검사 처리등록 성공 시 자동으로 리스트 페이지 이동 ✅ 주요 구현 사항StarRating 컴포넌트를 재사용 가능하게 분리별점 입력은 마우스로 클릭해 0.5점 단위 조절 가능선택된 음식점 카드 미리보기 + 썸네일 이미지 함께 표시프론트에서는 평균 평점만 백엔드로 전송 ✅ 관련 기술axios POST 요청으로 /api/reviews에 전송사용자 ..

나혼자 미슐랭 개발일지 #3 – 프론트 초기화부터 리뷰 리스트 완성까지

범위: 프론트 개발환경 구성, 백엔드 데이터 확장, 리뷰 리스트 기능 구현, CORS 해결 1. 프론트엔드 개발환경 구성BE 기본작업이 어느정도 완성되어서 FE 또한 작업이 필요했고 제가 맡아 개발환경 세팅을 시작하였습니다.이전까지는 단순히 구조만 짜두고 페이지 파일만 만들어놓은 상태였는데, 본격적으로 개발을 시작하면서 FE는 너무 오랜만이기도 하고 해서 많은 고민과 실험이 있었습니다..! 초기 삽질 요약CRA(Create React App)보다 더 가볍고 빠른 환경을 만들고 싶어서 Vite + React로 구성TailwindCSS도 도입해보려 했지만 설정 충돌, PostCSS 관련 오류, 예상치 못한 스타일 깨짐 등으로 시간만 소비함 → 결국 순수 CSS로 회귀....디렉토리 구조도 pages, com..

나혼자 미슐랭 개발일지 #2 – User, Restaurant, Review CRUD 개발완료

본격적으로 API의 기본 뼈대를 구성했습니다.User, Restaurant, Review 세 가지 핵심 도메인에 대해 CRUD(Create, Read, Update, Delete) 기능을 설계하고 구현했습니다. 📌 도메인별 엔티티 구성User: username, email, password, created, deletedRestaurant: name, address, category, mapUrl, avgRating, created, deletedReview: user, restaurant, rating, comment, created, modified, deleted삭제는 soft delete 방식을 채택했습니다. 🛠️ 개발 중 마주친 이슈와 해결 과정1. created 필드 타입 충돌초기엔 ..

Spring Boot 가이드 (서버 정상 가동 여부 체크 포인트)

Flask나 FastAPI 위주로 사용하다 Spring boot를 학습하고 프로젝트를 진행하다보니 헷갈리는 부분이 많았다.서버 가동관련 확인할때 체크해야 할 부분은 다음과 같다. ✅ 서버 정상 기동 여부 체크 포인트1. Spring Boot 로고와 버전 출력 → Spring Boot가 제대로 시작됐다는 의미 2. 내장 Tomcat 서버 시작 로그 → Tomcat이 8080 포트에서 정상적으로 뜸 3. DB 연결 성공 (HikariCP) → MySQL 연결 완료 4. JPA 테이블 관련 쿼리 실행 → JPA가 Entity에 맞게 테이블 스키마를 자동으로 수정 5. 애플리케이션 시작 완료 → 최종적으로 Spring Boot 애플리케이션 실행 완료.