실전 프로젝트 8,9일 회고(8주차 WIL)

SaGo_MunGcci·2022년 9월 3일
0

실전 프로젝트

목록 보기
7/19

Today do list

8일차

  • 카테고리별 인기순 반환.
  • 지역별 인기순 반환.

9일차

  • 우리조 담당 PM님과 첫 미팅.
  • 미팅 후 PM님께서 말씀해주신 부분 공부 중.
  • PM님께 질문할 부분 정리해서 준비.


TIL

  • 8일차 TIL을 작성 못했던 이유

  • 카테고리별 인기순 반환, 지역별 인기순 반환로직을 생각하고 작성할 때 내 로직이 잘못되어 데이터가 제대로 안들어감. 로직이 잘못됬다고 알게된게 새벽이었다.

  • 8일차 TIL

Trouble Shooting

category.updateCateCnt(cate);

최초 문제 발생

위의 메서드가 작동 될때마다 Cnt가 1씩 증가 되어야 하는데 2까지만 작동하고 2이상 카운트 되지 않음

  • 문제 발생했을때 나의 로직.
  1. 상세페이지에 접근했을 때 경매 게시글에 있는 카테고리 및 지역을 가져와서 카테고리 및 지역 테이블에 컬럼 생성(추가)한다.

  2. 저장된 테이블에서 해당 카테고리(취미, 가전,가구등)의 카운팅이 된 최신 컬럼만 제외후 최신 이전의 똑같은 카테고리를 삭제한다.

  3. 마지막 남은 카테고리에 +1을 해준다.

  4. 1부터 반복

이러면 될줄 알았다. 그런데 2이상 카운팅이 안되는 것이다.

문제해결

  • 카테고리 및 지역 생성자에 경매의 viewerCnt를 입력받고있었는데
    이것이 상세페이지에 접근할때 1로 받고 있고 그다음 나머지 데이터가 삭제되고 또 1이 카운팅 되어서 2가됨.

    • --> 이게 계속 반복되고 있었음 즉 2가되어도 옛날 데이터가 되어서 삭제되고 최신데이터가 1이고 다시 카운팅이 +1이 되어서 2가 되고 이게 반복되니까 카운팅이 2이상 되지 않았음..
  • 로직의 잘못되었다는 것을 알게 되었을때가 새벽 03:00쯤이었다.

  • 여튼 발견하자 마자 취침을 했고 다음날 아침에 로직을 올바르게 고쳐서 성공한 코드는 다음과 같다

 // 카테고리 viewer 추가
        String cate = auction.getCategory();
        Long cateCnt = auction.getViewerCnt();

		Category category= checkCategory(cate);

        if (categoryRepository.existsByCategory(cate)) {

            category.updateCateCnt(cate);

            categoryRepository.save(category);

        }

        if (category == null) {

            category = new Category(cate, cateCnt);

            categoryRepository.save(category);

        }
  • if문을 나눠서 카테고리 테이블에 있을때와 없을때로 나누어서 있을때만 카운팅을 하게 하니까 문제없이 다른 회원들이 다른 상세페이지에 접근하더라도 같은 카테고리면 총 합이 문제없이 출력되어 인기순으로 정렬이 되었다.


Retrospection

실전 프로젝트 담당 PM님과의 첫 미팅

  • 정말 좋았다. 주니어도 아닌 예비 주니어지만, 정말 실전답게 개발자대 개발자로써 대우에 해주셨고, 설명도 너무 지나치지 않게 우리를 배려해주시면서 멘토링해주셨다.

  • 심지어 아무것도 모르는 우리를 이해해 주시는듯 모르겠다고 막힐때마다 정말 우리에 맞추어서 설명해주셨다. 그렇다고 너무 기초적인 부분부터 멘토링 해주시는 것이 아니라, 우리 눈높이에 맞추어서 말씀해주셨는데, 그것도 깊이가 있어서 공부해 보라고 기술 블로그를 주셨다.

  • 블로그에는 정말 이때껏 공부했을때 긴가민가 했던 부분을 잘 정리해놓은 부분이 있었고 내가 공부해야할 부분들이 정리가 잘되어있었다.

  • 특히 내가 미팅중에 실전이라고 생각들었던 점은 정말 내가 모르는 기술 적인 부분들이 많이 나왔기 때문이다.

    • SQL,NoSQL의 차이, 정규화와 비정규화,카프카,redis,루아스크립트,동시성테스트,isolation level,Spring STOMP등등
  • 팀원분들이 미팅이 끝나고 한자리에 모여서 정말로 실전이라고 PM님 정말 대단하신것 같다고 난리도 아니었다.

  • 확실히 PM님께서 주신 공부와 현재 내가 팀원들과 진행하는 프로젝트 그리고 다음주까지 또 질문해야할 것들을 정리및 공부하면서 5주뒤의 내모습이 기대가 된다.



Tommorrow do list

  • Refresh Token을 발급함.


profile
이리저리 생각만 많은 사고뭉치입니다.

0개의 댓글