@Transactional
    public SelectedChecklistResponse readChecklistById(User user, long id) {
        Checklist checklist = checklistRepository.getById(id);
        validateChecklistOwnership(user, checklist);

        List<Integer> maintenanceIds = readChecklistMaintenancesByChecklist(checklist);
        SelectedRoomResponse selectedRoomResponse = SelectedRoomResponse.of(checklist, maintenanceIds);
        List<SelectedOptionResponse> options = readOptionsByChecklistId(id);
        List<SelectedCategoryQuestionsResponse> selectedCategoryQuestionsResponse = readCategoryQuestionsByChecklistId(id);
        boolean isLiked = checklistLikeRepository.existsByChecklist(checklist);

        return new SelectedChecklistResponse(selectedRoomResponse, isLiked, options, selectedCategoryQuestionsResponse);
    }
@DisplayName("작성된 체크리스트 조회 성공")
    @Test
    void readChecklistById() {
        // given
        roomRepository.save(RoomFixture.ROOM_1);
        checklistRepository.save(ChecklistFixture.CHECKLIST1_USER1);

        // when
        SelectedChecklistResponse selectedChecklistResponse = checklistService.readChecklistById(UserFixture.USER1, 1L);

        // then
        assertAll(
                () -> assertThat(selectedChecklistResponse.room().roomName()).isEqualTo("살기 좋은 방"),
                () -> assertThat(selectedChecklistResponse.room().address()).isEqualTo("인천광역시 부평구")
        );
    }