| 
 | 1 | +  | 
 | 2 | +## 2025학년도 다솜 홈페이지  | 
 | 3 | + | 
 | 4 | +[](https://app.netlify.com/sites/dmu-dasom/deploys)  | 
 | 5 | +[](https://opensource.org/licenses/MIT)  | 
 | 6 | +> <b>개발 기간 : 2025.02.05 - 2025.03.01 <br> 배포 주소 : <a href="https://dmu-dasom.or.kr">https://dmu-dasom.or.kr</a></b>  | 
 | 7 | +>   | 
 | 8 | +<br>  | 
 | 9 | +
  | 
 | 10 | +## 2025 DASOM MAKERS  | 
 | 11 | + | 
 | 12 | +> 다솜 메이커스  | 
 | 13 | +>   | 
 | 14 | +
  | 
 | 15 | +다솜 홈페이지 유지보수 및 개발을 담당하는 팀입니다.  | 
 | 16 | + | 
 | 17 | +| **분야** | **이름** | **포지션** |  | 
 | 18 | +| --- | --- | --- |  | 
 | 19 | +| PM | <a href="https://github.com/titeotty">최도현</a>  | **프론트엔드 리드**, 프론트 인프라 구축 & 서버 연동 및 배포, 화면 UI 구현, <br> UI/UX, GUI 디자인, 백엔드 API 및 DB 구축 |  | 
 | 20 | +| 백엔드 | <a href="https://github.com/ysw789">유승완</a>  | **백엔드 리드**, 백엔드 인프라 구축 & 서버 연동 및 배포, API 및 DB 구축 |  | 
 | 21 | +| 백엔드 | <a href="https://github.com/hodoon">윤도훈</a>  | **백엔드**, API 및 DB 구축 |  | 
 | 22 | +| 프론트엔드 | <a href="https://github.com/sooh329">김수현</a>  | **프론트엔드**, 화면 UI 구현, API 연동 |  | 
 | 23 | +| 프론트엔드 | <a href="https://github.com/kim3360">김태우</a>  | **프론트엔드**, 화면 UI 구현, API 연동 |  | 
 | 24 | +| 프론트엔드 | <a href="https://github.com/limtjdghks">임성환</a>  | **프론트엔드**, 화면 UI 구현, API 연동 |  | 
 | 25 | + | 
 | 26 | +<br>  | 
 | 27 | + | 
 | 28 | +## 기술 스택  | 
 | 29 | + | 
 | 30 | +### FE  | 
 | 31 | + | 
 | 32 | +  | 
 | 33 | +  | 
 | 34 | +  | 
 | 35 | +  | 
 | 36 | +  | 
 | 37 | +  | 
 | 38 | +  | 
 | 39 | +  | 
 | 40 | +  | 
 | 41 | + | 
 | 42 | +### BE  | 
 | 43 | + | 
 | 44 | +  | 
 | 45 | +  | 
 | 46 | +  | 
 | 47 | +  | 
 | 48 | +  | 
 | 49 | +  | 
 | 50 | +  | 
 | 51 | +  | 
 | 52 | + | 
 | 53 | +### DESIGN  | 
 | 54 | +  | 
 | 55 | +  | 
 | 56 | +  | 
 | 57 | + | 
 | 58 | +### VERSION CONTROL  | 
 | 59 | +  | 
 | 60 | +  | 
 | 61 | + | 
 | 62 | +### INFRA  | 
 | 63 | +  | 
 | 64 | +  | 
 | 65 | +  | 
 | 66 | +  | 
 | 67 | + | 
 | 68 | +### DOCS & COMMUNICATION  | 
 | 69 | +  | 
 | 70 | +  | 
 | 71 | +  | 
 | 72 | +<br>  | 
 | 73 | + | 
 | 74 | +## 컨벤션  | 
 | 75 | + | 
 | 76 | +### Commit Convention  | 
 | 77 | + | 
 | 78 | +| 태그 | 설명 | 예시 |  | 
 | 79 | +| --- | --- | --- |  | 
 | 80 | +| feat | 새로운 기능 추가 | `feat: 로그인 기능 추가` |  | 
 | 81 | +| fix | 버그 수정 | `fix: 로그인 예외 처리 버그 수정` |  | 
 | 82 | +| docs | README 등의 문서 수정 | `docs: API 명세 업데이트` |  | 
 | 83 | +| style | 코드 스타일 변경 | `style: 코드 포맷팅 개선` |  | 
 | 84 | +| refactor | 기능 변경 없이 코드 내부 구조 리팩토링 | `refactor: 로그인 처리 로직 리팩토링` |  | 
 | 85 | +| test | 테스트 케이스 작성 혹은 수정 | `test: 사용자 인증 로직 테스트 케이스 추가` |  | 
 | 86 | +| chore | 라이브러리 버전 수정, 패키지 관리 등 | `chore: 의존성 버전 업데이트` |  | 
 | 87 | +| comment | 주석 추가 / 수정 | `comment: 불필요한 주석 제거` |  | 
 | 88 | +| hotfix | 배포된 버전에서의 급한 버그 수정 | `hotfix: 서버 Timezone 설정 변경` |  | 
 | 89 | +| rename | 파일, 클래스 등의 이름 변경 | `rename: UserController → AuthController 변경` |  | 
 | 90 | +| remove | 파일, 클래스 등의 삭제 | `remove: 사용하지 않는 DTO 제거` |  | 
 | 91 | +| cicd | CI/CD 관련 설정 | `cicd: Github Actions workflow 추가` |  | 
 | 92 | +| design | 애니메이션, 컬러 등의 디자인 수정 | `design: hover 애니메이션 추가` |  | 
 | 93 | + | 
 | 94 | +### Issue Template  | 
 | 95 | + | 
 | 96 | +```markdown  | 
 | 97 | +# [태그] 제목  | 
 | 98 | +(예: [feat] 로그인 기능 추가)  | 
 | 99 | + | 
 | 100 | +## 목적  | 
 | 101 | +- 해당 Issue가 발생한 원인과 배경을 설명한다.  | 
 | 102 | +  - 예: 회원 기능 구현을 위한 로그인 기능 추가 필요  | 
 | 103 | +- 문제점이나 개선해야 할 사항을 기술한다.  | 
 | 104 | +  - 예: 사용자 인증 과정에서 빈약한 예외 처리로 인한 오류 발생 위험 제거  | 
 | 105 | + | 
 | 106 | +## 상세 내용  | 
 | 107 | +- 구현할 기능 또는 수정 사항에 대한 구체적인 설명  | 
 | 108 | +  - 예: 이메일 및 비밀번호 입력값 검증 로직 추가, OAuth 연동 검토  | 
 | 109 | +- 참고할 자료나 관련 디자인, API 명세 등을 첨부(링크 포함 가능)  | 
 | 110 | + | 
 | 111 | +## 추가 사항 (필요 시)  | 
 | 112 | +- 관련 이슈 번호, 담당자, 예상 완료일, 테스트 방법 등 기타 참고해야 할 사항을 기재  | 
 | 113 | +```  | 
 | 114 | + | 
 | 115 | +### PR Template  | 
 | 116 | + | 
 | 117 | +```markdown  | 
 | 118 | +# [태그] 제목  | 
 | 119 | +(예: [feat] 사용자 인증 기능 추가)  | 
 | 120 | + | 
 | 121 | +## Issue  | 
 | 122 | +- 예시: #111, #112  | 
 | 123 | +  (해당 PR과 관련된 이슈 번호를 명시하여 추적 용이성을 확보)  | 
 | 124 | + | 
 | 125 | +## 변경 내용  | 
 | 126 | +- 이번 PR에서 어떤 변경이 이루어졌는지 간략하게 기술합니다.  | 
 | 127 | +  (예: 기존 로그인 API에 JWT 기반 인증 로직 추가)  | 
 | 128 | + | 
 | 129 | +## 구현 사항  | 
 | 130 | +- 새로운 기능 구현 내용 및 기존 코드 수정 경위를 상세하게 설명합니다.  | 
 | 131 | +  (예: 로그인 요청 처리 로직 개선, 예외 처리 추가, API 응답 포맷 변경 등)  | 
 | 132 | + | 
 | 133 | +## 테스트 (필요 시)  | 
 | 134 | +- 적용된 테스트 방법과 결과를 기록합니다.  | 
 | 135 | +  (예: 단위 테스트 결과, 통합 테스트 진행 및 QA 결과, 관련 스크린샷 첨부)  | 
 | 136 | + | 
 | 137 | +## 참고 사항 (필요 시)  | 
 | 138 | +- 추가적으로 검토가 필요한 사항이나 관련 문서, 디자인 파일 등의 링크를 첨부합니다.  | 
 | 139 | +  (예: API 명세서, 디자인 목업 파일 링크 등)  | 
 | 140 | +```  | 
 | 141 | + | 
 | 142 | +## 패키지 구조  | 
 | 143 | + | 
 | 144 | +### 백엔드  | 
 | 145 | +```  | 
 | 146 | +dmu.dasom.api  | 
 | 147 | +├── global  | 
 | 148 | +│   ├── admin  | 
 | 149 | +│   │   ├── controller  | 
 | 150 | +│   │   ├── dto  | 
 | 151 | +│   │   └── service  | 
 | 152 | +│   ├── auth  | 
 | 153 | +│   │   ├── config  | 
 | 154 | +│   │   ├── filter  | 
 | 155 | +│   │   ├── handler  | 
 | 156 | +│   │   ├── jwt  | 
 | 157 | +│   │   └── userdetails  | 
 | 158 | +│   └── swagger  | 
 | 159 | +│       └── SwaggerConfig  | 
 | 160 | +└── domain  | 
 | 161 | +    ├── common  | 
 | 162 | +    │   ├── exception  | 
 | 163 | +    │   │   ├── CustomControllerAdvice  | 
 | 164 | +    │   │   ├── CustomException  | 
 | 165 | +    │   │   ├── ErrorCode  | 
 | 166 | +    │   │   └── ErrorResponse  | 
 | 167 | +    │   └── BaseEntity  | 
 | 168 | +    ├── member  | 
 | 169 | +    │   ├── controller  | 
 | 170 | +    │   ├── dto  | 
 | 171 | +    │   ├── entity  | 
 | 172 | +    │   ├── enums  | 
 | 173 | +    │   ├── repository  | 
 | 174 | +    │   └── service  | 
 | 175 | +    ├── recruit  | 
 | 176 | +    │   ├── controller  | 
 | 177 | +    │   ├── dto  | 
 | 178 | +    │   ├── entity  | 
 | 179 | +    │   ├── enums  | 
 | 180 | +    │   ├── repository  | 
 | 181 | +    │   └── service  | 
 | 182 | +    └── … (기타 도메인)  | 
 | 183 | +```  | 
 | 184 | + | 
 | 185 | +### 프론트엔드  | 
 | 186 | +```  | 
 | 187 | +├─ src  | 
 | 188 | +│  ├─ assets  | 
 | 189 | +│  │  ├─ images  | 
 | 190 | +│  │  └─ styles  # css 설정 등  | 
 | 191 | +│  ├─ components  | 
 | 192 | +│  │  ├─ UI  # 재사용 가능한 UI 컴포넌트 ex)버튼, 입력폼  | 
 | 193 | +│  │  └─ layout  # 헤더, 푸터 등 레이아웃 컴포넌트들  | 
 | 194 | +│  ├─ context  | 
 | 195 | +│  ├─ hooks  | 
 | 196 | +│  │  └─ useWindowSize.tsx  | 
 | 197 | +│  ├─ pages  | 
 | 198 | +│  │  ├─ Main.tsx  | 
 | 199 | +│  │  ├─ FAQ.tsx  | 
 | 200 | +│  │  ├─ News.tsx  | 
 | 201 | +│  │  ├─ NewsInfo.tsx  | 
 | 202 | +│  │  ├─ CoreMembers.tsx  | 
 | 203 | +│  │  ├─ Login.tsx  | 
 | 204 | +│  │  ├─ Recruit.tsx  | 
 | 205 | +│  │  ├─ RecruitCheck.tsx  | 
 | 206 | +│  │  ├─ RecruitCheckFinal.tsx  | 
 | 207 | +│  │  ├─ RecruitMeeting.tsx  | 
 | 208 | +│  │  ├─ RecruitResult.tsx  | 
 | 209 | +│  │  ├─ RecruitSubmit.tsx  | 
 | 210 | +│  │  ├─ RecruitSubmitMeeting.tsx  | 
 | 211 | +│  │  ├─ UserMain.tsx  | 
 | 212 | +│  │  └─ admin  | 
 | 213 | +│  │     ├─ AdminMain.tsx  | 
 | 214 | +│  │     ├─ ManMembers.tsx  | 
 | 215 | +│  │     ├─ ManApplicants.tsx  | 
 | 216 | +│  │     ├─ ManRecruitDate.tsx  | 
 | 217 | +│  │     └─ ManNews.tsx  | 
 | 218 | +│  ├─ utils  | 
 | 219 | +│  │  └─ utils.ts  | 
 | 220 | +│  └─ types  | 
 | 221 | +├─ App.tsx  | 
 | 222 | +├─ index.tsx  | 
 | 223 | +├─ react-app-env.d.ts  | 
 | 224 | +└─ setupTests.ts  | 
 | 225 | +```  | 
0 commit comments