본문 바로가기
일기/항해99

[항해99 6기] 실전프로젝트 4주차 - 느낀점

by 고구밍 2022. 5. 23.

 

 

느낀점

이번 주는 해야되는 업무가 많아져서 시간이 빨리지나간 것 같습니다.

대표적으로는

1. 거래내역과 stomp의 거래완료와 평가하기 알람에대한 알람저장과 stomp주소 보내기

 

2. 거래완료시 프론트엔드에서 버튼의 상태를 바꿔주기 위해서 줘야하는 또다른 stomp주소로 보내주기

3. 거래내역으로 response값을 보내주는 내용 수정

4. 거래 취소시 거래내역삭제와 item의 status값을 0으로 업데이트하기

5. 거래완료가 되지 않은 거래내역에 대해서 (barterStatus : 2일 경우) 한 사람이 거래완료를 눌렀다가,

취소할 때 필요한 istrade의 업데이트

6. 인기 거래상품 api 추가

7. queryDSL적용전 JPA테스트 (마이페이지)

8. QueryDSL공부와 마이페이지에 Dto로 조회하는 것 적용

더보기
// 성훈 - 마이페이지 0-2상태의 아이템정보를 dto에 담는다
    @Override
    public List<ItemUserResponseDto> findByMyPageItems(Long userId) {

        return queryFactory
                .select(new QItemUserResponseDto(
                                item.id,
                                item.itemImg,
                                item.status
                                ))
                .from(item)
                .where(
                        item.bag.userId.eq(userId),
                        item.status.between(0, 2))
                .fetch();
    }

    // 성훈 - 찜하기를 한 아이템을 찾는다
    @Override
    public List<ItemUserResponseDto> findByMyScrabItems(Long userId) {

        return queryFactory
                .select(new QItemUserResponseDto(
                        item.id,
                        item.itemImg,
                        item.status
                ))
                .from(item)
                .leftJoin(scrab1).on(item.bag.userId.eq(scrab1.userId))
                .fetchJoin()
                .distinct()
                .where(item.bag.userId.eq(userId), scrab1.scrab.eq(true))
                .orderBy(item.modifiedAt.desc())
                .limit(3)
                .fetch();
    }

 

등 평소에 비해서 2배 정도 바빠졌던 것 같습니다.

 

그리고 프론트와 stomp 메시지를 주고받는 것을 해보면서,

사용자와 상대방간의 거래완료 상태가 잘 전달되는지 테스트하는 과정에서

서로 조율해 가면서 의사소통을 하는 것이 어렵다는 사실을 알 수 있었습니다.

 

대표적으로, 포스트멘으로 보내드리는 정보를 정확히 드렸지만,

머지하는 과정에서 관련 코드를 누락하는 바람에, 수정된 내용이 반영되지 않는 상황이 발생하였습니다.

 

따라서 제가 할 수 있는 테스트를 전부 실행해보고,

정말 안된다면 주변 백엔드 팀원들의 도움을 요청해야 된다는 점을 알게 되었습니다.

 

 

기술멘토링 내용

1. 리프레시토큰

2. 캐쉬적용하기

3. CI/CD

4. 디자인 빨리 적용하기

5. 마케팅진행하기

6. 쿼리설계를 통한 비용및 시간 측정

 

내가한 일

1. api 수정 및 추가

2. stomp 알람 추가

3. 마이페이지 (JPA문) 서버 부하 테스트 

4. QueryDSL공부 및 마이페이지 적용

내가 해야하는 일

1. 거래내역 조회, 메인페이지, 채팅조회 부하테스트하기

2. 거래내역 조회 -> QueryDSL적용하기

2-1. 이미지와 거래내역("1,2,3;5") 으로 파싱되어있는 부분을 단축할 수 있는 방법을 찾아보기

3. 거래완료시 -> 거래가 성사되지 않은 내용들을 초기화하는 업데이트 작업

(신청한 Buyer들의 거래내역은 삭제, 아이템은 status 0으로 업데이트하기)

4. 불필요한 코드 리팩토링으로 줄이기