2023-12-29 cbthub

gosu·2023년 12월 29일
0
post-thumbnail
post-custom-banner

지금껏 한 일

DB 구조 변경

  • thymeleaf에서 db와 연동하는 것에서 엄청나게 어려움을 느꼈다.
  • 왜냐하면 다음과 같이 ElementCollection으로 RDBMS에서 배열을 사용하려 했기 때문에 연동하는 것이 어려웠다.
@ElementCollection
private List<String> options;

@ElementCollection
private List<String> choices;
  • 이 구조를 다음과 같이 변경하고 thymeleaf의 구조까지 전부 변경하여 훨씬 쉽게 데이터를 연동할 수 있었다.
@Embedded
private Options options;

@Embedded
private Choices choices;
@Embeddable
@Getter @Setter @AllArgsConstructor @NoArgsConstructor @ToString
public class Options {
    private String option1;
    private String option2;
    private String option3;
    private String option4;
    private String option5;
}

QuestionLogForm 작성

  • 문제를 풀었을 때 정보를 받는 새로운 DTO를 개설하였다.
package rimgosu.cbthub.controller.forms;

import lombok.*;
import rimgosu.cbthub.domain.logs.QuestionLogType;
import rimgosu.cbthub.domain.question.MultipleChoiceAnswers;
import rimgosu.cbthub.domain.question.OX;

@Getter
@NoArgsConstructor
@AllArgsConstructor
@ToString
@Setter
public class QuestionLogForm {

    private Long memberId;
    private Long questionId;

    private QuestionLogType questionLogType;

    private OX choseMultipleChoiceAnswer1;
    private OX choseMultipleChoiceAnswer2;
    private OX choseMultipleChoiceAnswer3;
    private OX choseMultipleChoiceAnswer4;
    private OX choseMultipleChoiceAnswer5;

    private OX choseOxAnswer;
    private String choseSubjectiveAnswer;

}

thymeleaf 새로작성

  • 기존 fragment로 쪼개진 문제를 그냥 쪼개지 않기로 하였다.
  • 문제를 볼 때 다음과 같이 나온다.

TODO

  • 각 버튼을 누를 때 색이 변하며, input hidden 태그의 값이 변경되는 알고리즘 구현
  • 정답 확인을 누르면 정답에 색이 변하는 알고리즘 구현
  • 다음과 같이 하려면 비동기 통신을 해야한다.
profile
개발자 블로그 ^0^
post-custom-banner

0개의 댓글