
웹 개발을 처음 공부했을 때 배운 Javascript와 Node.js를 활용하여 프론트엔드 친구 1명과 함께 프로젝트를 만들었었다.
식재료와 옵션을 입력하면 chatGPT를 이용하여 그에 맞는 메뉴와 레시피를 추천해주는 서비스였다.
이 때는 프로젝트 경험도 없고, 백엔드 지식도 전무했을 때라서 한 거라곤 AWS를 이용한 배포와 https 도메인 설정, ChatGPT API를 활용한 레시피 및 메시지를 파싱해서 프론트엔드로 전달 정도밖에 없었다.
DB도 활용하지 않고 chatGPT 메시지 전달 역할만 하고 있어 포트폴리오로 활용하긴 아쉬운 점이 많았고, 프론트엔드 친구도 리팩토링 하고 싶은 마음이 있어 이번에 기회에 같이 프로젝트 리팩토링을 계획했다.
챗팟을 처음 만들었던 작년과 달리 이번에는 친구와 나 둘 다 프로젝트 경험이 있기 때문에, 더 본격적으로 프로젝트를 만들어보고자 했다.
기존의 프로젝트는 너무 단순했기에 요구사항부터 정리하는 시간을 가졌다.
회의록에는 요구사항을 구체적으로 정리하였지만, 여기에 간단하게 정리해보자면 추가되는 기능은 다음과 같다.
- 회원 기능 구현 ( 회원가입 및 로그인, 마이페이지 )
- 레시피 관리 ( 공유 설정, 삭제, 저장 등 )
- 식재료 및 옵션 선택 페이지 고도화
- 레시피에 태그(ex. 해시태그) 추가
- 레시피 페이지에 댓글 기능
- 레시피 추천 후 후속 상호작용 ( 레시피 재추천, 추천해준 chatGPT와의 채팅 등 )
- 생성형 AI chatGPT → Gemini로 변경
친구가 Gemini를 이용한 해커톤을 진행해보자고 제안해서 기존에 있는 프로젝트 AI를 Gemini로 변경하고, 추가적인 리팩토링도 Gemini로 진행하기로 결정하였다.
정리하다 보니 아예 새로운 프로젝트를 만들게 될 것 같아 Github에 Organization을 만들고, 회의록을 관리하여 요구사항과 이슈를 정리하면서 진행하기로 하였다.
이전에 챗팟은 Node.js로 만들었지만, 이번에는 Spring을 사용하여 만들어보고자 한다.
대부분 프로젝트를 팀 프로젝트로 진행했었기 때문에, 내가 직접 백엔드의 모든 부분을 담당해서 구현해볼 예정이다. API 명세 ERD 설계 등의 작업은 물론 Docker, Github Actions 등 아직 익숙하지 않은 부분도 적극 활용하여 개발 실력을 향상시켜야겠다.
또한 지금까지는 하루종일 프로젝트에만 몰입할 수 있는 환경에서 프로젝트를 진행했었는데,
이번에는 퇴근 후 또는 주말에 틈틈히 만들어야 해서 남는 시간을 잘 활용하는 습관도 가질 수 있으면 좋을 것 같다.