목록프로젝트/EFUB Eday (9)
공hannah부
![](http://i1.daumcdn.net/thumb/C150x150/?fname=https://blog.kakaocdn.net/dn/baV3RF/btspTIH4eLV/5BxpJKkgKZ6P2pNBa3afkk/img.jpg)
해야할 일! 이제 다 끝난 줄 알았는데 D-1 문제 정답 해설에 img가 있다는 사실을 이제서야 깨달았다.... 퀴즈 정답을 맞추면 isAnswer, description과 더불어 image_url도 함께 response 되도록 수정해야 한다 1. Quiz 엔티티 imageUrl Column 추가 @Entity @Getter @NoArgsConstructor public class Quiz { ... @Column(name = "image_url") private String imageUrl; ... } 2. QuizAnswerResponseDto Response 목록에 imageUrl 추가 @Getter @Setter @NoArgsConstructor public class QuizAnswerRespo..
![](http://i1.daumcdn.net/thumb/C150x150/?fname=https://blog.kakaocdn.net/dn/cnfgP0/btsoGiDOIGH/2kRsYZx1xkHEZzfaewHgUK/img.jpg)
해야할 것! 지금까진 예외를 던지기만 하고 처리를 안했다. 예외가 발생한 경우 클라이언트에게 어떤 에러인지 상태 코드랑 에러 메세지 응답으로 보내도록 수정해야한다! 1. 예외처리의 필요성 어플리케이션에서는 다양한 상황에서 예외가 발생할 수 있다. 사용자의 잘못된 요청, 데이터 처리 오류 드응로 인해 예외가 발생할 수 있기에 예외를 적절하게 처리해야만 어플리케이션의 안정성을 보장할 수 있다. 2. 예외처리 내용 2-1 findQuiz QuizService 입력된 'd_day'에 해당하는 퀴즈를 데이터베이스에서 조회하고, 만약 해당 날짜의 퀴즈가 존재하지 않는 경우 IllegalArgumentException 예외를 발생시켜 클라이언트에게 "해당 날짜의 퀴즈를 찾을 수 없습니다." 라는 메세지 전달 //퀴즈..
![](http://i1.daumcdn.net/thumb/C150x150/?fname=https://blog.kakaocdn.net/dn/vu39g/btsoxccJxOU/7KqJtuOCDZJPaQtstpHjGk/img.jpg)
해야할 것! 백엔드 리드분들이 달아주신 코드리뷰 사항 확인 및 수정 1. optionId → optionNumber로 이름 수정 및 퀴즈 출력에 optionNumber 추가 QuizRequestDto optionId → optionNumber로 이름 수정 @Getter public class QuizRequestDto { private int optionNumber; } OptionResponseDto optionNumber 추가 @Getter @NoArgsConstructor(access = AccessLevel.PROTECTED) public class OptionsResponseDto { private Integer optionNumber; private String content; private ..
![](http://i1.daumcdn.net/thumb/C150x150/?fname=https://blog.kakaocdn.net/dn/ckP9rW/btsoCjuGIC7/2OF2KifwyKN8kzGXyOwoUk/img.jpg)
해야할 것! 어제 했던 MemberTitle뿐만 아니라 MemberQuiz도 정답을 맞출시 isCorrect를 true로 바꿔주어야 한다 MemberQuiz Entity 만들어 주기 1. MemberQuiz 엔티티 @Setter @Entity public class MemberQuiz { @Id @GeneratedValue(strategy = GenerationType.IDENTITY) @Column(name = "member_quiz_id") private Integer id; @Column(nullable = false) private Boolean isCorrect; @ManyToOne @JoinColumn(name = "member_id", nullable = false) private Membe..
![](http://i1.daumcdn.net/thumb/C150x150/?fname=https://blog.kakaocdn.net/dn/5Xkpw/btsooLFs8Mu/ktM40ZfNPDSNKxAldIY4l1/img.jpg)
구현해야 할 것! 앞서 문제 옵션 번호로 Request를 보내면 해당 옵션이 true인지 false인지 응답해주는 API를 작성했다. 이제 해당 옵션이 true인 경우 사용자의 칭호를 업데이트 해주고 level을 올려주는 기능을 구현해야 한다 MemberTitle 객체 만들어주기 1. MemberTitle.java @Entity @Getter public class MemberTitle { @Id @GeneratedValue(strategy = GenerationType.IDENTITY) @Column(name = "membertitle_id") private Long id; @Column(name = "get_title", nullable = false) private Boolean getTitle; ..
![](http://i1.daumcdn.net/thumb/C150x150/?fname=https://blog.kakaocdn.net/dn/bxoKVC/btsqS8qTc1I/TcgJD2IujKkQjEqMeR0AI0/img.jpg)
구현해야 할 것! - 옵션을 선택해 Request를 보내면 해당 옵션이 정답일시 true와 문제의 해설을 반환하고, 정답이 아닐 시 false와 null값을 보내기 API 명세서 퀴즈 정답을 확인하는 api URI: /quiz/{d_day} RequestBody { "optionId" : 2 } Success Response { "isAnswer" : true, "quizDescripiton" : "이화여자대학교의 대표 색상은 초록색, 즉 이화그린이에요! 1908년에 배꽃의 녹색 잎새를 상징하는 학교색으로 지정되었다고 합니다:)" } { "isAnswer" : false, "quizDescription": null } 퀴즈 선지 번호 Column 추가 (정답 비교용) API를 작성하기 전에 request..
![](http://i1.daumcdn.net/thumb/C150x150/?fname=https://blog.kakaocdn.net/dn/c2XPTC/btsopWMW8qu/cyTH3dHXJexmStbEGE14B0/img.jpg)
구현해야할 것! - 남은 D-day별로 url을 나누어 해당 날의 dDay, 주제, 질문, 답 선택 리스트를 응답해야한다 ERD API 명세서 퀴즈 내용 보기 method: GET URL: /quiz/{d_day} Request Body: 없음 Success Response { "dDay" : 1, "topic" : "이화 소식", "quizContent" : "이화여대 공식 색상은 __색이다", "optionList" : [ {"optionId": 1, "content": "하얀색"}, {"optionId": 2, "content": "초록색"}, {"optionId": 3, "content": "분홍색"} ] } 작성한 API 1. Quiz.java 퀴즈 엔티티 클래스 @Entity @Getter @..
![](http://i1.daumcdn.net/thumb/C150x150/?fname=https://blog.kakaocdn.net/dn/bbjfW4/btsonSStdmi/3ylVicF8ReA445FKCKpkF0/img.jpg)
프로젝트 기획안 프로젝트 명세 예비 이화인을 위한 퀴즈 서비스 예비 벗들이 개강 D-7부터 하루하루 열리는 퀴즈를 맞추며 이화여대에 대해 알아가는 퀴즈+정보 사이트입니다. 이화인으로서 알아두면 쓸모 있는, 알아두면 좋을 지식과 꿀팁들을 받아갈 수 있는 유용한 사이트가 될 것입니다. D-7부터 퀴즈를 하나씩 맞출 때마다 메인 화면에 있는 학교 지도에 색이 입혀지면서, 개강 날에는 색이 모두 칠해진 학교 지도를 얻을 수 있습니다. 기능 명세 페이지 기능 로그인 페이지(랜딩 페이지) -카카오톡 로그인 -프로젝트 제목 메인 페이지 -지도 -구역 분획되어 있는 지도 (퀴즈 풀러가기) -오늘 이화의 퀴즈는? (퀴즈 풀러가기) -디데이, 칭호, 사이드바 표시 메인 페이지 -사이드바 -내 정보(닉네임, 이메일) 보기 ..