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

devdo·2022년 5월 28일
0

회고록

목록 보기
10/23
post-thumbnail

📌 9,10주차 이후 질문 및 정리

1) SpringBoot vs Spring 가장 큰 차이 : 포멧의 단순화
: https://velog.io/@mooh2jj/Spring-Boot란-무엇인가

2) 중요 엔티티 설정 : StudyGroup, Reservation, Room
그 바탕으로 ERD 설계하기
: mysql workbench Tool의 Reverse Engine 기능 사용 (단, 테이블 설계가 선행되어야)

3) 분산시스템을 어떻게 설계할 것인가?

  • scale up vs scale out
  • measuerable한 수치를 가지고 얘기(ex. QPS, Thread 할당 보장수)
  • read or write 중 비율이 무엇이 더 높을지 산정
  • 뉴스피드 방식으로 push or pull 방식 고려하기
  • Notification : 스케쥴러 또는 이벤트브릿지 기능으로 무엇을 선택할지 산정(spring batch-mail 건의)
  • 예약시 스케쥴이 overlap될 수 있는 문제시 키설계 고민할 것
  • AWS 인스턴스 -> 네이버 클라우드 인스턴스로

4) 문서화 작업(github으로 MD로 정리)

  • requirement(요구사항) - 사용자 기준으로 : UseCase
  • API 명세서 - 설계작업 전 작성해야하는 것
  • ERD 설계
  • 캐싱작업 타겟 : 예약 리스트

📌 전주 개인 공부한 내용들

1) 알고리즘 공부

  • String : 문자열 뒤집기(팰린드롬), swap, 최대값 알고리즘 정리
  • HashMap : 아나그램, https://velog.io/@mooh2jj/중복체크String
  • two pointer : 문자열 뒤집기, rt, lt 이용
  • 버블정렬 : Arrays.sort() 외 배열 알고리즘 정리

2) springboot 공부

3) docker 다시한번 해보기(docker-compose)
: https://velog.io/@mooh2jj/docker-compose로-SprongBoot-MySql-DB에-Nginx-추가

4) jenkins ssh 접속 AWS 에 배포 성공(freestyle+ssh접속)
: https://velog.io/@mooh2jj/Jenkins-pipeline-Docker-SpringBoot프로젝트-SSH-배포하기

5) 프로젝트

  • readme.md & wiki에 정리
  • 서버 구성도로 일단 이해한 거로 구성
  • api 명세서
  • 책 <Real mysql> 로 예약시 스케쥴이 overlap될 수 있는 문제시 키설계 방법 - DB Lock 공부
  • mysql index, cardinality(기수성) pk(주키), fk(외래키)
  • 다대다 양방향 매핑 방법 -> jpa 공부
  • erd 설계

📌 멘토링

0) 질문 : jenkins pipeline으로 하는 이유는? test는 어떻게 하나?

1) ward-stduy 이름으로 고침

2) DB 설계
-> DB Lock vs 더블 부킹(중복 예약)

3) newsfeed push or pull 모드 장단점

4) API 명세서를 두고 이야기
: REST API 관련 설계 양식대로, 엔티티 순서 등

5) Notification 스케쥴러

  • spring batch 알아보았지만 실시간 trigger의 존재가 없었음 vs AWS step function 기능
  • scheduler(Quartz) 알아봄

6) 중요 엔티티 설정 : DB 매핑
-> 그 바탕으로 ERD 설계, 핵심은 1:N, N:N 양방향 매핑


📌 느낀점

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

1) DB 설계부터 엄청 막힘;;
DB설계가 헤매 책 <Real Mysql1.0> 을 사고 DB설계에 대한 특히, pk, fk 그리고 DB 락에 대한 자료 조사를 함. 하지만 여기에 관련된 내용이 잘 이해되지 않아 멘토링 때도 언급을 못함.

2) 아직까지 ward-study 프로젝트 기능에 대한 sync가 안맞다고 느껴짐.
DB설계가 시급해 보임.(1) DB 테이블 매핑 + 2) DB 더블부킹 방어방법)

3) readme.MD에서 적을 것을 바탕으로 대략적으로 다음주 멘토링때 피드백해주신다함.

4) 프로젝트 진행에 있어서 고민점이 한둘이 아니다. 피드백해서 배우자는 생각으로 부딪혀야 겠음.


📌 해야 할 것

  • 코딩 테스트 , 자료구조 알고리즘 - github에 정리
  • 멘토님께서 질문하셨던 내용들 블로그 정리
  • 김영한 JPA Data 강의 수강
  • 대규모 분산시스템 설계 추천책 읽기 : <가상 면접 사례로 배우는 대규모 시스템 설계 기초>
  • 운동 PT - 푸쉬업 더 내려감(가장 하단) 최대 20개까지 함 + 어깨 3kg 증강
profile
배운 것을 기록합니다.

0개의 댓글