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 ?

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