크게 안드, iOS, 서버로 나눠서 프로젝트를 진행하게 됐는데 난 공부도 할 겸 서버를 한다고..했다..!
...화이팅! 💪
우선, 급하게 관련 강의를 듣고(spring 포스트 참고) 테이블 관계를 그려보았다.

지금은 이 정도만 구현함 (사용자 정보, ox 퀴즈, ox 오답 정보)
1. 사용자 정보에 프로필 사진, 배경 음악 정보 추가될 예정
2. 지금 서버를 나 포함 2명이서 하고 있는데 나처럼 외래키를 사용한 버전과 외래키를 없앤 버전이 있다.
3. 외래키를 잘 쓰면 좋을 거 같은데, 아직 내 수준에서는 DB관리가 어려워질 거 같아서 고민이다..
userId🔎 User.java
@IdClass 사용@EmbeddedId를 사용했었는데, 특정 column 참조가 어려워서 @IdClass로 변경stageNum + quizNum🔎 GameOXQuiz.java
🔎 GameOXQuizKeys.java
serialId -> 자동으로 증가User 테이블의 userId 참조GameOxQuiz의 복합키 stageNum, quizNum 참조| 기능 | Method | URL | Request | Response |
|---|---|---|---|---|
| 회원가입 | POST | api/users/signup | { "user_id":"123abc", "password":"abcd1234" } | succes { "code" : 200, "message" : "Success" } fail { "code" : 500, "message" : "Fail" } |
| 로그인 | POST | api/users/login | { "user_id":"123abc", "password":"abcd1234" } | succes { "serial_id": 1, "user_id": { "user_id": "123abc", "password": "abcd1234", "nickname": "도드리" }, "gameOXQuiz": { "stageNum": 1, "quizNum": 1, "quiz": "가야금은 12줄이다." "answer": 1 } } fail { "code" : 500, "message" : "Fail" } |
| 닉네임 입력/수정 | PUT | api/users | { "user_id":"123abc", "nickname":"도드리" } | 123abc |
| 회원 정보 조회 | GET | api/users | { "user_id":"123abc", "password":"abcd1234", "nickname":"도드리" } |
| 기능 | Method | URL | Request | Response |
|---|---|---|---|---|
| ox문제 목록 | GET | api/ox-game/questions | { "stageNum":1, "quizNum":1, "quiz":"가야금은 12줄이다.", "answer":1 } | |
| 오답노트 가져오기 | GET | api/ox-game/wrong-questions | { "serial_id": 1, "user_id": { "user_id": "123abc", "password": "abcd1234", "nickname": "도드리" }, "gameOXQuiz": { "stageNum": 1, "quizNum": 1, "quiz": "가야금은 12줄이다." "answer": 1 } } | |
| 오답노트에 문제 추가 | POST | api/ox-game/wrong-questions | { "user_id": { "user_id":"123abc" }, "quiz":{ "stageNum":"1", "quizNum":"1" } } | { "serial_id": 1, "user_id": { "user_id": "123abc", "password": null, "nickname": null }, "gameOXQuiz": { "stageNum": 1, "quizNum": 1, "quiz": null "answer": 0 } } |
| 오답노트에서 문제 제거 | DELETE | api/ox-game/wrong-questions/{id} | { "id":"13" } | succes { "code" : 200, "message" : "Success" } fail { "code" : 500, "message" : "Fail" } |
🔎 UserController.java
GETPOSTPUTPOST 🔎 LoginCheck
: 입력한 정보가 user 테이블의 정보와 일치하는지 확인
🔎 findByUserId
: userId에 맞는 해당 유저의 오답 정보 가져옴
WrongQuiz 테이블의 userId가 String 타입으로 선언이 안 되어있고, User 테이블의 기본키를 참조하는 형식으로 되어 있어서 그런가 자꾸 에러가 났음Querydsl 방법도 찾아보고 하루종일 구글링만 한듯@EmbeddedId로 설정한 복합키는 Querydsl가 어렵다는 글을 보고 @IdClass로 갈아탄 것도 있음..Querydsl이 내 생각처럼 안 돼서,, 결국 SQL 쿼리 사용🔎 GameOXQuizController.java
GETPUT🔎 WrongQuizController.java
GET POSTUser 테이블에 프로필 사진, 배경 음악 정보 추가하기H2 Database 쓰면서 테스트하고 있는데 할 때마다 정보 입력하는 거 너무 귀찮다..AWS 공부하기