스파르타코딩클럽/항해99

항해99 6기 DAY 35, 36 TIL _ 22.04.11, 22.04.12

예령 : ) 2022. 4. 13. 08:28

두 번째 웹 미니 프로젝트가 시작되고 벌써 5일이 지났다. 팀 빌딩을 한 첫 날에는 새로운 조원분들을 만나고 프로젝트 기획을 함께했다. 

미리 항해 전시페이지에서 어떤 프로젝트가 진행됐었는지 구경을 했었는데, 좋게 봤던 깃헙들을 모두 북마크해서 이번 프로젝트를 정할 때 함께 공유해보았다. 

생각보다 빨리 주제를 정하고, 역할 분담도 금방해서 순조로운 시작이었다. 프론트엔드 분들이 정말 잘 해주시고, 와이어프레임도 너무 알맞게 또 빠르게 만들어주셔서 신기하고 재미있었다. 실제 코드를 작성하기 전에 API 설계를 진행했다.

 

API 설계가 중요하다는 건 알고 있었지만 정말 크게 느꼈던 것 같다. 실제로 구현을 해보니 API 설계를 수정해야하는 부분도 있었고, 그때마다 매번 죄송스러운 마음으로 말씀을 드리러 갔던 기억이 난다. 오늘 겪었던 내용 중에 하나는 댓글을 조회하는 API와 댓글 하나를 수정하는 API에서 문제가 있었다. 

 

댓글을 수정할 때에는 PUT Method를 사용하면 되지만,  수정하기 전에 기존 내용을 보여주기 위한 API도 설계를 했었다. 그래서 해당 게시글의 전체 댓글을 조회하는 API의 URL은 "api/comments/{postId}" 이렇게 설정을 했고,

수정하고자 하는 댓글의 내용을 가져오기 위한 API URL은 "api/comments/{commentId}" 이렇게 설정을 했었다. 여기서 문제가 된 건 두 API다 GET 요청을 받는 친구들이었는데, 뒤에 붙은 id 값이 다 Long 타입으로만 인식이 돼서 둘 중 하나의 API가 인식되지 못했다. 

 

그래서 댓글 수정을 위한 GET 요청 API를 "api/comments/edit/{commentId}" 으로 수정했다. 무튼! API를 설계할 때 처음부터 좀 더 꼼꼼하게 예외적인 부분까지 정립을 해서 잘 짜놓으면 각자 작업을 할 때 훨씬 수월해질 것 같다는 생각을 했다.

 

백엔드끼리 역할 분담을 진행했는데, 내가 JWT를 이용해서 로그인을 구현해보고 싶다고해서 로그인 파트를 맡았다. 사실 처음에는 강의에서 배운 내용만 가지고 하면 금방해볼 수 있겠다는 생각이 들었는데, 뭔가 이 흐름을 이해하려니까 쉽지 않았던 것 같다. 클라이언트로부터 요청을 받아와서 어디에서 토큰을 생성하고, 또 어느 부분에서 인증을 받아서 정보를 넣어주고 토큰을 돌려주게 되는 것인지를 이해하려고 시간을 정말 많이 투자를 했는데, 결국 혼자서는 너무 어려워서 해결하지 못했다. 

 

또 로그인에서 생겼던 문제가 하나 있는데, 바로 Controller를 타지 않고 WebsecurityConfig파일을 통해서 formlogin으로 로그인이 진행된다는 점이었다. 그렇게 되니 API 설계 시에 약속했던 response에 형식에 맞게 data를 보내는 게 어렵게 됐다. 그래서 로그인 성공 시 발급된 토큰 안에 있는 User의 정보를 풀어서 사용해주시기로 했다. 

 

springsecurity 쪽 공부는 진짜 해도해도 끝이 없는 것 같다. 그래도 이번 JWT를 공부하면서 다른 분들과 함께 큰 흐름을 잡아보고 각 클래스마다 순서를 찍어보면서 데이터가 어떻게 이동하는 지 확인해서 조금은 그 흐름을 알 것도 같다.

 

오늘은, 프론트엔드와 백엔드 모두 1차로 구현하기로 했던 기능은 모두 완료를 해서 각자 합쳐본 다음 서버에 배포해보는 작업을 진행했다. 백엔드끼리 파일을 합치는 데 꽤 쉽지 않았다. 각자의 브랜치를 파서 작업을 했었는데, 그 순서가 잘못된 건지 중간에 약간의 오류가 있어서 회원가입과 로그인, 메인페이지와 상세페이지 이렇게 두 파트로 나눠서 각각 머지를 한 다음, 그 두 브랜치를 머지하는 방식으로 진행했다. 그런데 기능을 합쳐놓고 나니 원래 되던 기능들이 갑자기 안되는 오류가 발생했다. 

 

302 리다이렉션 에러,,, 정말 많이 만났다. securityconfig 파일에 경로를 추가를 해주니 해결되긴했는데 아직 정확한 원인이나 다른 해결방법은 찾지 못했다.ㅠㅠ

 

이틀 연속 늦게 자서 CS 스터디에 참여하지 못했는데, 오늘은 아예 밤을 새서 얼른 CS 스터디를 하고 돌아와서 한 두시간이라도 눈 좀 붙여야겠다. 지금도 글을 쓰는 데 무슨 말인지 정리가 잘 되지 않는다 ㅎㅎ,,, 

 

졸면서 작성해서 오타도 많고 맥락도 이상하지만 내일의 덜 졸린 내가 읽어보고 다시 숮엏나 수정해야겠다. 악