Skip to content

Releases: chhs2131/dbsgAPI

0.5.4

29 Mar 07:43
165f54e
Compare
Choose a tag to compare

요약

  • 버그 수정 및 카카오 로그인 구현방식 수정
  • 기타 리팩토링
  • include

주요내용

  • 외부 API 통신 라이브러리를 WebClient(WebFlux)로 변경
  • IPO
    • IPO 목록 조회시 이제 특정 기간을 기준으로 조회합니다.
    • 이제 같은 날에 발생한 같은 종목에 Comment를 하나의 List로 묶어서 보여줍니다.
    • IPO Comment가 날짜순으로 정렬되지 못하던 문제 수정
  • JWT 구현 리팩토링
  • 카카오 로그인
  • 카카오 AccessToken을 통해 정상적으로 로그인될 경우, dbsg server의 token을 발급해주는 기능 추가
  • 이후 요청시에 있는 token을 filter에서 확인하여 관련 정보를 인증 contextHolder에 추가함
  • 사용되지 않는 패키지 삭제

0.4.1

28 Dec 09:14
Compare
Choose a tag to compare

요약


주요내용

  • 시장 및 주식형태에 대한 Enum 클래스 추가 및 관리
  • ipo Service Layer에서 검증을 진행하고 예외를 발생시키도록 수정
    • controller에서 customException으로 핸들링진행
  • IPO Domain Logic 개선
    • IpoPaging 객체를 통해 페이징 관련 내용을 전달하도록 함
    • Comment Service 및 Mapper(with xml)를 별도로 생성하여 책임 분리 및 가독성 증대
    • 신규상장 CommentJson이 정상적으로 처리되지 못하던 문제 수정
    • 이제 ipo/schedule 없이 ipo api 호출시 옵션값을 설정하여 SCHEDULE을 조회할 수 있음
    • REST 제약 조건을 따르지 않는 URI들을 개선

0.3.3

30 Oct 13:37
Compare
Choose a tag to compare
0.3.3 Pre-release
Pre-release

ipo list

#26 - Ipo List 조건 조회용 Parameter 추가

  • client 요청 편의성 및 sql injection 방지 목적
  • /api/v1/ipo/
    • state parameter를 추가해 진행상태에 맞는 종목만 확인 가능
    • withCancelItem parameter를 추가해 청약철회된 종목도 포함하여 조회 가능

#62 - 공모철회된 항목이 TODAY에 표시되던 문제 수정

  • query문 수정하여 해결

#61 - schedule 및 ipo 통합 진행중

  • 사용하지 않는 ipoScheduleDto 제거
  • /api/v1/ipo에 일정구간 관련 parameter 추가 (사용하진 않음)

comment

#49 - 공모철회 관련 코멘트 표시하도록 수정

  • 종목이 상장 철회될 때, 이에 대한 comment를 표시하도록 추가

#59 - comment list 반환 형태 수정

  • comment의 각 항목에 대해 열거형 클래스 적용
  • comment list 반환 형태 수정
    • comment -> title
    • commentList 는 단순 List 이였으나 현재 List<IpoCㅇmment> 로 변경
      • IpoComment는 아래와 같은 형태
public class IpoComment {
    private CommentLevel type;  // enum. json 반환시 String 형태임
    private String comment;
    private String detail;
}

comment list 반환 예시

  • 기존 반환 예시
  {
    "commentIndex": 900,
    "ipoIndex": 153,
    "writer": "DB_TRIGGER",
    "stockName": "와이오엠",
    "stockKinds": "실권주",
    "comment": "대금 환불일이 변경되었습니다. (2022-12-29) - 외 1건",
    "commentList": [
      "대금 환불일이 변경되었습니다. (2022-12-29)",
      "구주주 청약일이 변경되었습니다. (2022-12-21 ~ 2022-12-22)"
    ],
    "registDate": "2022-10-28"
  },
  • 변경된 반환 예시
  {
    "commentIndex": 900,
    "ipoIndex": 153,
    "writer": "DB_TRIGGER",
    "stockName": "와이오엠",
    "stockKinds": "실권주",
    "title": "일정이 변경되었습니다.",
    "commentList": [
      {
        "type": "SCHEDULE",
        "comment": "대금 환불일이 변경되었습니다.",
        "detail": "2022-12-29"
      },
      {
        "type": "SCHEDULE",
        "comment": "구주주 청약일이 변경되었습니다.",
        "detail": "2022-12-21 ~ 2022-12-22"
      }
    ],
    "registDate": "2022-10-28"
  },

