Skip to content
/ OMR Public

알라딘 API 활용 도서 및 도서 대여 여부 확인 서비스

Notifications You must be signed in to change notification settings

seok0205/OMR

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

79 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

final-pjt

팀원 정보 및 업무 분담 내역

직책 이름 분담 업무
팀장 유정석 백엔드 개발 및 UI디자인
팀원 김동규 프론트엔드 개발 및 UI디자인

목표 서비스 구현 및 실제 구현 정도

  1. 도서 데이터 기반 추천 웹 서비스 개발

    • 기초데이터를 포함해 알라딘 API와 GPT의 작가 정보 수집으로 다양한 도서와 작가, 스레드 커뮤니티 경험 가능.
  2. 도서 추천 알고리즘 구현

    • 사용자가 찜한 책들을 기반으로 책 내용 및 줄거리의 유사도를 측정하여 보유 데이터베이스의 책 중애 상위 5권 추천
    • 사용자가 선택한 기분을 기반으로 GPT가 무작위 도서 추천. 추천하면 알라딘 API 쿼리 검색으로 데이터 수신
  3. 커뮤니티 서비스 구성

    • 스레드와 댓글을 통해 도서에 관한 커뮤니티성 게시판 구성
    • 주변 도서관에서의 도서 대출 가능 여부 도서관 정보나루 API 통해 사용자에게 제공
    • 유튜브 API 기반 책 리뷰 영상 제공
  4. 서비스 관리 및 유지보수

    • 5월 28일 모든 기능 및 UI 설계, 구현 완료
    • 코드 재사용성 높이고 유지보수성 높인 다음 배포 예정

데이터베이스 모델링 (ERD)

ERD

도서 추천 알고리즘

사용자 찜한 책 유사도 기반 추천

  • 사용자가 마음에 드는 도서 찜하기
  • 찜한 도서들의 정보를 리스트로 만들어 임베딩 모델을 활용해 도서의 줄거리 및 내용 유사도 측정
  • 유사도 측정 후 상위 5개의 도서 추천
  • 찜한 책이 없을 경우 버튼 비활성화 및 찜 권유 메세지 출력

사용자 채택 감정 기반 추천

  • 사용자가 주어진 5가지의 감정 중 한가지 선택함
  • GPT로 무작위 책 5권을 목록으로 반환함
  • 알라딘 API 쿼리 검색으로 존재하는 도서 정보 반환
  • 바로 사용자에 리스트 제공

핵심 기능

  1. 메인페이지
    • 메인페이지
  2. 로그인 및 유저 정보 CRUD
    • 로그인
    • 회원가입
    • 회원가입
    • 유저 프로필
    • 유저 정보 수정
    • 비밀번호 변경
    • 회원 탈퇴 기능, 유저 팔로우 기능
  3. 도서 CR
    • 도서 불러오기(DB에 생성)
    • 도서 불러오기(DB에 생성)-2
    • 도서 목록
    • 도서 상세
    • 도서 상세2
    • 도서 찜하기
  4. 작가 CR
    • 작가 생성
    • 작가 목록 조회
    • 작가 상세 조회
    • 작가 팔로우 기능
  5. 쓰레드 CRUD
    • 쓰레드 목록
    • 쓰레드 생성1
    • 쓰레드 ai 피드백 기능 쓰레드 생성2
    • 쓰레드 생성 로딩(이미지 생성 로딩)
    • 쓰레드 상세1
    • 쓰레드 상세2
    • 쓰레드 수정 및 삭제 기능
  6. 도서 대출 여부 사용자 제공
    • 도서 대출 여부
  7. 도서 유튜브 리뷰 영상 제공
  8. 사용자 감정 기반 도서 추천
    • 감정 기반 추천
  9. 사용자 관심(찜) 기반 도서 추천
    • 찜 기반 추천
    • 메인페이지2
    • 메인페이지3

생성형 AI 활용

  1. 작가 정보 생성

    • 알라딘 API에서도 부분적으로 작가 정보를 제공하기 때문에 작가에 대한 정보 얻기 힘들었음
    • 프롬프트 생성하여 작가의 이름을 쿼리로 보내 해당 작가의 정보와 프로필 사진 위키피디아나 오픈 소스에 존재 시 json 데이터로 수신
    • 작가 목록 및 작가 팔로우, 작가 정보 페이지 제공
  2. 주변 도서관 대출 여부

    • 주변 3km이내의 도서관을 도서관 정보나루 API를 활용해 수신. 근처 도서관을 얻는 API기능은 없었기에 도서관의 위도와 경도를 API정보에서 뽑아내서 직선거리를 계산.
    • 도서 상세 페이지에서 해당 도서의 고유 ISBN 값을 활용해 도서관에서 대출 여부 API로 수신 후 사용자에게 제공
  3. 사용자 감정 기반 책 추천

  4. 스레드 작성 시 AI 피드백

    • 스레드 내용 작성한 뒤 AI 피드백 실행함
    • 본인이 쓴 내용과 AI 피드백 내용 둘 중 하나 채택 가능
  5. 스레드 이미지 생성

    • DALLE 2 모델 활용하여 스레드 내용을 표현하는 이미지 생성
    • 스레드 내용을 GPT에게 보내고 키워드 5가지를 반환받아 DALLE 2 프롬프트에 삽입

트러블슈팅 및 느낀점

  • 팀장 : 유정석

    • Bootstrap이나 CSS 스타일링을 할 때 구현해야 하는 방식은 머릿속으로 생각이 나지만 손에 익지 않아 공식 문서나 MDN에서 헤메는 시간이 길었음
    • axios로 요청하는 로직이 너무 많아서 코드 가독성이 너무 떨어져 있었으나 plugin 활용 방법을 터득하여 로직을 좀더 단순화하고 코드 재사용성 높일 수 있었음
    • 기능과 데이터 전처리를 두 명이서 설계하고 작성하다보니 중간에 모델이나 로직을 바꾸는 일이 허다했음. git을 통한 형상관리가 얼마나 중요한지 깨달음
  • 팀원 : 김동규

    • Vue부분을 주로 맡아서 진행을 하였는데 백엔드와 프론트엔드의 연동이 생각보다 쉽지 않음
    • 프로젝트를 진행하며 중간중간 문제가 필요한 모델이나 필드들이 많아지는 걸 보며 초반 설계의 중요성을 알게 되었음
    • Vue의 컴포넌트를 나누고 store를 쓰는 것이 코드 재사용성이나 유지/보수 측면에서 유리하다는 것을 알게 되었음.

배포 서버 URL

  • 추후 예정

About

알라딘 API 활용 도서 및 도서 대여 여부 확인 서비스

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Contributors 2

  •  
  •