Skip to content

minoflower31/financial-product-recommendation-service

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

금융상품 추천 서비스

나에게 맞는 금융 상품을 쉽게 파악할 수 있도록 나이나 직업, 재산과 같은 인적사항을 기반으로 적금, 대출, 펀드, 카드, 멤버십 상품을 추천하는 금융 서비스입니다.


  • 🗓️ 기간: 2022.08.16 ~ 2022.09.06
  • 👨‍💻 인원: 8명 (FE 4명, BE 4명)
  • 🏷 역할: BE 팀장
  • 🌱 기술 스택: Spring Boot, Spring Data Jpa, QueryDSL, MySQL, H2, Swagger, AWS EC2, AWS RDS, AWS S3, IntelliJ, Notion
  • 🔍 담당 업무
    • 회원 정보 수정 및 조회, 상품 검색 및 필터링, 상품 전체 목록 및 상품 상세 정보 조회, 맞춤형 상품 목록(대출, 적금, 펀드)과 현명한 소비 목록(카드, 멤버십) 조회 기능 구현
    • 배포 서버 구축
    • ERD, API 명세서, 코드 컨벤션 작성 주도
금융상품_검색_및_필터링 회원정보_수정 금융상품_추천
금융 상품 이름이나 필터링을 활용한 검색 기능을 구현했습니다. 사용자의 인적사항을 기반으로 금융 상품을 추천하기 위한 입력 화면입니다. 사용자가 입력한 정보에 따라 금융 상품(대출, 적금, 펀드)이 추천되도록 구현했습니다.




ERD

erd



API

api



다음과 같은 내용을 기여했어요

1️⃣  상품에 대한 조회와 검색 및 필터링을 구현했습니다.

  • Spring Boot Framework와 Spring data Jpa로 서비스를 구현했고, 그 중에서 회원 정보 수정 및 조회, 필터링이 포함된 상품 검색, 상품 전체 목록 및 상품 상세 정보 조회, 맞춤형 상품 목록(대출, 적금, 펀드)과 현명한 소비 목록(카드, 멤버십) 조회를 담당했습니다.
  • Dto 클래스를 생성하여 api 명세서에 맞게 요청/응답을 처리했고, 최대 4단계의 json 구조를 모두 Dto로 구현했습니다.

2️⃣  프로젝트 진행 도중, 동적 쿼리를 위한 새로운 기술을 도입해봤습니다.

  • 상품 검색 및 필터링이나 맞춤형, 현명한 소비 상품 목록 조회는 팀원 1명과 협업해 QueryDsl로 구현했습니다.
  • QueryDsl을 선정한 이유는 상품 검색 및 필터링할 때 클라이언트 요청에 따라(e.g. 검색 조건이 있는 경우와 없는 경우) 모든 쿼리 메서드를 작성해야 했기 때문에 이를 동적으로 쿼리를 처리하기 위해 채택했습니다.

3️⃣  서버 배포를 담당했습니다.

  • AWS EC2 + Nginx로 배포 서버 구축 및 웹 서버를 적용했습니다.




문제를 해결한 경험이 있어요

1️⃣ 용량 관리에 대한 고민과 해결

  • 초기에는 데이터베이스에 금융 상품의 로고 이미지를 BLOB 형태로 저장하려고 했지만, AWS RDS를 도입한 시점에서 용량 관리를 어떻게 할지 고민이었습니다. 비록 30개의 더미 데이터가 있었으나 이후에 추가될 상품 데이터를 고려한다면 row가 증가하고 이는 성능 이슈로 직면할 것이라고 판단했습니다. 그래서 웹 스토리지 서비스 중 하나인 AWS S3를 도입하여 데이터베이스에 버킷의 url만 저장하고, 클라이언트는 img 태그에 url를 넣어 표시할 수 있게 했습니다.




배운점이 있어요

이번 프로젝트를 통해 처음으로 이 같은 경험을 하게 됐습니다.

  • BE 팀원들과 네이밍 규칙을 토대로 한 API 명세서를 작성하며 REST API를 이해하는 데 도움이 됐습니다.

  • BE 팀원들과 코드 컨벤션을 정해 개발을 진행해본 결과, 서로 구현한 코드를 보다 수월히 이해하게 되어 어려움에 막힌 팀원과 함께 고민하면서 문제를 해결할 수 있어 좋았습니다.

  • AWS EC2를 통한 서버를 배포하는 데 있어서 nginx 설정이나 빌드 스크립트 파일 작성에 대해 많은 오류를 만났습니다. 하지만 멘토님께 적극적으로 질문하거나 웹 서핑을 통해 문제를 해결하면서 무사히 서버를 배포할 수 있었습니다. 이 과정에서 ‘생소하고 어렵게 느껴지더라도 부딪히며 해결하려 든다면 어떻게든 해결할 수 있구나!' 라며 다짐하게 된 소중한 경험이었습니다.

About

No description, website, or topics provided.

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Contributors 3

  •  
  •  
  •  

Languages