- JAVA 17
- (개발)H2 Database → (운영)MySQL
- 스프링 부트 & 스프링 MVC
- JPA
- Spring Data JPA
- QueryDSL
- Swagger
- Junit5
- SLF4J & LogBack (로깅)
- 개발
- feature/[기능] 브랜치 : 개인이 개발을 위해 사용하는 브랜치
- dev 브랜치 : 개인이 개발한 브랜치를 PR 할 때 사용하는 브랜치 (보호된 브랜치. 즉, PR을 통해서만 머지 가능.)
- dev 브랜치에 PR이 들어오면 애플리케이션의 테스트 케이스를 수행하고 성공 시에만 squash merge를 할 수 있다.
- main 브랜치 : 개발이 어느 정도 되었을 시 배포를 위한 브랜치로, 커밋을 수행하면 자동으로 EC2 Instance로 앱이 배포되게 된다. (제약 브랜치X. 조심)
- 운영
- release : 개발용 배포를 통해 잘 되는 것으로 확인 된다면 운영 서버에 반영 할 때 이용.
타입(옵션): 제목- 예시:
feat(새로운 기능 추가),fix(버그 수정),docs(문서 수정),style(코드 포맷팅 등, 코드 변경이 없는 경우),refactor(코드 리팩토링),test(테스트 코드 추가),chore(기타 변경사항) - 옵션(Scope, 선택 사항): 변경된 파일이나 기능의 범위를 설명합니다. 선택사항이며, 괄호 안에 작성합니다.
- 예시:
feat(auth):,fix(ui):
- 예시:
- 제목(Subject): 50자 이내의 간결한 설명을 작성합니다. 커밋의 내용을 요약하며, 첫 글자는 대문자로 시작하고 마침표를 붙이지 않습니다.
- 예시:
Add user authentication feature
- 예시:
- 예시:
- 기능적 요구 사항
- 사용자 관리 기능
- 회원 가입/탈퇴 기능
- 로그인 기능
- 인증 기능
- 일반 계정 인증
- 소셜 인증
- 권한 관리
- 사용자
- 전문가
- 관리자
- 인증 기능
- 프로필 관리
- 닉네임 설정
- 간단한 자기소개 설정
- 프로필 사진 설정
- 첨삭 기능
- 일반 첨삭(전문가에게 게시글 형식으로 첨삭 받기)
- 사용자 관점
- 자소서 업로드(파일 업로드 or 텍스트 형식)
- 전문가들에게 요청 정보가 전송됨.
- 전문가 관점
- 자신의 산업 및 직군에 속한 일반 첨삭 리스트 정보를 수신함을 통해 열람
- 자소서 문항 단위 혹은 전체를 선택하여 답변
- 사용자 관점
- 채팅 / 영상통화 첨삭
- 사용자 관점
- 자신이 속한 산업 및 직군 카테고리 선택
- 채팅/영상통화가 가능한 전문가 리스트를 show
- 원하는 전문가 클릭
- 캘린더를 통한 일정 및 시간 조율(전문가에게 요청 내용 검토의 시간이 필요함)
- 자소서 업로드(파일 및 텍스트 형식)
- 전문가에게 알림 메시지와 요청 정보가 전송됨.
- 전문가 관점
- 자신의 수신함에 있는 첨삭 요청 정보를 읽고 수락/거절
- 수락 시 일정 정보가 생성되고 **일정 메시지(10분 전)**를 발송.
- 사용자 관점
- AI 첨삭
- 자소서 첨삭 기능
- 맞춤법 교정, 글의 문맥 및 스타일, 안 좋은 습관을 개선
- 자소서를 통한 면접 가능 질문/ 답변 생성
- 자소서 첨삭 기능
- 일반 첨삭(전문가에게 게시글 형식으로 첨삭 받기)
- 알림 기능
- ex) 첨삭약속 10분 전에 알림이 가게 하는 기능 구현 예정.
- 사용자 관리 기능
- 비기능적 요구 사항(개발 후 상황에 따라 구현)
- 인프라
- 성능
- 보안
→ 계층형 구조 사용
- controller : 웹 계층(api endpoint)
- service: 비즈니스 로직, 트랜잭션 처리
- repository: JPA를 직접 사용하는 계층, 엔티티 매니저 사용
- domain: 엔티티가 모여 있는 계층, 모든 계층에서 사용
kakaotech_bootcamp.team_21.coverletter_spring_project- domain : 엔티티 저장
- enums : 열거형 엔티티 저장
- service : 비즈니스 로직 및 트랜젝션 처리
- dto : 요청 or 응답시 활용 할 클래스
- exception : 사용자 정의 예외 저장
- repository : 데이터 접근 계층
- config : 설정 정보들 저장
- dataInitializer : 초기 데이터 구성 용도
- controller
- api : REST API endpoint.
- domain : 엔티티 저장
| Description | REST API | HTTP Method |
|---|---|---|
| Retrieve all Users | /users | GET |
| Create a User | /users | POST |
| Retrieve One User | /users/{id} | GET |
| Delete a User | /users/{id} | DELETE |
| Retrieve all posts for a User | /users/{id}/posts | GET |
| Create a posts for a User | /users/{id}/posts | POST |
| Retrieve details of a User | /users/{id}/posts/{post_id} | GET |