Skip to content

Step3-kakao-tech-campus/Team7_BE

Repository files navigation

스크린샷 2023-03-16 오전 9 30 09


🔗 관련 주소

문서
7조 배포 주소
API 문서
피그마
7조 노션

🏳️‍🌈 목차

  1. 서비스 기획 의도
  2. 주요 기능
  3. BE - 핵심 개발 영역
  4. ERD
  5. 아키텍쳐 구조
  6. TIL-y 구성원


🤔 왜 이런 서비스를?

📍 문제 상황 인식 1단계 <카테캠 1,2 단계를 겪으며>

  • 카테캠의 핵심, 자기주도적 학습 -> 매일, 매주 TIL 작성 및 제출
  • 하지만 100명이 넘는 학생들의 TIL을 노션의 한 페이지에서 관리

image image

학생의 불편함 - 내 TIL이 삭제되는 일, 서로의 모든 TIL이 공개
멘토의 불편함 - 일일히 들어가서 작성 여부를 확인, 제출 여부 확인 어려움

-> 학습일지를 더 편하게 관리하고 제출할 수는 없을까?

⭐️ 문제 해결 방안 <그룹 로드맵 서비스>

  • 로드맵을 만들어서 구성원들을 가입할 수 있게 하자
  • 로드맵의 각 단계를 직접 생성하고, 구성원들은 각 단계별로 학습할 수 있도록 하자
  • 제출 기한에 맞춰 단계별로 학습한 TIL을 제출할 수 있도록 하자
  • 한 눈에 제출된 TIL들을 확인할 수 있게 하자

📍 문제 상황 인식 2단계 <자기주도적 개발 학습의 어려움>

  • 개발, 스택 공부는 스스로 시작해야하는 경우가 많음
하지만 어디서부터 어떤 순서로 해야할지 막막함
내가 잘하고 있는지도 확인하기 어려움

-> 어떤 순서로 공부할지, 또 잘하고 있는 지 확인할 방법은 없을까?

⭐️ 문제 해결 방안 <로드맵 제공 및 TIL 공유>

  • 스스로 학습할 수 있게 로드맵들을 제공하자
  • 각 단계별 참고 자료와 함께 학습하고 제출할 수 있도록 하자
  • 제출이 완료되면 해당 단계에 대해서 제출된 TIL들을 볼 수 있도록 하자.
  • 다른 사람들의 TIL을 보며 자신이 잘 학습했는지 확인할 수 있도록 하자.

스크린샷 2023-03-16 오전 9 30 09



🧩 주요 기능

TIL 작성 학습 참고
- 마크다운 에디터를 통한 TIL 작성
-사라질 걱정 없는 상시 저장 기능
- 각 STEP별 참고자료 확인
- 글에 대한 코멘트 확인
스크린샷 2023-03-19 오후 11 51 04 스크린샷 2023-03-19 오후 11 51 04
메인 참고 자료
- 작성한 TIL 목록들을 검색하고 확인
- 장미밭을 통해 학습 열정 확인
- 개인, 그룹 로드맵을 분류하여 관리
- 로드맵에 참고할 자료를 첨부하는 기능
-유튜브, 참고자료 링크
스크린샷 2023-03-19 오후 11 51 04 스크린샷 2023-03-19 오후 11 51 04
로드맵 목록 구성원 관리
- 내가 참여하고 있는 로드맵의 목록을 확인
- 현재 모집중인 그룹 로드맵 목록 확인
- 현재 로드맵에 속한 그룹원 목록
-멤버 권한 변경, 강퇴 기능
-그룹원의 학습일지 작성현황 확인
-로드맵 신청 관리, 수락 거절
스크린샷 2023-03-19 오후 11 51 04 스크린샷 2023-03-19 오후 11 51 04
TIL 공유하기 깃허브 업로드
- 내가 공부하는 주제에 대해 타인과 생각을 공유
- 작성한 학습일지를 깃허브에 업로드 하는 기능
스크린샷 2023-03-19 오후 11 51 04 스크린샷 2023-03-19 오후 11 51 04


🎯 BE - 핵심 개발 영역

기능 설명
로그인/회원가입 gmail(smtp)와 redis를 사용하여 이메일 인증 시스템을 구현했지만, 배포환경 변화로 인해 크램폴린에 배포하지는 못함
로그인과 재발급 요청에 따른 access token, refresh token 발급을 통해 JWT 관리
검색 기능 구현 메인 페이지에서 TIL 제목으로 검색, 장미밭 클릭으로 특정 날짜의 TIL 조회, 로드맵 페이지에서 로드맵 이름으로 검색, 상세 페이지에서 구성원 이름으로 검색 기능 구현
이미지 업로드 S3 구축과 연동을 통해 프로필 사진 업로드, TIL 사진 업로드, 삭제 기능 구현 (크램폴린에서 연동하지 못함)
알림 기능 구현 자신이 제출한 TIL에 달린 댓글에 대한 알림 기능 구현
댓글 기능 구현 제출한 TIL에 댓글 작성과 수정, 삭제 기능 구현
삭제 기능 구현 삭제 기능을 Soft delete로 구현하여, 데이터 무결성을 유지하고, 삭제된 데이터의 이력을 추적하거나 데이터 분석에 활용할 수 있도록 함.
JPQL과 @Where을 이용하여 실제로 데이터가 삭제되지 않고 삭제된 것처럼 보이도록 구현.
예외 처리 예외 코드를 ExceptionCode로 일괄 관리를 통해 유지 보수성와 중복 최소화 함
권한 처리 로드맵에서의 사용자의 역할(master, manager, member, none)에 맞는 권한 처리
테스트 코드 작성 Junit을 이용하여 컨트룰러 단위 테스트를 진행하며 프로덕션 환경에서의 안전성 확보함
성능 개선 lazy fetching 전략과 fetch join 사용으로 N+1 문제 개선 및 쿼리 효율성을 증가시킴
또한 엔티티 간 양방향 연관 관계가 아닌 단방향 연관 관계 설정을 통해 불필요한 참조와 의존성을 줄임
가독성 및 리팩토링 DTO를 class가 아닌 record로 구현해 depth를 줄이고 재사용성과 가독성을 높임


🏠 ERD

TIL-y_ERD



⚙️ 아키택쳐 구조

스크린샷 2023-11-11 오후 8 02 21

👨‍💻🧑‍💻 TIL-y 구성원

김동영 조준서 이한홍 김수현 이상명
김동영 조준서 이한홍 김수현 이상명
FE FE BE BE BE
조장 테크리더 기획리더 스케줄러 리마인더