/stock-dividend-project

주식 배당금 프로젝트 (Spring Boot + JPA)

Primary LanguageJava

Development Environment

Dependencies

  • Spring Web
  • Spring Security
  • Spring Data JPA
  • Spring Data REDIS
  • H2 Database
  • Jsoup
  • JsonWebToken
  • Lombok
  • apache commons
dependencies {
	implementation 'org.springframework.boot:spring-boot-starter-web'
	implementation 'org.springframework.boot:spring-boot-starter-data-jpa'
	implementation 'org.springframework.boot:spring-boot-starter-data-redis'
	implementation 'org.springframework.boot:spring-boot-starter-security'

	implementation group: 'com.h2database', name: 'h2', version: '1.4.200'
	implementation group: 'org.jsoup', name: 'jsoup', version: '1.7.2'
	implementation group: 'io.jsonwebtoken', name: 'jjwt', version: '0.9.1'
	implementation group: 'org.apache.commons', name: 'commons-collections4', version: '4.3'

	compileOnly group: 'org.projectlombok', name: 'lombok', version: '1.18.22'
	annotationProcessor group: 'org.projectlombok', name: 'lombok', version: '1.18.22'

	testImplementation 'org.junit.jupiter:junit-jupiter-api:5.8.1'
	testRuntimeOnly 'org.junit.jupiter:junit-jupiter-engine:5.8.1'
}

1️⃣ 구현 API 리스트

GET - finance/dividend/{companyName}

  • 회사 이름을 인풋으로 받아서 해당 회사의 메타 정보와 배당금 정보를 반환
  • 잘못된 회사명이 입력으로 들어온 경우 400 status 코드와 에러메시지 반환

회사정보 및 배당금 조회

GET - company/autocomplete

  • 자동완성 기능을 위한 API
  • 검색하고자 하는 prefix 를 입력으로 받고, 해당 prefix 로 검색되는 회사명 리스트 중 10개 반환

자동완성

GET - company

  • 서비스에서 관리하고 있는 모든 회사 목록을 반환
  • 반환 결과는 Page 인터페이스 형태

페이징_회사목록조회

POST - company

  • 새로운 회사 정보 추가
  • 추가하고자 하는 회사의 ticker 를 입력으로 받아 해당 회사의 정보를 스크래핑하고 저장
  • 이미 보유하고 있는 회사의 정보일 경우 400 status 코드와 적절한 에러 메시지 반환
  • 존재하지 않는 회사 ticker 일 경우 400 status 코드와 적절한 에러 메시지 반환

회사_정보_추가

공통 에러 처리 추가 image

DELETE - company/{ticker}

  • ticker 에 해당하는 회사 정보 삭제
  • 삭제시 회사의 배당금 정보와 캐시도 모두 삭제되어야 함 Redis

회사 정보 삭제_Redis정보도삭제

POST - auth/signup

  • 회원가입 API
  • 중복 ID 는 허용하지 않음
  • 패스워드는 암호화된 형태로 저장되어야함

image

POST - auth/signin

  • 로그인 API
  • 회원가입이 되어있고, 아이디/패스워드 정보가 옳은 경우 JWT 발급

image

피드백(23.06.08)

김하은 강사님 강의를 듣고 진행한 프로젝트입니다. 👨‍🎓