반 관리 기능 목록 조회 상세 조회 등록 수정 삭제 반소속 학생 등록 반소속 학생 삭제 Groups GroupMember 반 관리 기능 + 반 소속학생 관리 기능 특이점 이라고 한다면 해당 반의 소속 학원생을 조회해 오는 부분이 화면에 종속적이다. 순수한 Repository계층에 어울리지 않는다. (재사용하기 어려움) QueryRepository를 생성하여 별도로 관리 GroupMemberQuery Tuple을 사용하기 보다는 DTO를 이용한 조회 (@QueryProjection을 활용)는 방법을 사용, 필요한 최소한의 데이터만 조회해 온다. QueryRepository로 별도 분리한 이유 ? 화면에 종속적인 경우 재사용하기 어렵고, 순수 Repository의 라이프사이클과 QueryRepository의..
학생 관리 기능 목록 조회 상세 조회 등록 수정 삭제 기본적인 CRUD 기능 MemberController MemberService 조회 기능 목록 조회시, Querydsl 이용하여 동적 쿼리 처리 (Querydsl) 상세 조회시 엔티티 식별자로 단건 조회를 시도하며, 만약 없다면 NotFoundMemberException 예외 발생 등록 기능 MemberForm (DTO) 를 통해 입력값을 전달받으며 엔티티로 변환후 학원생 등록 학원생 등록시 별도의 중복 체크 기능은 없음 (관리자만 이용하는 관리기능) 회원 등록후 해당 엔티티를 반환하는것이 아닌, 엔티티의 식별자만 반환 커맨드와 쿼리를 분리하라 원칙 수정 기능 MemberForm (DTO) 를 통해 입력값을 전달받으며 식별자로 해당 하는 학원생이 존재..
요구사항 학생은 여러 반에 소속 될 수 있다. 선생님은 여러 반의 담당 선생님이 될 수 있다. 선생님은 학생의 성적을 관리 할 수 있다. 성적은 과목별 성적으로 입력 할 수 있다. 기능 목록 학생관리 목록 조회 상세 조회 등록 수정 삭제 선생님관리 목록 조회 상세 조회 등록 수정 삭제 반관리 목록 조회 상세 조회 등록 수정 삭제 과목 관리 목록 조회 상세 조회 등록 수정 삭제 시험타입 관리 목록 조회 상세 조회 등록 수정 삭제 성적 관리 목록 조회 상세 조회 등록 수정 삭제 도메인 모델 분석 학생과 반의 관계 학생은 여러 반에 소속될 수 있다. 학생 소속반 이라는 모델을 만들어 다대다 관계를 일대다, 다대일 관계로 해소 선생님과 반의 관계 선생님은 여러 반의 담당 선생님이 될 수 있다. 담당 선생님 이라..
서론 AMS (Academy Management System) 을 2020년 첫 토이프로젝트로 선정한 이유는 다음과 같다. 사실 퇴사한 이후 지역 이동을 위해 일찌감치 수원으로 이사를 했다. 이직 전 체력보충도 하고, 힐링도 할겸 쉬는 김에 여자친구의 사촌동생이 이번에 개발자가 되기위해 공부중이라는 소식을 듣게 되었다. 강남의 모 학원에서 배우고 있다고 하는데 이번에 세미 프로젝트를 한다고해서 간간히 도움을 주고 있었다. 학원 강의 자료나, 수업자료 등을 살펴보다가 안되겠다 싶어 조금 개입하게 되었다. 내가 개발자가 되기 위해 학원 수강중 바랬던 멘토링을 해주고 싶었다. 이제 막 시작 하는 단계일때 제대로 배우고 잘못된 점을 짚어주고 크는것이 중요하다고 생각이 들었다. 그런 와중에 토이프로젝트를 한번 해..