Skip to content

mason.park BE 사전 과제 제출 #11

Open
pmsu2007 wants to merge 24 commits into
ej31:mainfrom
pmsu2007:feature
Open

mason.park BE 사전 과제 제출 #11
pmsu2007 wants to merge 24 commits into
ej31:mainfrom
pmsu2007:feature

Conversation

@pmsu2007

Copy link
Copy Markdown

특별히 신경 쓴 부분

  1. Spring DI와 인터페이스를 활용하여 특정 구현체에 의존하지 않도록 구현했습니다.
  2. Fake 객체를 통해 실제 DB와 관계없이 결정적인 테스트가 가능하도록 구현했습니다.
  3. 테이블이 직접 연관관계를 맺지 않는 경우 QueryDSL의 동적 쿼리를 사용해서 조회했습니다.
  4. 일관된 예외 처리를 위해 커스텀 예외와 글로벌 예외 핸들러 적용했습니다.
  5. 사용자 요청에 대한 유효성 검증을 어노테이션 기반으로 처리하여 재사용성을 높이려고 했습니다.

애로 사항

  • 시간 부족으로 통합 테스트, API Throttling는 공부하고 적용할 예정입니다.

라이브러리 선택 이유

  1. spring-boot-starter-data-jpa : JPA를 사용한 데이터베이스 연동
  2. spring-boot-starter-web : REST API 개발
  3. spring-boot-starter-validation : 요청 데이터 검증
  4. com.mysql:mysql-connector-j : MySQL 데이터베이스 연동
  5. querydsl-jpa : 동적 쿼리 작성을 위한 QueryDSL 사용
  6. lombok : 보일러플레이트 코드(@Getter, @Setter, @builder)를 줄이기 위해 사용.
  7. spring-boot-starter-test : 단위 테스트 및 통합 테스트 수행

- spring-boot-starter-validation
- mysql-connector-j
- application-local.yml를 .gitignore에 추가
- DB 연결 설정
- ApiException : 공통 예외 처리 클래스
- AppHttpStatus: 커스텀 예외
- findAllByCompanyCode : companyCode, startDate, endDate를 인자로 받고 StockInfo를 반환
- getStockInfoByCompanyCode : companyCode, startDate, endDate를 인자로 받고 StockInfoResponse를 반환
- 특정 기업의 주식(종가)를 조회하는 엔드포인트 구현
- StockRepository를 StockHistoryRepository와 CompanyRepository로 분리
- CompanyCode로 Company가 존재하는지 확인하는 로직 추가
- CompanyCode, startDate, endDate로 일치하는 StockHistory 조회하는 로직 추가
- 변수명 수정 stocks -> stockHistories
- StockService의 getStockInfoByCompanyCode
- Dockerfile 작성
- GitHub Actions 워크플로 작성
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant