코드스테이츠 - 3회차 백엔드 부트캠프/Main Project

Main-Project 회고록

곰돌이볼 2023. 2. 3. 11:29

프로젝트 내용

  • 프로젝트 주제
    • 스터디 모집 사이트
  • 규모
    • 백엔드 3명(담당)
    • 프론트엔드 3명
  • 기간
    • 4주(2023.01.03 ~ 2023.02.03) : 평일 9AM ~ 6PM
  • 사용 기술
    • 백엔드 : spring-boot(IDE : IntelliJ), postman
    • 프론트엔드 : react(IDE : Visual Studio Code)
    • 배포 : AWS(EC2 - 서버 배포, S3 - 정적페이지 배포, RDS - 데이터베이스)
    • 데이터베이스 : MySQL
    • 보안 : JWT 사용, OAuth2
    • 통신 : Rest API

 

프로젝트 결과물

  • 테이블 명세서

  • 화면 정의서

화면정의서.pdf
5.86MB

  • 요구사항 정의서

사용자 요구사항 정의서.pdf
0.09MB

 

 

  • 구현 내용
    • 구글 로그인
    • 스터디 카드 보기
    • 스터디의 정렬, 태그, 검색 기능
    • 스터디 생성
    • 스터디 질문 작성
    • 스터디 질문의 답글 달기
    • 캘린더 기능으로 모이는 날짜 선택하기
    • 스터디원들끼리의 채팅
    • 스터디 탈퇴, 추방, 삭제
    • 마이페이지 접속
  • 프로젝트 내용

프로젝트 메뉴얼 문서.pdf
2.88MB

 

프로젝트를 마치며 ... 

  • 아쉬운 점
    • 리팩토링이 되지 않은 코드
    • 성능을 고려하지 않고 기능 구현에만 우선적으로 한 것
    • 새로운 기술을 찾지 않고, 적용하지 못한 점
    • security 기능을 제대로 이해하지 못하고 사용한 점
    • 권한 인증 부분을 전부 코드로 구현한 점(스프링의 인증/인허를 제대로 사용하지 못함)
    • 권한/허가가 너무 빡빡해서 로그인이나 스터디 가입을 하지 않았으면 사용하지 못한 기능이 많음
    • 주석이 일관되지 않음
    • 코드 컨벤션을 제대로 정하고 시작하지 않아서 코드 스타일이 다름

 

  • 좋았던 점
    • 권한에 따라 접근할 수 있는 부분이 다른 점
    • 비밀글의 경우, DB에서 필터링해서 response한 점
    • 구글의 oauth2를 이용해서 회원가입/로그인 성공
    • jwt를 이해하고 사용한 점

 

  • 개선해야 할 점
    • 기능별 성능(ex. 속도, 처리 횟수 등)을 파악해서 개선하기
      • 27조 발표영상 참고
        • https://www.youtube.com/watch?v=1kU8QLFpHqo
        • Grafana와 로깅을 이용해서 성능 분석
      • 21조
        • slice를 활용한 queryDSL을 통해 쿼리 최적화 → 성능 최적화
      • 9조
        • thread pool
        • redis
    • 알림 기능 구현하기
      • 24조
        • websocket, stomp을 이용한 채팅 기능
    • 이미 구현되어 있는 기능이 있는지 확인하고, 있다면 최대한 활용해서 사용하기
    • 로그인을 하지 않았을 경우에도 스터디 상세 내용 볼 수 있기
    • 웹, 네트워크, 스프링에 대해서 깊이 공부하기