Skip to content

JinhwanB/dividendpj

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

주식 배당금 정보를 제공하는 API 서비스 프로젝트

야후 파이낸스에 있는 회사의 배당금 정보를 스크랩하여 회사와 배당금 정보를 데이터베이스에 저장하고 조회 및 삭제 기능을 제공하는 API 프로젝트

블로그

프로젝트 기간

2024.05.01 ~ 2024.05.13

기술 스택

  • SpringBoot 3.2.5
  • Java 17
  • JPA
  • H2
  • Redis
  • Jsoup
  • Docker

목표

ERD

image

파일 구조

├─build
├─gradle
└─src
    ├─main
    │  ├─java
    │  │  └─com
    │  │      └─jh
    │  │          └─dividendpj
    │  │              ├─auth
    │  │              ├─company
    │  │              │  ├─controller
    │  │              │  ├─domain
    │  │              │  ├─dto
    │  │              │  ├─exception
    │  │              │  ├─repository
    │  │              │  └─service
    │  │              ├─config
    │  │              ├─dividend
    │  │              │  ├─domain
    │  │              │  ├─dto
    │  │              │  ├─repository
    │  │              │  └─service
    │  │              ├─member
    │  │              │  ├─controller
    │  │              │  ├─domain
    │  │              │  ├─dto
    │  │              │  ├─exception
    │  │              │  ├─repository
    │  │              │  └─service
    │  │              └─scraper
    │  │                  ├─exception
    │  │                  └─scheduler
    │  └─resources 
    └─test

최종 구현 API

  1. GET - finance/dividend/{companyName} -> service, controller
  • 회사 이름을 인풋으로 받아서 해당 회사의 메타 정보와 배당금 정보를 반환
  • 잘못된 회사명이 입력으로 들어온 경우 400 status 코드와 에러메시지 반환
  1. GET - company/autocomplete -> service, controller
  • 자동완성 기능을 위한 API
  • 검색하고자 하는 prefix 를 입력으로 받고, 해당 prefix 로 검색되는 회사명 리스트 중 10개 반환
  1. GET - company -> service, controller
  • 서비스에서 관리하고 있는 모든 회사 목록을 반환
  • 반환 결과는 Page 인터페이스 형태
  1. POST - company -> companyService, dividendService, controller
  • 새로운 회사 정보 추가
  • 추가하고자 하는 회사의 ticker 를 입력으로 받아 해당 회사의 정보를 스크래핑하고 저장
  • 이미 보유하고 있는 회사의 정보일 경우 400 status 코드와 적절한 에러 메시지 반환
  • 존재하지 않는 회사 ticker 일 경우 400 status 코드와 적절한 에러 메시지 반환
  1. DELETE - company/{ticker} -> service, controller
  • ticker 에 해당하는 회사 정보 삭제
  • 삭제시 회사의 배당금 정보와 캐시도 모두 삭제함 -> 캐시 삭제
  1. POST - auth/signup -> service, controller
  • 회원가입 API
  • 중복 ID 는 허용하지 않음
  • 패스워드는 암호화된 형태로 저장됨
  1. POST - auth/signin -> service, controller
  • 로그인 API
  • 회원가입이 되어있고, 아이디/패스워드 정보가 옳은 경우 JWT 발급

About

스프링 부트와 java를 사용한 배당금 프로젝트

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published