///
Search
Duplicate
✏️

기술 멘토링 사전 노트 Template (2주차)

코드 컨벤션
토글
깃플로우 전략
토글
배포 계획
Github action으로 Ci & CD 구현하여 배포

이번 주 한 일

회원 기능 - 회원(페이징,정렬), 역할, 팔로우, 파일 업로드, 이메일 인증, OAuth
여행정보 기능 - 여행(페이징,정렬), 후기(페이징,정렬), 파일 업로드
코스 기능 - 코스(페이징,정렬), 댓글(페이징, 정렬), 좋아요, 파일 업로드
채팅 기능 - 방만들기(연습), 방 목록 출력(연습), 방 입장(연습), 로그아웃 시 소식x(연습)
도시 기능 - 도시(페이징)

팀원 개인

전주현
정지명
이현구
장숭혁
김용운

이제 남은 일

리프레쉬 토큰
로그아웃
여행 파일 삭제 기능
채팅
날씨 api
도시 파일 업로드
프론트, 배포, 테스트 코드
이외에도 기술적인 방향을 잡기 위한 질문을 정리해두시면 가장 좋습니다!

질문

1. 서비스에서 다른 레포지토리 주입 안 받기로 한 컨벤션 지켜야 하는지?

서비스끼리 순환 참조 문제 발생 - 코스 서비스 코스 파일 서비스
LAZY 어노테이션 → 회피
하나의 서비스로만 가기
중간 util 클래스? 생성
컨벤션 무시하고 repository 주입 → 편의성 차이 외에 다른점은?
필요할 때만 쓰자

2. 리스트 중복 조인 문제

org.hibernate.loader.MultipleBagFetchException: cannot simultaneously fetch multiple bags
List → Set 바꾸면 해결 되긴 함 → 실제 쿼리 조회 시 중복된 row 많아짐
List, 레프트조인, @Transactional x - 에러
Set, 레프트조인, @Transactional x - 에러
List, 레프트조인, @Transactional o - 원하는 결과 x
Set, 레프트조인, @Transactional o - 원하는 결과 x
List, 페치조인x, @Transactional o - N+1
Set, 페치조인x, @Transactonal o - N+1
List, 페치조인o, @Transactional x - 에러
Set, 페치조인o, @Transactonal x -

3. 신기술 사용하는 것이 좋은지? (record, restClient, SpringDataJPA 등)

새로운거 써보는 것 좋다
써야하는 상황에 대한 이유, 맥락, 이러이러한 장점
어떤 원리로 동작하는지, 그 전 기술에 대한 문제
lts에 있는 기술은 긍정적으로 써볼 확률이 높음

4. 채팅

5. @Transactional vs fetchJoin ?

숙제: 멘토링 결과 다음 주까지 해올 일
팀 전체 (리더와 부리더님께서 필두로 정리해 주세요.)
프론트, 배포, 테스트 코드
팀원 개인별로 작성해 주세요.
전주현 - 프론트, 유저기능(리프레쉬,로그아웃)
정지명 - 프론트
이현구 - 프론트
장숭혁 - 채팅
김용운 - 남은 기능 마무리