🌷 소중한 사람에게 선물하는 나만의 커스텀 시집, 꽃편지가 만들어드려요.
-
프로젝트 명: 꽃편지
-
팀원: 정율리(팀장), 김가원, 김서정, 김준석, 이무용
사람들은 곧 잘 누군가에게 줄 특별한 선물로 시집을 고르고는 합니다. 하지만 시의 종류와 내용은 너무도 다양해서, 상대방에게 맞춘 적절한 내용의 시집을 찾기란 쉽지 않습니다.
꽃편지는, 여러분이 선물하는 대상에 꼭 맞는 시집을 AI의 도움으로 만들어주는 서비스입니다.
소중한 사람에게 편지를 쓰고, 함께 선물할 수 있는 맞춤 시집을 받아 보세요. 의미있는 꽃말을 담은 표지까지 더해진다면, 세상에서 하나뿐인 그 사람만을 위한 시집이 될 것입니다.
- 수집한 시에서 레이블을 추출하여, 이를 기반으로 시를 다중 레이블 분류합니다.
- 사용자가 편지를 입력하면, AI가 내용을 분석해서 알맞은 키워드들로 이루어진 시집을 큐레이팅 해 줍니다.
- 사용자는 AI가 추천한 꽃말들 중 하나를 선택해 표지를 꾸밀 수 있습니다.
- 폰트와 컬러, 제목 등 세부 커스터마이징 단계를 거치며 시집의 외면과 내면을 검토 할 수 있습니다.
- 시집이 완성된 후 배송정보와 결제정보를 입력하고 결제를 완료하면, 주문 확인 이메일을 받게 됩니다.
- FRONT :
React
Redux
styled-components
Chakra UI axios
Figma (Wireframe)
- BACK :
MySQL
SQLAlchemy
MongoDB
Beanie ODM
FastAPI
FastAPI-Mail
Bcrypt
- AI :
KoNLPy
LDA
KoBERT
- DEPLOY:
MongoDB Atlas
Amazon RDS
GCP
Docker
Docker-Compose
Ngnix
demo_subtitles.mp4
🌻 정율리(팀장)
- Position : Backend / PM
- Stack :
Python
Flask
FastAPI
Pydantic
SQL
MongoDB
SQLAlchemy
React
JavaScript
- Github:
yuliepie
Contribution
- PM & Administration
- 서비스의 기획 & Requirements 정리
- Product Backlog 관리
- Gitlab Kanban Board & Issues 관리
- 랜딩페이지, 소개페이지, 자주묻는 질문 등 텍스트 서술
- Database
- Database schema 구성 (MySQL, MongoDB)
- SQLAlchemy ORM & Beanie ODM 을 사용해 DB 쿼리
- Server
- FastAPI framework로 API 서버 구축
- API 문서화
- 인공지능 모델 API 구축
- API 구현:
- 시 & 꽃말 반환 기능
- 문의 추가 & 답변 기능
- 주문 생성 & 이메일 발송
- 백엔드 PG사 결제 후 리디렉션
- 백오피스 기능 구현 (주문확인 & 문의 답변)
- PG사 결제창 호출
- Deployment
- Docker Compose 를 이용한 서비스 배포 (Front, Back, Model, Admin services)
- Google Cloud Services로 VM & DNS 관리
- Traefik 을 이용한 Reverse proxy & TLS certificate (HTTPS) 관리
- Gitlab Runner 를 이용한 CD 구축
- Staging, Production 환경 분리
Project QnA
-
Q. MySQL과 MongoDB를 동시에 쓴 이유?
주문 데이터 같은 경우는 DB에 추가시 ACID 원칙이 중요하기 때문에 그런 특성들이 잘 지켜지는 RDB를 사용했다. 하지만 시집 데이터같은 경우는 시집의 컨텐츠를 고려했을때 document type 의 데이터베이스가 더 적절하다는 판단을 해서 MongoDB를 도입하게 되었다.
-
Q. 프로젝트를 마친 소감?
단순 crud 시스템이 아닌 인공지능, ecommerce의 flow까지 더해진 프로젝트를 기획하고 구현해 볼 수 있어 서비스가 풍부하게 느껴져, 개발도 즐거웠습니다. 몸도 힘들고 팀장으로서 부담이 있었던 것도 사실이지만, 하루하루 지날때마다 새로운 사실을 알게되고 개발자로서 발전해 나가는 것이 느껴져서 정신적으론 즐거움이 있는 프로젝트였던 것 같습니다. 특히 배포환경과 containerization에 대해 스스로 배우고 적용해보는 것이 재밌었습니다.
🌻 김가원
- Position : AI
- Stack :
python
jupyter
matplotlib
pandas
numpy
scikit-learn
gensim
BERT
wordrank
Contribution
- 레이블링 모델 구현
- word2vec 모델 구현
- doc2vec 모델 구현
- 시 데이터 PCA 분석 진행
- 한글 데이터 전처리
- 시 데이터 키워드 추출
- LDA 모델 재학습
- 학습 모델 구현
- koBERT 활용 다중 레이블 분류 모델 구현
Project QnA
-
Q. 프로젝트를 마친 소감?
이론으로만 접했던 인공지능을 프로젝트를 진행하면서 직접 구현하고 공부하면서 더 깊게 이해할 수 있었습니다. 기획 부터 개발까지 쉽지는 않았지만 팀원들과 함께 소통하고 서로 어려운 부분을 보완했기 때문에 프로젝트를 끝까지 마무리 할 수 있었다고 생각합니다. 인공지능의 학습 결과가 만족스럽지는 않지만 부족한 부분을 더 공부하면서 연구할 수 있는 기회인것 같습니다.
🌻 김서정
- Position : Frontend
- Stack :
React
ChakraUI
StyledComponent
Python
- Github: https://github.com/seojeong2
Contribution
- Data Crawling
- 시 데이터 크롤링
- 웹 페이지 구현
- 웹 레이아웃 구현
- 라우팅 구현
- 전체 리덕스 구현
- 키워드 표시 구현
- 폰트/컬러 선택 기능 구현
- 시집검토 단계 검토기능 구현
- 주문번호 표시 기능 구현
Project QnA
-
Q. Chakra UI 선택 이유?
css적인 부분보다 기능구현에 초점을 맞추고 싶어, 빠르게 적용할 수 있는 UI Component를 사용하고자 하였다.
-
Q. 프로젝트를 마친 소감?
많이 배우고 성장할 수 있었던 프로젝트였습니다. 리덕스 사용 어려워 했는데, 이번 프로젝트 하면서 이해도를 높였고, 기능 구현을 완성해가면서 프론트엔드 개발의 매력을 더 많이 느낄 수 있었습니다.
🌻 김준석
- Position : Frontend
- Stack :
React
ChakraUI
StyledComponent
- Github: https://github.com/Junseok3608
Contribution
- 와이어프레임
- MVP 와이어프레임 작성
- 최종 와이어프레임 수정
- 웹페이지 구현
- MVP 레이아웃 구현
- 리덕스 셋업
- 전체 페이지 디자인
- 애니메이션
- navlink 설정
Project QnA
-
Q. Redux 사용 이유
편지 작성 단계부터 편지 작성 후 시, 꽃말, 자유글, 주문정보 데이터를 주문 단계까지 가지고 있다가 back으로 전달하기 위함.
-
Q. 프로젝트를 마친 소감?
프로젝트를 진행하고 마치면서 공부가 많이 부족함을 느꼈습니다. 프론트엔드를 두 명이 맡아 진행한 것이 처음이었는데, 부족한 부분들을 많이 느끼고 이번 프로젝트 이후로 이해도를 더 높여야 겠다고 생각했습니다. 프로젝트 끝까지 있을 수 있던 건 팀원들의 배려 덕분이었습니다.
🌻 이무용
- Position : Back-end, AI
- Stack :
FastApi-MAIL
KoBERT
- GitHub : https://github.com/555cider
Contribution
- Data Crawling
- scrapy 라이브러리를 이용하여 시 데이터를 크롤링 (동적 웹페이지의 데이터는 얻지 못하였음)
- AI Modeling
- 레이블 추출 과정에서 LDA 모델링 및 시각화 (결과가 좋지 않아 사용하진 않음)
- 추출된 레이블로 시와 편지를 레이블링
Project QnA
-
Q. 프로젝트를 마친 소감?
이전 프로젝트를 느슨하게 수행한 탓인지, 이번에야말로 프로젝트를 한 느낌이 들었습니다. 이렇게 바쁘게 지내니, 시간을 알차게 보내는 것 같아 매우 만족스러운 시간이었습니다. 다만, 인공지능 분야에 대한 이해가 부족하여, 자잘한 시행착오가 많이 있었고, 프로젝트에 기여한 바도 많지 못하였습니다. 당초 예상했던 바보다 더 훌륭한, 위와 같은 결과물이 나올 수 있었던 데는 팀장님과 팀원분들이 많은 노고 덕분이라 생각합니다. 모두 고생하셨습니다.