• 이번 주 한 일

    • 팀 전체
      • Redis와 Spring batch를 이용한 주문 저장 후 지정 시간에 일괄 처리하기, 어제 팔린 책 Top8 구현 > 현재 Local Redis server사용으로 Amazon Elasticache로 넘겨야함
      • ELK 스택 구축
      • RDS 책 데이터 ElastciSearch에 저장 (진행중)
      • ElasticSearch를 이용한 검색 로직 작성 (진행중)
    • 팀원 개인
      • 양윤선 : mysql 사용한 검색 성능 테스트 정리(완료), 엘라스틱 서치 사용한 검색(진행중)
      • 이현빈 : Redis와 Spring batch를 이용한 주문 저장, 일괄 처리, Top8 Ranking 구현
      • 조성재 : Redis와 Spring batch 주문 저장(구현 실패), 종류별 Lock 공부 및 Teset (진행중)
      • 한승현 : 엘라스틱 서치 개념 공부, EC2서버에 ELK 구축, 엘라스틱 서치에 책 데이터 입력
  • 이외에도 기술적인 방향을 잡기 위한 질문을 정리해오시면 가장 좋습니다!

    → 현재 Redis를 이용하여 DB읽는 것을 최소화 하고 가능한 Redis에 저장해 두었다가 지정 시간에 일괄적으로 처리(주문들을 DB에 넣는 것)하는 것을 구현하였습니다. 책 정보나 재고량 등은 어쩔 수 없이 읽어오는데 괜찮은 건가요? (읽기 말고 수정, 추가를 최소화하는 방향으로 하는데 Redis를 잘 활용하고 있는 부분인가요) ⇒ 주문 데이터는 영속성이 중요. 디비에 저장. createAt을 땅 찍어줘

    → 검색 쿼리 작성 시 상황 별로 쿼리를 분리하는 것이 좋은가요?

    → 현재 코드 : 어떤 필터가 적용되든 하나의 쿼리문에서 해결

    → 분리한 코드 - 검색 쿼리(검색어, 카테고리(대분류, 소분류))

                  - 필터 쿼리 (모든 필터 및 검색 적용 - 검색어, 카테고리(대분류, 소분류), 별점, 가격 등등)
    

    1, 2, 3, 4

    일시품절, 품절절판, 재고존재절판, 판매가능

  • 숙제: 멘토링 결과 다음 주까지 해올 일

    • 팀 전체)
      • 칼럼 추가할 것 : 상태값, modifiedAt
      • 테스트 코드…. 여유 되면 생각하면서 해봅시다…
      • 재고가 너무 자주 채워지면 없어 보이닌까 scheduler 어떻게 짤지도 천천히 생각해보자
    • 팀원 개인별
      • 한승현 : 엘라스틱 검색 정비(페이징, 정확도), 서킷 브레이커
      • 양윤선 : 디비에 저장된 재고 / 책 상태 등의 정보를 엘라스틱에 동기화
      • 조성재 : 책 상태 관리 (modifiedAt 설정, 판매 가능, 품절, 절판..)
      • 이현빈 : 1)주문 데이터는 매우 중요함으로 DB에 바로 넣어준다, 책 정보와 재고량을 읽어오는 것은 큰 무리가 되지 않음으로, DB에 바로 적용하고, 주문 기록을 살펴 Ranking 계산하고 Redis에는 랭킹 데이터만 저장, 만약 어쩌다가 redis가 날라가면 다시 DB읽어서 ranking 짜면 된다. 2) Transaction과 lock에 대해서 테스트 해보자