0.3.1 (BUG)

19 Oct 08:25
979e797
Compare
Choose a tag to compare
0.3.1 (BUG) Pre-release
Pre-release

해당 버전에 ipo list 조회 기능에서 버그가 발견되었습니다.

IPO 항목 조회시 RawQuery 대신 Parameter 사용

client 요청 단순화 및 sql injection 방지를 위하여 RawQuery 대신 Parameter를 통하여 입력을 받도록 수정


/api/v1/ipo

  • ipo 목록 조회시 검색 변수로 state, refDate 추가
  • state 의 경우 IpoSequence enum class 에 선언되어있는 항목만 입력으로 받을 수 있음

조회 가능 Case

  • ALL, TODAY, BEFOREFORECAST, BEFOREIPO, BEFOREREFUND, BEFOREDEBUT, AFTER DEBUT
  • 오늘의 일정, 수요예측 예정, 청약 예정, 환불 예정, 상장 예정, 상장 완료 탭

Exception

아직 구현되지않은 state 사용시 501 error 발생


기타

  • Swagger-UI 설명 수정
  • CustomException 대응을 위한 ErrorCode II002 추가

0.2.0

07 Oct 15:17
ebff5df
Compare
Choose a tag to compare
0.2.0 Pre-release
Pre-release

CustomResponse(공통반환) 적용완료

정상 반환시 및 사용자 정의 예외 반환시 모두 동일한 반환 Form 을 적용하도록 처리

  • api pacakge 아래에 있는 모든 response가 정상반환 될 때 공통반환을 적용함
  • 사용자 정의 예외(customException) 발생시 공통반환을 적용함
  • @RestContrllerAdvice에서 ResponseBodyAdvice 를 override 하여 공통반환 중 정상일 때를 처리함
  • api를 통한 반환 중 204(no content)가 있을 경우 header를 200으로 변경함
    • 단, body 내에 기록되는 status는 204. "status": "204"

공통반환 수정사항

  • CustomError를 정의한 ErrorCode 열거형 클래스의 HttpStatus를 구체화함
    • 현재 발생 가능한 HttpStatus는 204 또는 404

package 구조 수정

  • 역할이 동일하다고 판단되어, global/error 패키지를 global/response 패키지와 합침

공통반환 적용 예시

  • 정상 반환
HTTP HEADER 200 OK
{
  "status": 200,
  "code": "",
  "message": "",
  "body": [
    {
      "ipoIndex": 123,
      "updateDate": "2022-09-14",
      "underName": "NH투자증권",
      "indTotalMax": 346423,
      "indTotalMin": 288686,
      "indCanMax": 0,
      "indCanMin": 0,
      "subMinQuan": -1,
      "subDepositPercent": 50
    }
  ],
  "timestamp": "2022-10-07T15:15:14.654"
}
  • 예외 반환
HTTP HEADER 200 OK
{
  "status": 204,
  "code": "IS000",
  "message": "조건에 맞는 조회 결과가 없습니다.",
  "body": [],
  "timestamp": "2022-10-07T14:29:57.62"
}
HTTP HEADER 404 NOT FOUND
{
  "status": 404,
  "code": "IU000",
  "message": "해당하는 결과가 없습니다.",
  "body": [],
  "timestamp": "2022-10-07T15:15:32.522"
}

버그 수정

