Skip to content

nonsoolmate/NONSOOLMATE-SERVER

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 
 
 
 
 
 
 

Repository files navigation

📓 NONSOOLMATE

WEB LINK: www.nonsoolmate.com


논술메이트_서비스설명

📒 Backend Developer

김성은 @sung-silver 송민규 @mikekks
김성은 송민규
역할 역할
- CI/CD 구축
- 네이버 로그인
- 마이페이지: 대학별 시험 리스트 조회
- 마이페이지: 닉네임
- 시험 보기: 첨삭권 사용
- 내 정보 확인: 첨삭권 개수
- 시험 보기: 문제지
- 시험 보기: 시험 이름 & 제한 시간
- 시험 보기: 답안지 업로드 및 시험 제출
- 목표대학 설정: 리스트 조회
- 목표대학 설정: 리스트 선택
- 해제: 문제이미지 & 해제 PDF 조회
- 첨삭: 문제이미지_해제PDF 조회
- 첨삭: 첨삭PDF_해제PDF 조회
- 토큰 재발급


🔑 Key Features

로그인 대학선택 메인
시험지 조회 시험지 제출 제출 완료 후
문제/해제 첨삭/해제



💻 Development Tech

Java






🛠️ Architecture Structure

image



📂 Project Structure

📦 nonsoolmateServer
├── 📂 domain
│   ├─ 📂 auth
│   │  ├─ 📂 controller
│   │  ├─ 📂 exception
│   │  └─ 📂 service
│   ├─ 📂 member
│   │  ├─ 📂 controller
│   │  ├─ 📂 entity
│   │  ├─ 📂 exception
│   │  ├─ 📂 repository
│   │  └─ 📂 service
│   ├─ 📂 selectUniversity
│   │  ├─ 📂 controller
│   │  ├─ 📂 entity
│   │  ├─ 📂 exception
│   │  ├─ 📂 repository
│   │  └─ 📂 service
│   ├─ 📂 university
│   │  ├─ 📂 controller
│   │  ├─ 📂 entity
│   │  ├─ 📂 exception
│   │  ├─ 📂 repository
│   │  └─ 📂 service
│   └─ 📂 universityExamRecord
│      ├─ 📂 controller
│      ├─ 📂 entity
│      ├─ 📂 exception
│      ├─ 📂 repository
│      └─ 📂 service
├── 📂 external
│   ├─ 📂 aws
│   │  ├─ 📂 config
│   │  └─ 📂 service
│   ├─ 📂 oauth
│   │  └─ 📂 service
│   └─ 📂 redis
│      ├─ 📂 config
│      ├─ 📂 repository
│      └─ 📂 service
└─ 📂 global
    ├─ 📂 controller
    ├─ 📂 response
    ├─ 📂 error 
    ├─ 📂 jwt
    │  ├─ 📂 utils
    │  └─ 📂 service
    ├─ 📂 security
    │  ├─ 📂 handler
    │  ├─ 📂 service
    │  ├─ 📂 filter
    │  └─ 📂 config
    ├─ 📂 swagger
    │  └─ 📂 config     
    └─ 📂 util
       └─ 📂 mapper



📚 ERD

스크린샷 2024-01-11 오후 10 03 04

🔐 Nonsoolmate Server's Rule

1. 👻 Commit Convention

  • ex) [FEAT] 목표 대학 리스트 조회 API 개발
  • ex) [FIX] 내가 작성하지 않은 리뷰 볼 수 있는 버그 해결
- [CHORE]: 내부 파일 수정
- [FEAT] : 새로운 기능 구현
- [ADD] : FEAT 이외의 부수적인 코드 추가, 라이브러리 추가, 새로운 파일 생성 
- [FIX] : 코드 수정, 버그, 오류 해결
- [DEL] : 쓸모없는 코드 삭제
- [DOCS] : README나 WIKI 등의 문서 개정
- [MOVE] : 프로젝트  파일이나 코드의 이동
- [RENAME] : 파일 이름의 변경
- [MERGE]: 다른 브렌치를 merge하는 경우
- [STYLE] : 코드가 아닌 스타일 변경을 하는 경우
- [INIT] : Initial commit을 하는 경우
- [REFACTOR] : 로직은 변경 없는 클린 코드를 위한 코드 수정

2. 🐤 Branch Strategy

  • prd branch : 배포 단위 branch (운영 서버 사용 용도 → 웹잼 이후 사용)
  • dev branch : 주요 개발 branch, main merge 전 거치는 branch
  • feat branch : 각자 개발 branch
  • 할 일 issue 등록 후, issue number를 사용하여 branch 생성 후 작업
    • ex) feat/#issue_number
  • branch naming
    • 기능 개발 - feat
    • 리팩토링 - refactor
    • 수정 - fix
    • 프로젝트 셋팅 - setting
  • 해당 branch 작업 완료 후 PR 보내기
    • 항상 local에서 충돌 해결 후 → remote에 올리기
    • reviewer에 서로 tag후 code-review
    • comment(review) 전 merge 불가!
    • review 반영 후, 본인이 merge
  • branch 구조
main
 └── dev 
      ├── feat/#1
      └── feat/#2
  • merge 전략 → rebase and merge
  • rebase가 헷갈린다면?

3. 👀 Code Convention

  • 아래 3가지는 기억해주세요
  • else 지양하기
  • 우테코 코드 컨벤션 적용하기
  • cmd + option + L

3.1 우테코 코드 컨벤션

3.2 메소드명

  • CRUD Create get(Read) Update Delete로 시작하기!
    • 예시: getUser(readUser) createUser readBoard updateUser
  • 컨트롤러 & 서비스 메서드명 최대한 비슷하게 네이밍

3.3 DTO명

  • Request
    • 생성 요청 ⇒ entity명 + RequestDTO
      • 예시: UserRequestDTO
    • 수정 요청 ⇒ entity명 + Update + RequestDTO
      • 예시: UserUpdateRequestDTO
  • Response
    • 생성 요청에 대한 응답 ⇒ entity명 + created + ResponseDTO
      • 예시: UserCreatedResponseDTO
    • 조회 요청에 대한 응답(가공 필요) ⇒ entity명을 포함한 적절한 이름 + ResponseDTO
      • 예시: UserResponseDTO
      • 복수라면? entity명 + -(e)s + 적절한 설명 + ResponseDTO
        • 예시: UsersOrderByNameResponseDTO
    • entity 그 자체를 리턴할 때(가공 X) ⇒ entity명 + DTO
      • 예시: UserDTO
      • 복수라면? entity명+ -(e)s + DTO 예시: UsersDTO