[F-lab] 멘토링 14주차 회고

devdo·2022년 6월 1일
0

회고록

목록 보기
13/23
post-thumbnail

📌 13주차 이후 질문 및 정리

1) 알고리즘 시간복잡도에 대한 중요성 다시 언급
: https://velog.io/@mooh2jj/알고리즘-자료구조-시간복잡도-정리

2) user , studyGroup 테이블의 매핑 테이블로 user_group 착안
reservation안에 위 3개 테이블의 pk들을 외래키로 사용

  • ERD 설계 정리

3) 더블 부킹 내용은 Reservation DB pk를 String으로 놓고 atomic을 보장케 하는 방향으로.

  • 예를 들어, 100||2022041210(2022년 4월 12일 10시 룸 100) 방식으로.
  • DB에서 락을 거는 의미가 없음. 이미 id(pk)로 원자성이 보장돼기 때문에
  • roomId || StartTime ReservationIdGenerage 메서드를 만들고 구현 + DB Type Varchar로 변환

4) 15분 간격 + 30분 간격 겹치는 건 어떻게 해결?

  • 4개의 로우를 만들어 겹치지 않게 코드로 구현
  • 구현은 못함

5) 책 <가상 면접 사례로 배우는 대규모 시스템 설계 기초> 내용 언급 - 인터뷰용으로 아주 좋다고 추천

  • 계속 읽는 중

📌 전주 개인 공부한 내용들

1) 알고리즘 공부

2) JPA 공부 -> JPA 데이타 김영한 강의 Querydsl부분까지 보강

3) <가상 면접 사례로 배우는 대규모 시스템 설계 기초> (알림서버 + 메시지큐 적용)

4) JUnit5 - 통합 테스트 까지, 단위테스트 vs TDD(테스트코드부터 작성해서 개발하는 방식 중 하나) 분석
: https://velog.io/@mooh2jj/Todolist-TestCode-만들기


📌 멘토링

1) 테이블 점검

  • reservation 테이블의 의미 : user, stduyGroup, room 매핑 테이블 -> 그래서 user, stduyGroup, room pk id들을 fk로 갖는 것
  • 의미 있는 필드들로만 구성하기
    : number_size, max, min, reservationDate 등 이 필요있을지 모르겠음.
  • 알림 리턴으로 notification 테이블이 따로 필요한지 reservation로도 가능하지 않은지.

2) API 명세서 점검

  • url에 user정보가 들어가있는 api 점검 -> @RequestBody로 User 정보 들어가야 되는지 아님 userId로 가져와도 되는지
  • reservation api 위에 얘기한 fk키 관련 정보들도 가져오는지 확인

3) UseCase 점검

  • 그룹 등록 : studygroup 만듦과 함께 userType Leader로 갱신
  • 그룹 목록(all studygroup + userid/studygroup)
  • 예약 목록(roomid/reservation + userid/reservation)
  • 상세는 기본적으로 있는 것이고
  • 예약은 1시간만 가능
  • 리더만 등록/수정할 수 있음 -> 권한 할당시 참고

4) 스케쥴러 점검

5) MVP(Minimum Valuable Product) 선정


📌 느낀점

멘토님과 <ward-study 프로젝트> 기술면접식으로 질문과 답변이 오갔다. 예상대로 역시나 빡셌다.. 5주차

  • 현재 멘토링 받는 것에 제가 얻는 게 너무 없다고 느껴진 생각들이 많았다. 이번 멘토링 때 솔직하게 말씀드렸다. 멘토님이 생각하는 이 방향으로는 너무 고차원이라 감당이 안되어서 성장되는 느낌이 별로 없다고.

  • 피드백을 솔직히 말씀드리고 멘토님도 잘 받아주셨다. 그러면 내가 생각하는 방향과 좀더 가이드가 우선되는 방향으로 멘토링을 건의해주셨다. 나는 받아들이고 좀 더 내 수준에 맞는 멘토링이 진행되었다.

  • MVP(Minimum Valuable Product) 를 선정 : 선정한 API를 구현하는 것을 과제로 주심.
    이제는 설계적 얘기는 중단. 직접 구현하면서 진행해보자고 함. 이제야 프로젝트를 직접 만들어지는 과정이 수반되어서 내가 원하는 방향으로 가는 것 같아 다행이라 느껴졌다.

  • 비동기는 아니더라도 스프링 배치 스케쥴링 방식으로 진행되어짐.


📌 해야 할 것

  • MVP(Minimum Valuable Product) 선정한 내용 구현하기
  • 멘토님께서 질문하셨던 내용들 블로그 정리
  • 김영한 JPA Data 강의 - 진행한 내용 블로그 정리
  • <가상 면접 사례로 배우는 대규모 시스템 설계 기초> 다시 읽기
  • 운동 PT - 헬스장 2번 + 푸쉬업 + 간단한 스트레칭 + 광배근 벤치머신으로 마무리.
profile
배운 것을 기록합니다.

0개의 댓글