ipo/v1/schedule

  • 6주 기준 조회시 일부 결과가 나오지 않던 문제 수정
  • 결과 수 제한이 30개로 되어있던 것을 100개로 수정
  • 6주 기준으로 일정에 해당하는 종목이 약 50개 정도로 추정됨

0.1.1

27 Sep 05:45
Compare
Choose a tag to compare
0.1.1 Pre-release
Pre-release

해당 서버 업데이트는 기존 동작에 영향을 주지 않습니다.


추가 기능

#24 CustomException 환경 조성

  • 오류 상황에 대한 RAW 정보를 Client에 노출 최소화 및 해석된 정보 전달을 통한 문제파악에 도움이 목적
  • CustomException Class 를 통해 사용자가 지정한 ErrorCode 를 throw 할 수 있음
  • 아래 #9 의 형태로 반환 적용
  • ErrorCode Enum 예시
    // ipo
    IPO_LIST_NOT_FOUND_EXCEPTION(NOT_FOUND, "II000", "조건에 맞는 조회 결과가 없습니다."),
    IPO_COMMENT_WRONG_PARAMETER_EXCEPTION(BAD_REQUEST, "IC100", "조회 대상이 올바르지 않습니다. (ipo index 오류)"),

    // jwt
    MALFRMED_JWT_EXCEPTION(NOT_FOUND, "J000", "잘못된 JWT 서명입니다."),
    EXPIRED_JWT_EXCEPTION(NOT_FOUND, "J001", "만료된 JWT 토큰입니다.")
    ;

    private final HttpStatus status;
    private final String code;
    private final String message;

#9 ResponseBody 수정 (공통반환 클래스 작성)

  • 공통된 요청반환 형식 지정을 위한 데이터 클래스
  • 현재는 사용자 정의 예외 반환 (CustomException Response) 시에만 사용됨
    • 일반 API 반환시 ResponseEntity 와 동일하게 기존 DataClass(DTO)를 감싸는 형태이나, ResponseEntity 와는 다르게 Body에 영향을 주게되어 Swagger 반환 형식이 이상해져 확인이 필요한 상태
  • CustomException Response Example
{
  "status": 404,
  "code": "II000",
  "message": "조건에 맞는 조회 결과가 없습니다.",
  "body": [],
  "timestamp": "2022-09-22T15:44:07.6"
}

성능 향상을 위한 리팩토링

#16 JWT Filter 변경

  • JWT 토큰 검사를 위한 필터 변경
  • 기존 GenericFilter 에서 OncePerRequestFilter 로 변경
  • 사용자 요청에 대해 1번만 토큰검사를 진행하여 성능 향상

#36 web mvc html 관련 기능 제거 (템플릿 엔진 등)

  • 사용하지 않는 web mvc html 페이지 관련 파일 및 기능 제거
  • html 페이지용 controller 제거
  • html template engine lib.(dependency) 제거 -> thymeleaf, devtools
    • 관련 설정 제거
    • auto reload 에 따른 데이터베이스 강제 종료 문제 개선

단순 리팩토링

#40 RequestMapping 구문 대체

  • 기존 @RequestMapping 어노테이션 내의 옵션(method)으로 HttpMethod를 지정해주었으나 이를 직관적으로 나타내기 위하여 각 메소드별 매핑을 사용함
  • @RequestMapping -> @GetMapping, @PostMapping, @PutMapping, @DeleteMapping ...

0.1.0

15 Sep 15:58
a10bb8d
Compare
Choose a tag to compare
0.1.0 Pre-release
Pre-release

API

/api/v1/ipo

/comment

조회 방식을 페이징에서 날짜 기준 조회로 변경

  • 요청 파라미터 변경
    • 기존 ipo_index, page, num
    • 변경 ipo_index, startDate, endDate

Swagger

  • 스웨거 웹페이지에서 JWT 설정 가능
  • 계정 인증 정보를 포함하여 HTTP Request 전송 가능

