뉴스피드 프로젝트 5일차
진행상황
- conflict 문제를 생각하여 중간중간에 미리 merge를 하고 최종 merge를 했습니다.
- 최종 merge 후 Postman을 통해 기능이 단순하게 동작하는 것이 아닌 여러 문제들을 생각하여 테스트 해봤습니다.
- ex) 로그인 시 로그인 정보가 DB에서 아이디 비밀번호 모두 일치하는지 확인 후 로그인이 가능하게 처리하기
- api 설계 문제로 인한 api 수정
- 회원 삭제 부분에서의 문제 외래키를 사용하여 연결되어 있는 테이블이 있어 삭제 되지 않는 문제
- 회원 정보 수정 기능에서 바꾸고 싶은 비밀번호의 입력값을 BCrypt를 통해 인코딩 하지 않고 DB에 저장하여 로그인 시 비밀번호가 다르다는 문제
해결과정
- 기능을 추가하면서 api가 겹치는 문제가 발생했습니다. 중간에도 api에 있어 문제가 많다는 것을 알고 이번 기회에 전체적으로 api를 수정했습니다.
- 다만, 기능을 동작하도록 api를 수정하였기 때문에 restful한 api는 아니라고 생각합니다. 추후에 좀 더 restful하게 수정이 필요하다고 생각합니다.
- 회원 삭제 부분에서 생기는 문제
- 외래키로 게시글 테이블과 유정 테이블이 연결되어 있어 회원을 삭제 시 게시글 테이블이 연결되어 있어 삭제 불가능 하다는 에러를 마주했습니다.
- 그래서 선택한 방법은 회원 삭제 시 로직에 회원 고유 번호를 통해 등록된 게시글을 모두 가져와 같이 삭제하게 했습니다.
- 회원 정보 수정 문제
- 로그인 기능은 비밀번호를 인코딩 된 문자를 비교하기 때문에 수정 기능에 인코딩 하는 과정이 없이 DB에 입력값이 그대로 저장되어 있어 비밀번호가 다르다는 에러를 마주했습니다.
- 그래서 회원 정보 수정 기능에 비밀번호 인코딩 로직을 추가하여 문제를 해결했습니다.
회고
- 처음 api를 설계할 때에도 생각보다 복잡하여 잘 설계하지 않으면 나중에 문제가 생기겠구나 느꼈습니다.
기능 구현을 하면서 api 설계로 인한 문제를 접하고 더욱 더 api 설계의 중요성을 느끼게 되었습니다. - 기본적으로 기능 구현 후 테스트 할 때에는 여러가지 문제를 미리 예상하고 방지해야 한다는 것을 느끼는 시간이라고 생각합니다. 단순히 기능 구현을 하는 것이 끝이 아닌 이 기능에 어떤 문제가 발생할 수 있을지에 대해서도 생각해야 한다는 것을 느끼게 되는 시간이었습니다.
'Project > Newsfeed Project' 카테고리의 다른 글
[Project / Newsfeed] - 뉴스피드 프로젝트 6일차 (0) | 2024.02.18 |
---|---|
[Project / Newsfeed] - 뉴스피드 프로젝트 4일차 (0) | 2024.02.13 |
[Project / Newsfeed] - 뉴스피드 프로젝트 3일차 (0) | 2024.02.09 |
[Project / Newsfeed] - 뉴스피드 프로젝트 2일차 (0) | 2024.02.09 |
[Project / Newsfeed] - 뉴스피드 프로젝트 1일차 (0) | 2024.02.07 |