본문 바로가기

스프링과 JPA 기반 웹 어플리케이션 개발85

69. 패키지 구조 정리 ArchUnit 아키텍처 테스트 유틸리티 (JUnit 5 지원) https://www.archunit.org/ Unit test your Java architecture Start enforcing your architecture within 30 minutes using the test setup you already have. www.archunit.org com.tngtech.archunit archunit-junit5 0.13.1 test 패키지 정리 인프라 패키지에서 모듈 패키지 사용하지 않기. Study 패키지에 있는 클래스는 Event와 Study에 들어있는 클래스에서만 사용한다. Event 패키지에 있는 클래스는 Study와 Account 그리고 Event 패키지에 들어있는 클래스를 사용한.. 2020. 5. 6.
68. 모임 참가 신청 수락 및 출석 체크 Event의 Enrollment 목록 순서를 정하려면 @OneToMany(mappedBy = "event") @OrderBy("enrolledAt") private List enrollments = new ArrayList(); 스프링 데이너 JPA가 제공하는 도메인 컨버터 사용하기 @GetMapping("/events/{eventId}/enrollments/{enrollmentId}/reject") public String rejectEnrollment(@PathVariable Long eventId, @PathVariable Long enrollmentId) { Event event = eventRepository.findById(eventId).orElseThrow(); Enrollment enro.. 2020. 5. 6.
67. 모임 참가 신청 및 취소 모임 참가 신청 및 취소 시 스터디 조회 이때 조회하는 스터디는 관리자 권한 없이 읽어올 수 있어야 하며 (스터디 관리자가 아니어도 참가 신청이 가능해야 하니까) 데이터를 필요한 만큼만 가져오도록 주의할 것. 모임 참가 신청 선착순 모임이고 현재까지 수락한 참가 신청 개수와 총 모집 인원수를 확인한다면, 가능하다면 해당 참가 신청을 확정 상태로 저장합니다. 모임 참가 신청 취소 선착순 모임이라면, 대기 중인 모임 참가 신청 중에 가장 빨리 신청한 것을 확정 상태로 변경합니다. 모임 수정 로직 보완 선착순 모임 수정시 모집 인원이 늘었고 대기 중인 참가 신청이 있다면 가능한 만큼 대기 중인 신청을 확정 상태로 변경합니다. 테스트 코드 작성 필수 모임 관리자가 참가 신청을 관리하기위해 Event 엔티티에 c.. 2020. 5. 6.
66. 모임 취소 삭제 요청을 어떻게 보낼까? POST "/study/{path}/events/{id}/delete" DELETE "/study/{path}/events/{id}" DELETE를 쓰려면 HTML의 FORM은 method로 GET과 POST만 지원한다. DELETE는 지원하지 않는다. https://www.w3.org/TR/html4/interact/forms.html#h-17.3 그래도 굳이 쓰고 싶다면? application-properties # HTML 에서 th:method에서 PUT 또는 DELETE를 사용해서 보내는 _method를 사용해서 @PutMapping과 @DeleteMapping으로 요청을 맵핑. spring.mvc.hiddenmethod.filter.enabled=true 타임리프 .. 2020. 5. 4.