안녕하세요. 😍 기술 세미나 발표를 위한 프로젝트 입니다.
세미나 주제 선정 기준은범용적,국제표준,OpenSource,실무적용입니다.
세미나 발표 내용은 해당 프로젝트에 구현되어 있습니다.
지속적인 연재가 가능하도록 개발환경을 구성하였습니다.
아래는 세미나 발표를 위한 문서입니다.
새창으로 열어주시기 바랍니다.
- IDE : Intellij IDEA Ultimate 2021.1.1.1
- Language : JDK 1.8.0_291
- WAS : Embeded Tomcat
- Build : Gradle-7.1.1
- Test : Swagger 3.0
- Framework : spring-boot 2.3.9.RELEASE
- DBMS : h2Database 1.4.200 서버모드(TCP)
- Cache : ehcache 3.7.0
- ORM(Object relational Mapping) : Mybatis 2.1.4
- 기타 : lombok , hibernate-validator
Local-WAS 부트 업 이후에 아래 링크에서 테스트가 가능합니다.
기술 세미나 테스트 swagger
- http://localhost:8085/swagger-ui/
- API Base URI :
http://localhost:8085
모든 응답은
success파라미터를 포함하고 있으며 성공 응답에는true실패응답에는false를 응답합니다.
성공 응답은data하위에body를 응답합니다.
에러 응답은errors파라미터를 포함하고 있으며 에러code와message를 응답합니다.
HTTP상태코드4XX대 에러 경우 조치 방법을message에 안내합니다.
{
"success": "true",
"data": {
"investProductCnt": 1,
"investTransactionList": [
{
"productId": "PRD0000011",
"productName": "공공임대주택 개발사업 수익담보 1-1",
"totalInvestAmt": 700000000,
"crntInvestAmt": 2000000,
"productStatus": "모집중",
"myInvestAmt": 2000000,
"transAt": "20210715064955"
}
]
}
}{
"success": "false",
"errors": {
"code": "ONEC_LIMIT_EXCESS",
"message": "요청하신 투자금액이 1회 투자한도금액을 초과하였습니다. 해당 제공사의 1회 투자한도금액은 [5000000]입니다."
}
}h2Database 서버 모드로 구성하여 Local WAS 부트업 이후
TCP접속이 가능합니다.
아래는 접속 정보 입니다.
- h2Database WebConsole : http://localhost:8085/h2
- JDBC URL :
jdbc:h2:tcp://localhost:9095/./data/investdb;MODE=MySQL - UserName:
pilsa115 - password :
pilsa115
URI : /v1/invest/products
HTTP Method : POST
- 등록되어 있는 투자상품 중 (투자시작일시 ~ 투자종료일시) 내의 상품 목록을 응답합니다.
- 0 ~ 9999999999 범위의 숫자형태의 사용자 식별값을 검증합니다.
- 정렬옵션은
optional하며INCOME(높은수익률순),PERIOD(짧은기간순),CLOSING(마감임박순)의 예약어를 사용합니다.
| HTTP | 항목명 | 항목설명 | 필수 | 타입 | 설명 |
|---|---|---|---|---|---|
| Header | x-user-id | 사용자 식별값 | Y | Number |
요청하는 사용자의 식별값 |
| Body | sortOption | 정렬옵션 | N | String |
높은수익률순, 짧은기간순, 마감임박순 |
| HTTP | 항목명 | 항목설명 | 필수 | 타입 | 설명 |
|---|---|---|---|---|---|
| Header | transactionId | 거래ID | Y | STRING |
트렌젝션 단위의 거래 식별값 |
| Body | investProductCnt | 투자상품목록수 | Y | NUMBER |
투자 상품 목록의 건수 |
| Body | investProductList | 투자상품목록 | Y | OBJECT |
투자 상품 목록 |
| Body | -- productId | 상품ID | Y | STRING |
투자상품 고유 관리번호 |
| Body | -- productType | 상품구분코드 | Y | STRING |
01:부동산담보, 02:부동산PF, 03:신용 |
| Body | -- productName | 상품이름 | Y | STRING |
해당 상품의 상품명 |
| Body | -- productDsc | 상품설명 | N | STRING |
해당 상품의 상품 설명 |
| Body | -- intRate | 적용이율 | Y | DECIMAL |
해당 상품에 적용 이율 |
| Body | -- totalInvestAmt | 총모집금액 | Y | NUMBER |
설정된 최대 투자 모집 금액, 통화코드는 KRW(원) |
| Body | -- startedAt | 투자시작일시 | Y | DATETIME |
설정된 투자 모집 시작일시 |
| Body | -- finishedAt | 투자종료일시 | Y | DATETIME |
설정된 투자 모집 종료일시 |
| Body | -- allianceCode | 투자연계금융기관코드 | Y | STRING |
PPF, TGF, TRF |
| Body | -- allianceNm | 투자연계금융기관명 | Y | STRING |
피플펀드,투게더펀딩,테라펀딩 |
| Body | -- investPeriod | 투자기간 | Y | NUMBER |
월 단위 투자 약정 기간 |
| Body | -- productStatus | 상품상태 | Y | STRING |
초기상태, 모집중, 모집완료, 상환중, 상환완료, 종료 |
| Body | -- crntInvestAmt | 현재모집금액 | N | NUMBER |
해당 상품에 현재 까지 모집된 총 투자금액 |
| Body | -- crntInvestCnt | 현재투자자수 | N | NUMBER |
해당 상품에 투자한 누적 투자자 건수 |
URI : /v1/invest
HTTP Method : POST
- 사용자 식별값은 숫자형태의
0 ~ 9999999999범위의 가지며 필수 파라미터 입니다. - 상품ID는 10자리로 입력을 받습니다.
최소 투자 금액 검증: 투자 금액은최소 1만원부터 가능합니다.1회 투자 한도 검증: 회원의 투자요청금액이 해당 제공사 별1회투자한도금액을 초과했는지 검증합니다.동일 투자 상품 검증: 회원이동일상품에 투자한 이력이 있는지 검증합니다.부동산투자 한도 검증: 투자요청한 상품이 부동산(담보/PF)일 경우 해당 제공사의부동산투자한도금액을 초과했는지 검증합니다.최대 투자 한도 검증: 투자한 누적금액이 업권통합한도 또는 제공사 별 투자한도를 초과했는지 검증합니다. (온투라이센스 여부)상품 총모집금액 검증: (투자요청금액 + 상품의 현재모집금액) 가 (해당 상품의 총모집금액)을 초과하였는지 검증합니다.- 상품의 총 투자모집 금액을 넘어서면
모집완료상태를 응답합니다.
| HTTP | 항목명 | 항목설명 | 필수 | 타입 | 설명 |
|---|---|---|---|---|---|
| Header | x-user-id | 사용자 식별값 | Y | Number |
요청하는 사용자의 식별값 |
| Body | productId | 상품ID | Y | STRING |
투자상품 고유 관리번호 |
| Body | investAmount | 투자금액 | N | NUMBER |
사용자가 투자하려는 금액 |
| HTTP | 항목명 | 항목설명 | 필수 | 타입 | 설명 |
|---|---|---|---|---|---|
| Header | transactionId | 거래ID | Y | STRING |
트렌젝션 단위의 거래 식별값 |
| Body | productStatus | 상품상태 | Y | NUMBER |
초기상태, 모집중, 모집완료, 상환중, 상환완료, 종료 |
| Body | productStatusCode | 상품상태코드 | Y | NUMBER |
01, 02, 03, 04, 05, 99 |
URI: /v1/invest/transactions
HTTP Method : POST
- 사용자 식별값은 숫자형태의
0 ~ 9999999999범위의 가지며 필수 파라미터 입니다. - 사용자가 투자한 모든 상품을 반환합니다.
| HTTP | 항목명 | 항목설명 | 필수 | 타입 | 설명 |
|---|---|---|---|---|---|
| Header | x-user-id | 사용자 식별값 | Y | Number |
요청하는 사용자의 식별값 |
| HTTP | 항목명 | 항목설명 | 필수 | 타입 | 설명 |
|---|---|---|---|---|---|
| Header | transactionId | 거래ID | Y | STRING |
트렌젝션 단위의 거래 식별값 |
| Body | investProductCnt | 투자상품목록수 | Y | NUMBER |
투자 상품 목록의 건수 |
| Body | investTransactionList | 투자상품목록 | Y | OBJECT |
투자 상품 목록 |
| Body | -- productId | 상품ID | Y | STRING |
투자상품 고유 관리번호 |
| Body | -- productName | 상품이름 | Y | STRING |
해당 상품의 상품명 |
| Body | -- totalInvestAmt | 총모집금액 | Y | NUMBER |
해당 설정된 최대 투자 모집 금액, 통화코드는 KRW(원) |
| Body | -- crntInvestAmt | 현재모집금액 | Y | NUMBER |
해당 상품에 현재 까지 모집된 총 투자금액 |
| Body | -- productStatus | 상품상태 | Y | STRING |
초기상태, 모집중, 모집완료, 상환중, 상환완료, 종료 |
| Body | -- myInvestAmt | 나의투자금액 | Y | NUMBER |
사용자가 상품에 투자한 금액 |
| Body | -- transAt | 투자일시 | Y | DATETIME |
사용자가 거래한 일시 |




