프로젝트 회고

스파르타 커뮤클럽

Veams 2023. 5. 2.

깃허브 저장소:  🔗링크

시연 영상 


1. 프로젝트명 : 스파르타 커뮤클럽

  • 코딩 교육기관인 스파르타코딩클럽에서 제공하는 내일배움캠프, 항해99, {창} 등의 교육과정을 수강한 수료생들이, 교류를 통해 개발자로 성장하며 정체성과 역할을 만들어갈 수 있도록 서로를 돕는 커뮤니티 서비스를 제공합니다.
  • 개발자 직무의 취준생 커뮤니티, 회원간 모임 매칭 및 IT행사알림 메일링 서비스

2. 인원 구성 및 주요 담당

  • 5인 (Full-stack)
  • 본인 : ERD 설계, CI&CD 구축 /  검색, 페이지네이션, 인기글 및 활동왕, 모임매칭
  • 팀원1: 유저페이지 - 회원정보 확인 및 수정, CI&CD 구축 등
  • 팀원2 : 회원가입 및 인증처리 전반, 프론트엔드 통신, 게시판 댓글기능 등
  • 팀원3 : 이벤트게시판, 메일알림 서비스, ERD 설계
  • 팀원4 : 클럽게시판, 클럽신청서 작성 등

3. 서비스 아키텍처 및 ERD

 

4. 기술적 의사결정


5. 개인적 프로젝트 주요 경험

경험 Skill Set

  • JavaScript, Typescript, EJS, HTML, CSS
  • Node.js, Nest.js
  • TypeORM, MySQL
  • Git, Github(Trunk-based)
  • VS Code, Slack, Linear, Notion

주요 담당: ERD 설계 / 검색 / 페이지네이션 / 인기글 및 회원활동랭킹  / 모임 매칭 / 템플릿 엔진 셋팅 등

- 설계부터 배포 및 개선까지 모두 참여

 

1) 게시판게시글 상세 / 검색 기능검색결과 페이지 등 REST API 구현

 

2) 필터링 : 인기글 선정, 유저활동 순위 측정 🔗링크

  • 유저활동 증진 목적의 조회수 기반 인기글 선정
  • 포인트 관련 컬럼 추가 없이, 커뮤니티 활동량 측정 후 map(), filter(), reduce() 활용한 유저활동 순위 서비스 구현3. Docker 이미지 & GitHub Actions 활용한 AWS EC2 자동 배포

트러블 슈팅 경험

1) 중복코드 모듈화: 기능 구현 후, 코드 관리의 어려움 경험, 유지보수성재사용성을 위해 함수 형태로 리팩토링

  • 각 게시판의 ‘Offset기반 pagination’ 기능
  • 글 작성 시점에 따른 ‘시간 변환 표기’ 기능 🔗링크

 

2) 미들웨어 활용한 이슈 해결🔗링크

  • 페이지렌더링에 필요한 중복코드의 유지보수 어려움을 해소하고자, 전역 미들웨어로 express-ejs-layouts 라이브러리 도입 후, 네비게이션바 미적용 페이지를 위해 예외 적용

 

이하, 사용자 피드백을 통한 버그 수정 및 기능 개선 사항(구글폼, 유저 24명+)

 

3) 로그인 요청-응답 오류로 Nest.js 인터셉터를 구축

  • 일부 페이지에서 Ajax로 구현된 로그인 요청-응답 기능의 401오류로, 모든 라우팅에 대한 전역 처리 방법을 해결하기 위한 방법 고안, 유지보수성 향상🔗링크

 

4) 모임정원 기준의 문제 : 

  • 모임 매칭 서비스 이용시 모집현황 표기 혼동 → 모집글 게시자는 구성원으로 자동 포함되도록 구현, 중첩 함수 활용 🔗링크

 

5) 검색 타입 추가

  • 기존 게시글 ‘제목+내용’만 검색되는 기능에서, ‘제목’ 검색 타입 추가, 페이지 이동시 검색 타입 유지를 위해 JS의 localSorage 메써드 활용

 

 

파이널 프로젝트 담당 작업 회고

https://veams.tistory.com/81

 

TIL : 파이널 프로젝트 회고1 : 담당 작업 정리

https://youtu.be/FRmkiWnzpkE NestJS, TypeORM, EJS 개발 환경이다. 디자이너나 프론트엔드 담당 없이, 5명의 백엔드 팀원끼리 만든 프로젝트이다보니, 시각적인 면은 좀 아쉬운 게 많지만, 그래도 DB를 다루는

veams.tistory.com

 

깃허브 저장소

 

GitHub - miu-null/spartasix: sparta community club

sparta community club. Contribute to miu-null/spartasix development by creating an account on GitHub.

github.com

댓글