Refactor

  • 패키지 구조 변경
    • 계층형 구조도메인형 구조
  • 필드 주입 에서 객체 주입으로 변경
    • @autowired@RequiredArgsConstructor
  • 설정 파일 분리
    • property class 생성 및 secret.yml 파일을 통한 민감 정보 분리
  • 테스트용 uri 패키지 제거 (test package)

0.0.13

25 Jun 18:07
ed676dd
Compare
Choose a tag to compare
0.0.13 Pre-release
Pre-release

요약: comment 관련 수정, udnerwriter 반환값 추가, ipo list 정렬 기준 변경

comment

  • 이제 comment 리스트 반환시 내용이 없는 오브젝트는 제거되어 반환되지 않습니다.
  • comment에서 map value 조회 로직을 수정했습니다. (KrWonFormat Class 신규생성)
  • 이제 comment 반환 값 중 숫자관련 값에 지정형식을 적용합니다.
  • 종목이 목록에 신규 추가된 날에는 comment가 '신규 상장되었습니다.' 하나만 표시되게 수정

ipo list (schedule)

  • ipo list 및 schedule 조회 우선순위 수정 (청약 시작일도 기준점으로 추가)
  • 종목 상세정보 조회시 주간사 값이 균일하지않게 나오던 문제 수정
  • ipo list 조회 쿼리에 정렬(orderBy) 기준을 변경했습니다.
  • underwriter(주간사)에 최소청약수량(subMinQuan), 증거금률(subDepositPercent)가 추가되었습니다.


버전별 변경사항

0.0.11
comment 관련 수정, udnerwriter 반환값 추가, ipo list 정렬 기준 변경

  • 이제 comment 리스트 반환시 내용이 없는 오브젝트는 제거되어 반환되지 않습니다.
  • comment에서 map value 조회 로직을 수정했습니다. (KrWonFormat Class 신규생성)
  • 이제 comment 반환 값 중 숫자관련 값에 지정형식을 적용합니다.
  • underwriter(주간사)에 최소청약수량(subMinQuan), 증거금률(subDepositPercent)가 추가되었습니다.
  • ipo list 조회 쿼리에 정렬(orderBy) 기준을 변경했습니다.

0.0.12

  • ipo list 및 schedule 조회 우선순위 수정 (청약 시작일도 기준점으로 추가)
  • 종목 상세정보 조회시 주간사 값이 균일하지않게 나오던 문제 수정

0.0.13

  • 종목이 목록에 신규 추가된 날에는 comment가 '신규 상장되었습니다.' 하나만 표시되게 수정

0.0.10

22 Jun 08:40
a3c9a0a
Compare
Choose a tag to compare
0.0.10 Pre-release
Pre-release
  • ipo list
    • 더 이상 ipo list(및 schedule)에서 최근 코멘트를 반환하지 않습니다.
    • ipo list에서 주간사들을 정확하게 반환합니다. ( 각종 주 에 대한 처리로직 수정)
    • '기업인수목적' 회사도 스팩주로 처리합니다.
    • 일부 날짜 데이터(regist,update,terminate) 반환 형식이 0000-00-00 으로 수정됩니다.
  • 코멘트
    • 코멘트에서 영업이익, 매출액 변동값을 (n)원으로 표기하도록 수정됩니다.
    • 코멘트 등록 로직에서 주간사(underwriter)도 mapVerify 함수를 사용하도록 수정
    • 최소청약수량, 청약증거금비율 항목도 기록되도록 추가

0.0.9 + DB

31 May 14:49
2326469
Compare
Choose a tag to compare
0.0.9 + DB Pre-release
Pre-release

ipo list 일부 수정 및 comment 기록항목 추가

  • ipo list에서 검색조건문(queryString) parameter 추가
    • query where 절을 동일하게 사용 (임시)
  • ipo list의 최근 comment 조회 방식 수정
    • 기존 commentIndex를 통한 db조회에서, 단일 쿼리문을 통한 조회로 수정
  • comment에 기록되는 항목 추가
    • 구주주 청약일, 자금의 사용목적

※ client측 반환에는 변동사항 x