Just Do IT!
[DoDream 프로젝트] 6주차 회고 본문
드디어! 배포를 끝냈다! 정말 마지막의 마지막까지 오류 때문에 고생을 많이 했지만...그래도 배포가 잘 되어서 다행이다.
1. 프론트 연동 마무리
수요일날까지 내가 맡은 기능들을 연동을 다 완료했다.
뭔가 이건 내가 프론트엔드 기능을 주로 맡아서 진행해서 그런지 모르겠지만, 피그마랑 똑같은 화면에서 기능이 잘 동작되는 것까지 봐야 완성한 기분이 든다.
백엔드 기능은 항상 포스트맨으로 테스트했는데, 테스트가 잘 되는 걸 확인했음에도 화면에서 동작하는 것까지 봐야만
잘 동작하는 것 같은 그런 느낌...? 이건 나만 그렇게 생각하는 걸수도 있다.
알람 기능을 가져올 때 약간 걱정했었는데, 걱정했던 것과는 달리 수월하게 연동할 수 있었다.
사실 알림 기능이야 백엔드 단에서 구현을 다 하고 프론트 쪽에서는 알람을 조회하고 읽고, 삭제하는 기능만 구현하면 되는 거여서 그냥 백엔드 쪽 코드를 이해하고 연동하면 끝이었다.
개인적으로, 이번에 내가 맡지 않았지만 해보고 싶던 부분들이 있다.
바로 알림 기능과 배포.
이전에 aws로 배포를 한 적이 한 번 있었는데 그 때는 얼레벌레 수업 쫓아가느라 어법버했던 기억이 있다.
그래서 교육이 끝난 뒤에 한번 실습해보고 싶다는 생각은 있다.
2. 로그인 오류 해결
이건 내가 해결한건 아니고 강사님께 질문해서 얻은...아주 소중한 오류 해결이다...
블로그에 쓰려고 했는데 일단은 간략하게나마 회고글에 적어본다.
이번 프로젝트에서 로그인 기능은 소셜 로그인밖에 없었다. 그래서 unique key를 따로 지정하지 않았는데, 그거 때문에 뭔가 로그인 과정에서 좌충우돌이 있었다. 토큰을 가져오고, 또 토큰을 통해 분별할 때 사용자의 id로 구분했는데 그게 문제였다. (사실 문제는 아니고, 내가 생각을 못한 거지만.)
그 id는 DB에 저장될 때 auto increment로 자동 증가되는 id값이었다.
즉, DB에 저장되기 전에는 id값이 존재하지 않는 것이다.
그런데 코드에서는 id가 있는지 확인하고 DB에 저장하는 순서를 거쳤기 때문에 계속 오류가 생겼던 것이다.
아, 여기서 오류는 맨 처음 로그인하려는 사용자가 계속 무한루프로 '토큰 재발급 실패'하는 문제였다.
이걸 해결하려고 했었는데 프론트 코드를 바꿨다가 백엔드 코드를 봤다가...꽤나 긴 시간을 들였다.
마지막에 결국 id 문제인 걸 알게 되면서 DB에 저장을 먼저 해주는 걸로 코드 순서를 바꾸니까 더이상 오류가 나지 않았다.
이거 떄문에 오전 시간을 전부 다 썼다...배포 못할까봐 약간 쫄렸었다 ㅋㅋㅋ
3. 알림 데이터 수정
배포를 한 뒤 (팀원 분이 맡았다) 알림 부분을 확인하는데,
이런 식으로 제대로 알림이 나오지 않았다.
이 부분은 스터디에 있는 문제 페이지의 댓글 알림이었는데, 특정 문제의 이름이 나오지 않는 문제였다.
보니까 객체 형식이라 저런 식으로 잘 나오지 않고 있었다.
String content =
savedComment.getUser().getUsername() + "님이 "
+ studyAnswer.getStudy().getTitle() + "의 "
+ studyAnswer.getUserAnswer().getQuestion() + "에 "
+ "댓글을 남겼습니다.";
String url = "/api/study/answer/" + studyAnswer.getId() + "/comments";
이렇게 getQuestion()을 통해서 질문을 받아왔는데, 이게 객체 형식이라 제대로 찍히지 않았다.
바꾼 코드 내용 ↓
// 스터디 문제 댓글 알림 - 스터디 방장에게 전송
User studyLeader = studyAnswer.getStudy().getUser();
String content =
savedComment.getUser().getUsername() + "님이 "
+ studyAnswer.getStudy().getTitle() + "의 "
+ studyAnswer.getUserAnswer().getQuestion().getQuestion() + "에 "
+ "댓글을 남겼습니다.";
String url = "/api/study/answer/" + studyAnswer.getId() + "/comments";
그래서 이런 식으로 바꾸었다.
그리고 Question entity도 수정했다.
@Override
public String toString() {
return question; // question 필드 값만 반환하도록 설정
}
question 필드 값만 반환하도록, 그래서 string으로 반환이 되도록 추가했다.
이렇게 코드를 수정하고 나니 드디어 알림이 정상적으로 나오기 시작했다.
금요일날 남아서 하고 나니까 이제 진짜 배포하고 끝인 기분이 든다.
아직 학원이 끝나진 않았고 다음주 화요일에 발표까지 해야 끝이 나긴 하지만,
배포를 하고 나니 뭔가 후련하다. 프론트와 백엔드 둘다 해본 게 처음이라 너무너무 힘들었지만...
그래도 배포한 페이지를 보고 나니 뿌듯하고 잘 만든 것 같은 기분이다. (항상 내 프로젝트가 끝나면 이런 기분이다)
앞으로 어떤 식으로 추가 공부를 해야 할지 고민이지만,
일단은 프로젝트가 끝났다는 게 너무너무 좋다.
배포한 사이트
깃허브 repository
https://github.com/DoDreamTeam
'프로젝트 > DoDream 프로젝트' 카테고리의 다른 글
[DoDream 프로젝트] 5주차 회고 (4) | 2024.11.03 |
---|---|
[DoDream 프로젝트] 4주차 회고 (4) | 2024.10.27 |
[DoDream 프로젝트] 3주차 회고 (1) | 2024.10.20 |
[DoDream 프로젝트] 1-2주차 회고 (1) | 2024.10.11 |