분야 | 이름 | 포지션 | 내용 |
---|---|---|---|
기획 | 오민지 | 📈 PM, 서비스 기획 | 전체 프로젝트 관리 및 유저 리서치, 와이어프레임 제작, 서비스 기능 명세서 제작 |
기획 | 신예진 | 📋 서비스 기획 | 데스크/유저 리서치, 와이어프레임 제작, 서비스 기능 명세서 제작 |
기획 | 최수영 | 📊 서비스 기획 | 데스크/유저 리서치, 서비스 기능 명세서 제작 |
디자인 | 설정원 | 🎨 디자인 리드 | 디자인시스템/그래픽 |
디자인 | 이어령 | 🎨 디자인 | gui/브랜딩 |
개발 | 박인애 | 📱 프론트엔드 리드 | 개발 환경 세팅, 컴포넌트 개발, API 연동 |
개발 | 김진희 | 📱 프론트엔드 | 개발 환경 세팅, 컴포넌트 개발, API 연동 |
개발 | 문희상 | 💻 백엔드 리드 | ERD 작성, API 개발 , 인프라 구축 |
개발 | 박준형 | 💻 백엔드 | ERD 작성, API 개발 |
- 단위 테스트 작성(service 메소드 별로) : Junit 사용
- 다른 사람이 알아보기 쉽도록 주석처리해야 합니다.
- javadoc 형식 https://jake-seo-dev.tistory.com/59
- issue 생성 및 PR을 통해 본인이 구현한 부분에 대한 기록을 남겨야 합니다.
- 테스트 및 원할한 서버 운영을 위한 로그를 작성해야 합니다.
- 개발 기간 : 8/24 ~ 9/8
- 스프린트 4회(3일간격) 진행
- 수요일, 토요일
1-1) 내 커리어 현황 한 눈에 확인해요
커리어 현황 확인
- 관심 기업 또는 최근 임박한 기업 순으로 6개까지 확인 가능
- 나의 총 지원현황을 수치/리스트로 정리
- 마감기한 정보(D-DAY) 자동 업데이트
날짜별 투두리스트
- 우측 화면에서 일자별/기업별 투두리스트 확인
월별 채용일정 캘린더
1-2) 새 채용일정 추가
준비할 채용 일정 추가
- 사용자가 관심 있는 채용일정만 간편하게 추가하고 관리
1-3) 마감 공고별 리마인드 알림 기능
알림센터
- 등록한 기업의 전형 마감일 3일/1일 전에 리마인드 알림 제공
- 임박한 마감 일정 더블 체크
2-1) 전체 캘린더 일정 관리
오늘의 커리어 일정
- 등록된 채용 일정 노출
- 개인 일정을 함께 추가하고 관리할 수 있는 캘린더 기능
캘린더 내 기업별 전형 chip
- 서류 - 시작, 끝
- 면접
- 기타 - 사용자가 입력한 이외의 전형
오늘의 투두리스트
- 우측 화면에서 일자별/기업별 투두리스트 확인
3-1) 준비 현황 페이지
기업 카드
- 기업명/직무/가장 최근 전형의 마감일 정보 확인
- 정렬 순서 : 관심 기업 → 마감기한
- 전형별로 분류하는 필터 제공 : 서류 / 면접 / 기타
3-2) 준비중인 기업 관리
전형 카드
- 진행되는 일정에 맞춰 전체 전형 절차 및 일정 등록 + 관리
- 전형 종류 : 서류, 면접, 기타(사용자가 직접 등록한 이외의 전형)
- 상태 : 진행 중 / 합격 / 불합격 3가지로 상태 변경 가능
기업별 투두 리스트
- 투두 등록 : 해당 기업을 위한 매일의 투두를 등록
- 루틴 등록 (매일/매주) : 반복해야하는 일정이나 루틴을 등록하기 위한 기능
- 일정 미루기, 날짜 변경 기능
기업별 관련 자료 아카이빙
- 기업별 자기소개서 작성하기 페이지 → 자소서 작성 시, 커리어 관리 [필살기 경험] 탭에 있는 경험 불러오기 가능
- 아카이빙 : 취업 준비에 필요한 각종 자료들을 아카이빙하는 공간 → 자유로운 게시글 작성 / 파일 업로드 기능
3-3) 종료된 기업카드 관리
- 불합격 / 최종합격 현황 확인 가능
3-4) 복기 노트
-
전형 준비가 완료된 기업에 대해서 복기 및 회고할 수 있는 기능
-
서류/면접/기타 전형별 간편 복기 기능
TypeA 서류
- 만족도
- 핵심 키워드 선택(잘한점/아쉬운점)
- 면접 질문&답변 리스트 작성(잘한/아쉬운 답변 기록)
- 아쉬웠던 질문 다시보기 기능
TypeB 면접
- 만족도
- 핵심 키워드 선택(잘한점/아쉬운점)
- 면접 질문&답변 리스트 작성(잘한/아쉬운 답변 기록)
- 아쉬웠던 질문 다시보기 기능
TypeC 기타
- 만족도
- 난이도
- 잘한점/아쉬운점 자유롭게 기록
4-1) 기본 이력서
지원서 작성에 필요한 공통 항목 관리용 이력서 기능
- 기본 정보/학력
- 자격증/어학
- 경력
- 경험/수상
- 포트폴리오
4-2) 필살기 경험
자기소개서 작성에 활용 가능한 핵심 경험 정리 페이지
- 소제목/내용 작성란
- 항목별 토글 기능(접기/펼치기)
- 저장된 항목은 <자기소개서 작성하기> 페이지에서 불러오기 가능
- ①성공/도전 경험, ②직무 경험, ③협업 경험 3가지 파트 구성
-
- 다양한 라이브러리와 설정을 자동으로 제공하므로 개발자가 애플리케이션을 더 빠르게 만들 수 있음
- 특정 환경이나 서버, 기술에 종속되지 않으며 유연한 애플리케이션을 개발할 수 있음
- QueryDSL은 타입 안전한 방식으로 SQL 쿼리를 작성할 수 있어, 컴파일 시점에 오류를 잡아내고 가독성을 높임
-
- JUnit은 자바 기반의 단위 테스트 프레임워크로, 테스트를 자동화하여 코드의 품질을 보장하며, 코드 변경 시 발생할 수 있는 버그를 신속히 탐지
- Mockito는 Mock Object를 사용해 의존성을 분리하고 테스트 대상의 행위만을 집중적으로 검증할 수 있어, 유닛 테스트 작성이 더 쉬움
-
- 탄력적인 서버 인프라를 제공하여 필요에 따라 컴퓨팅 자원을 자동으로 확장 및 축소할 수 있어 비용 절감과 성능 최적화가 가능
- S3는 안정적이고 확장 가능한 스토리지를 제공하며, 파일 저장 및 정적 콘텐츠 제공에 적합해 대규모 파일 관리를 효율적으로 처리 가능
- Elasticache는 빠른 캐싱을 통해 데이터베이스 성능을 향상시켜 응답 속도를 최적화
-
- 자동화된 워크플로우로 코드 변경 시 테스트, 빌드, 배포 과정을 신속하게 처리해 개발 주기를 단축
- 애플리케이션을 컨테이너로 묶어 일관된 환경에서 실행되도록 보장해, 배포 시 환경 차이에 따른 오류를 최소화
-
- RestDocs를 통해 생성된 문서를 Swagger UI로 시각화하여, 개발자와 비개발자 모두가 실시간으로 API를 테스트 가능
- 테스트 코드 작성과 함께 API 문서가 자동으로 생성되어, 실제 코드와 문서의 동기화 문제가 발생하지 않음
- 테스트 시에 문서를 검증할 수 있어 신뢰성을 높임
Naming
- 패키지 : 언더스코어(
_
)나 대문자를 섞지 않고 소문자를 사용하여 작성합니다. - 클래스 : 클래스 이름은 명사나 명사절로 지으며, 대문자 카멜표기법(Upper camel case)을 사용합니다.
- 메서드 : 메서드 이름은 동사/전치사로 시작하며, 소문자 카멜표기법(Lower camel case)를 사용합니다. 의도가 전달되도록 최대한 간결하게 표현합니다.
- 변수 : 소문자 카멜표기법(Lower camel case)를 사용합니다.
- ENUM, 상수 : 상태를 가지지 않는 자료형이면서
static final
로 선언되어 있는 필드일 때를 상수로 간주하며, 대문자와 언더스코어(UPPER_SNAKE_CASE)로 구성합니다. - DB 테이블: 소문자와 언더스코어로(lower_snake_case) 구성합니다.
- 컬렉션(Collection): 복수형을 사용하거나 컬렉션을 명시합니다. (Ex. userList, users, userMap)
- LocalDateTime: 접미사에 *Time**를 붙입니다.
Comment
Import
탑레벨 클래스(Top level class)는 소스 파일에 1개만 존재해야 한다. ( 탑레벨 클래스 선언의 컴파일타임 에러 체크에 대해서는 Java Language Specification 7.6 참조 )
클래스를 import할때는 와일드카드(
*
) 없이 모든 클래스명을 다 쓴다. static import에서는 와일드카드를 허용한다.
클래스, 인터페이스, 메서드, 생성자에 붙는 애너테이션은 선언 후 새줄을 사용한다. 이 위치에서도 파라미터가 없는 애너테이션 1개는 같은 줄에 선언할 수 있다.
배열 선언에 오는 대괄호(
[]
)는 타입의 바로 뒤에 붙인다. 변수명 뒤에 붙이지 않는다.
long형의 숫자에는 마지막에 대문자 'L’을 붙인다. 소문자 'l’보다 숫자 '1’과의 차이가 커서 가독성이 높아진다.
URL
Rules
작업 시작 시 선행되어야 할 작업은 다음과 같습니다.
- issue를 생성합니다.
- feature branch를 생성합니다.
- add → commit → push → pull request 를 진행합니다.
- pull request를 develop branch로 merge 합니다.
- 이전에 merge된 작업이 있을 경우 다른 branch에서 진행하던 작업에 merge된 작업을 pull 받아옵니다.
- 종료된 issue와 pull request의 label을 관리합니다.
IntelliJ로 작업을 진행하는 경우, 작업 시작 시 선행되어야 할 작업은 다음과 같습니다.
- 깃허브 프로젝트 저장소에서 issue를 생성합니다.
- 생성한 issue 번호에 맞는 feature branch를 생성함과 동시에 feature branch로 checkout 합니다.
- feature branch에서 issue 단위 작업을 진행합니다.
- 작업 완료 후, add → commit을 진행합니다.
- remote develop branch의 변경 사항을 확인하기 위해 pull 받은 이후 push를 진행합니다.
- 만약 코드 충돌이 발생하였다면, IntelliJ에서 코드 충돌을 해결하고 add → commit을 진행합니다.
- push → pull request (feature branch → develop branch) 를 진행합니다.
- pull request가 작성되면 작성자 이외의 다른 팀원이 code review를 진행합니다.
- 최소 한 명 이상의 팀원에게 code review와 approve를 받은 경우 pull request 생성자가 merge를 진행합니다.
- 종료된 issue와 pull request의 label과 milestone을 관리합니다.
준수해야 할 규칙은 다음과 같습니다.
- develop branch에서의 작업은 원칙적으로 금지합니다. 단, README 작성은 develop branch에서 수행합니다.
- commit, push, merge, pull request 등 모든 작업은 오류 없이 정상적으로 실행되는 지 확인 후 수행합니다.
Branch
branch는 작업 단위 & 기능 단위로 생성된 issue를 기반으로 합니다.
branch를 생성하기 전 issue를 먼저 작성합니다. issue 작성 후 생성되는 번호와 domain 명을 조합하여 branch의 이름을 결정합니다. <Prefix>/<Issue_Number>-<Domain>
의 양식을 준수합니다.
main
: 개발이 완료된 산출물이 저장될 공간입니다.develop
: feature branch에서 구현된 기능들이 merge될 default branch 입니다.feature
: 기능을 개발하는 branch 입니다. 이슈 별 & 작업 별로 branch를 생성 후 기능을 개발하며 naming은 소문자를 사용합니다.
user
,home
,error
,config
feature/7-user
,feature/5-config
Issue
작업 시작 전 issue 생성이 선행되어야 합니다. issue 는 작업 단위 & 기능 단위로 생성하며 생성 후 표시되는 issue number 를 참조하여 branch 이름과 commit message를 작성합니다.
issue 제목에는 기능의 대표적인 설명을 적고 내용에는 세부적인 내용 및 작업 진행 상황을 작성합니다.
issue 생성 시 github 오른편의 assignee, label을 적용합니다. assignee는 해당 issue 담당자, label은 작업 내용을 추가합니다.
[<Prefix>] <Description>
의 양식을 준수하되, prefix는 commit message convention을 따릅니다.
[chore] spring data JPA 의존성 추가
Commit
[<Prefix>] #<Issue_Number> <Description>
의 양식을 준수합니다.
- feat : 새로운 기능 구현
[feat] #11 구글 로그인 API 기능 구현
- fix : 코드 오류 수정
[fix] #10 회원가입 비즈니스 로직 오류 수정
- del : 쓸모없는 코드 삭제
[del] #12 불필요한 import 제거
- docs : README나 wiki 등의 문서 개정
[docs] #14 리드미 수정
- refactor : 내부 로직은 변경 하지 않고 기존의 코드를 개선하는 리팩터링
[refactor] #15 코드 로직 개선
- chore : 의존성 추가, yml 추가와 수정, 패키지 구조 변경, 파일 이동
[chore] #21 yml 수정
,[chore] #22 lombok 의존성 추가
- test: 테스트 코드 작성, 수정
[test] #20 로그인 API 테스트 코드 작성
- style : 코드에 관련 없는 주석 달기, 줄바꿈
- rename : 파일 및 폴더명 수정