첫 번째 프로젝트였다. 처음 느끼는 것이지만, 팀을 꾸리고 모집하는 것이 매우 힘들었음. 기획 및 설계를 진행하는 것도 좀 힘들었다. 원래 초기에 기획했던 방향은 gitHub API를 사용하여, Git을 통한 수행되는 다양한 활동들의 정보를 가져오는 개발자 전용 SNS를 제작하는 것이었다. 하지만 Git에서 유용한 정보를 반환하지 못하다는 사실을 파악하면서 계획이 틀어졌다. 시간은 한정되어있으니 급하게 노선을 변경한 것이 아래 ProG이다.

프로젝트를 생성해 팀원을 모집하고 프로젝트를 진행하며 협업을 위한 서비스를 제공한다.










Member
Code, CodeDetail
Attendance, Attendance_Log
Feed
Component
- 분량이 길거나 다른 페이지에서도 사용하는 기능은 Component화 시켜서 재사용할 수 있도록 하였다.
useUserStore
- 사용자 프로필을 localStorage에 저장한 뒤 zustand를 통해 상태관리를 진행하여 Props를 사용하지 않고 모든 페이지에서 유저의 정보를 이용할 수 있게 하였다
useAuthStore
- 사용자별로 할당된 Access Token을 관리하는 useAuthStore Hook을 생성하여 Access Token을 모든 페이지에서 사용하여 접근할 수 있도록 하였다.
axios.ts
- zustand로 관리한 Access Token을 자동으로 api 요청의 Header에 담게 하여 Access Token의 노출 없이 api 요청을 보낼 수 있게 하였다.
useActionQuery
- react-query를 사용해 Action Data를 fetch할 수 있게 하였다.
- Data Fetch 로직을 컴포넌트로부터 추상화하여 자동으로 Data를 fetch, cache할 수 있게 하였다.
Recruit
- 필터와 검색을 통해 프로젝트를 검색할 수 있게 하였다.
- 각 프로젝트별로 사용자와 프로젝트의 관계를 파악해 참여 중인 프로젝트를 확인할 수 있게 하였다.
Project
- 멤버, 프로젝트 관리 등 관리자 권한이 필요한 기능을 zustand를 통해 권한을 부여하였다.




기능 명세서





API 명세서
PostMan API 명세서
ERD

제목 : [BE] Feat : Add security
본문 : 시큐리티 설정 추가