학생 출석부 관리 시스템 기능 구현하기
- Java 21
- Junit5, AssertJ (테스트 코드 작성시 사용)
- 출석부에는 학생이 있거나 비어있습니다.
- 출석부는 생성 될 때 학생들을 가진 채로 생성되거나, 빈 출석부로 생성될 수 있습니다.
- 출석부는 다음과 같은 속성을 지닙니다.
- 학생 목록
- 학생은 다음과 같은 속성을 지닙니다.
- 이름(예 : 김밤돌), 학반번호(예 : 20309, 학년/반/번호), 출석횟수
- 출석부에는 학생을 추가할 수 있습니다.
- 출석부의 학생을 삭제 할 수 있습니다.
- 출석부는 학생들의 정보를 조회할 수 있습니다. 조회할 때는 다음과 같은 속성을 출력해야 합니다.
- 학생의 이름, 학반번호, 출석횟수
- 출석부는 출석부에 존재하는 학생들의 출석횟수를 증가시킬 수 있습니다.
- 출석부에 동일한 이름과 학번을 가진 학생은 추가할 수 없습니다.
- 출석부에 존재하지 않는 학생은 삭제할 수 없습니다.
- 학생의 출석횟수는 음수일 수 없습니다.
- 학생의 이름은 1자 이상 20자 이하여야합니다.
- 화이팅하세요!
- 클래스별로 파일을 구분해야합니다.
- 캡슐화가 이루어져야 합니다.
- 패키지, 변수, 메서드 작성시에는 꼭 그에 알맞은 네이밍 컨벤션을 따라야 합니다.
- 이 레포지토리를 포크합니다.
- 본인의 이름으로 브랜치를 만듭니다. (예시: hanul)
- 메인 함수의 주석을 읽으며 코드를 작성해 주세요.
- 테스트 코드를 작성해주세요. (선택 사항, 가산점 부여)
- 3번과 4번 과정을 진행하며 커밋해주세요. (밑 커밋 규칙 참고)
- 모두 완료한 후 Pull Request를 보내주세요.
| 항목 | 내용 | 비율 |
|---|---|---|
| 코드 가독성 | 코드가 얼마나 술술 잘 읽히는가 | 30% |
| 실행 | 기능이 문제 없이 실행되는가 | 30% |
| 학구열 | 자기주도적으로 모르는 내용을 찾아보며 개발했는가 | 30% |
| 성실성 | 성실한가 | 10% |
| 테스트 | 테스트 코드 작성시 가산점 부여 | 3% (추가) |
다음 명령어를 사용하면 커밋 템플릿을 통해 커밋 메시지를 작성할 수 있습니다.
git commit커밋 메시지는 머리글, 본문, 바닥글로 구성됩니다.
<머리글>
<!-- 빈 줄 -->
<본문>
<!-- 빈 줄 -->
<바닥글>필수입니다.
<유형>: <짧은 요약>
│ │
│ └─⫸ 현재, 명령형으로 작성. 마침표 금지.
│
└─⫸ 커밋 유형: feat|fix|perf|refactor|test
| 유형 | 설명 |
|---|---|
| feat | 새로운 기능 추가 |
| fix | 버그 수정 |
| perf | 성능 개선 |
| refactor | 버그를 수정하거나 기능을 추가하지 않은 코드 리팩토링 |
| test | 누락된 테스트 추가 또는 기존 테스트 수정 |
변경사항이 "무엇"인지 작성합니다.
- 명령형, 현재 시제 사용: "변경함", "변경했음"이 아닌 "변경"으로 작성
- 끝에 마침표(.) 금지
- 한글 사용 권장
- 50자 이내로 작성
- 한글 사용 권장
- 한 줄에 72자가 넘지 않도록 주의
- 어떻게 보다는 "무엇"을 "왜" 변경했는지 작성
- 자유로운 형식으로 작성
선택 사항입니다.
참고 사항이나 추가로 할 말이 있을 떄 작성합니다.
git commit -m "feat :: 출석부 객체
- ~~ 구체적인 설명
"다음 글을 참고하면서 진행해주세요!
꼭 이 글이 아니더라도, 다른 글들을 참고하면서 해도 괜찮습니다.
포크, 브랜치, Pull Request가 뭔지 모르겠다면?
Git을 이용한 협업: Fork 부터 Pull Request 까지
테스트 코드 작성 방법
IntelliJ에서 JUnit 사용하기
자바의 네이밍 컨벤션을 모르겠다면?
자바 네이밍 규칙 (java 네이밍 컨벤션)