오늘은 사람들에게 유저 테스트를 부탁하는 날이었다. 유저 테스트용으로 배포하기 전에 마지막으로 버그 수정 및 기능 개선을 하였다. 6가지 진행하였다. 1. My Team 관련 예외처리 My Team에 해당하는내 팀 정보,우리 팀 매치 신청 내역,우리 팀 매치 등록 내역 에 대하여 1. 팀이 아예 없을 때 2. 각각 데이터가 없을 때 로 나누어서 예외처리를 진행하였다. 1. 팀이 아예 없을 때는이 페이지로 리다이렉트 하도록 일괄 수정하였고 2. 팀은 있는데 각각 데이터가 없을 때는 이런 형태의 문구를 렌더링 하도록 했다 2. Drawer 로그아웃 부분 수정 Drawer 부분과 Header 부분2곳에서 로그아웃 버튼을 지원하는데Drawer 부분은 초기에 사용하던 다른 함수를 사용하고 있던 버그를 수정하였다...
전체 글
오늘은 프로젝트 프론트엔드에서 발생한 버그들을 해결하고자 했다. 일단 발견한 문제는 2가지가 우선 있었다. 1. 로그아웃 시 직접 새로 고침을 해야 로그인이 가능한 버그 수정 일단 기본적으로 인증된 사용자(localStorage에 유효한 토큰이 있는 사람)이면로그아웃 버튼이 보이고인증이 되어 있지 않은 사용자(localStorage에 유효한 토큰이 없는 사람)이면로그인, 회원가입 버튼이 보인다. 위 사진을 보면 로그아웃 버튼이 보이고 로그인 된 사용자라는걸 알 수 있다. 문제가 무엇이냐면 먼저 로그아웃 버튼을 누르면 화면상으로 로그인과 회원가입 보이는 걸 확인할 수 있고 localStorage도 잘 비워진걸 볼 수 있다. 그런데 로그인 버튼을 누르면 아무 반응이 없는 버그가 있었다. 새로고침으로 해결할 ..
1.[문제의 해결 방안]1-1. [의사결정 과정] [설명 할 이슈] 매 API 요청 시 마다 JWT 검증이 진행 될 때(Spring Security Context Holder 내의) UserPrincipal에 Role을팀이 생성될 때 생성한 유저가 그 팀의 Leader로 권한이 바뀐다거나팀 내의 멤버들을다시 Member로 돌려놓는 등localStorage에 있는 토큰 정보를 갱신하지 않으면갱신 되지 않는 문제 발견Spring Security Context Holder 내 UserPrincipal 정보가권한 변경이 있을 때 JWT를 다시 재생성 및Sub_Leader로 바꾸거나Leader가 팀 내 백오피스 API를 통해갱신하는 형태로 로직이 있었는데해당 JWT검증이 성공하면 토큰내의 넣어놓은 Role(권한)..
오늘은 프로젝트 발표날이었다. 오후 2시에 발표였기에 오전중에는 발표 자료 및 발표를 어떤식으로 할껀지 점검하는 시간을 보냈다. 팀원들은 dev에 각 버전별, 릴리즈, 메인에 리드미 작성을 해주셨다. 발표가 끝난 후 튜터님 피드백은 기술 적용에 이유를 찾으려고 한 부분들에 대해 칭찬해주셨고 레디스 메모리 관리 방식에 대해 질문을 주셔서 인기 검색어 관련 TTL주기에 맞춰서 메모리를 비워주는 방식에대해 말씀드리면서 피드백이 진행되었다. 오늘 하루 회고 및 프로젝트에 대한 KPT 회고를 하면서 하루를 마무리 하였다. 오늘의 느낀점앞으로도 어떤 프로젝트를 진행하더라도 기술들에 대해 선택을 할 때에 꼭 이유를 찾으면서 진행 해야겠다고 생각했다.
프로젝트 발표 전날이기에 오늘은 발표준비 위주로 하루를 계획했다. 담당으로 PPT를 만드는 역할에 배정되어 PPT를 만들며 하루를 보냈다. 애견과 관련된 어플리케이션이기에 강아지가 많이 들어간 PPT를 구성하였고 ChatGPT를 활용해 여러 강아지와 관련된 그림을 받고 선별하여 적용하였다. 내용 구성은 # 프로젝트 소개# 시연 영상# KPT 기반# 소감 으로 구성하였다. K : KeepP : ProblemT : Try 우리가 잘한 부분고쳐야 할 부분다음에 시도하고 싶은(아쉬운) 부분으로 나누어 발표하는 방식으로 구성하였다. KPT부분 제외 완성하였다. 오늘의 느낀점너무 좋은 팀원들과 함께한 프로젝트 기간이 끝나가는게 너무 아쉬웠고 발표 스크립트만 잘 준비해서 유종의미를 거두고 싶다는 생각을 하였다.
오늘은 프로젝트 마무리 하기 2일전이었기 때문에 다음날 발표 준비에 대비하여 팀 목표는 오늘 내 프로젝트를 거의 마무리하는 방향으로 설정하였고 필자는 기존 프로젝트 외에 추가적으로 난이도 상 부분 동시성 이슈를 Redis Lock을 활용해 해결하는데에 시간 투자를 하였으나 여러 오류들에 지연되다 결국 오늘내에 끝내지 못하였다. 아마 적용하지 못하고 발표자료에 넣을 것 같다. 오늘의 느낀점Redis Lock 이전에 테스트 코드에 대한 이해도가 부족함을 느꼈고 프로젝트 기간에도 시간 분배를 잘 하여서 지급 받은 강의도 들으면서 할 수 있었으면 좋겠다고 생각했다.
프로젝트 넷째날 오늘은 dev - 0.0.2(난이도 중 cache 과제 필수 구현 마무리)를 마무리 하는걸로 팀 목표를 잡았고 필자의 개인 하루 계획은 난이도 상 과제인 동시성 제어 프로젝트의 필수 구현 부분 중 동시성 이슈를 검증할 수 있는 테스트 코드 작성을 맡았다. ExecutorService, CyclicBarrier 활용하여 동시성 이슈를 검증하는 테스트 코드를 작성했다. 기존에 만들었던 Todo 프로젝트에 적용해보았고 executors 를활용하여 쓰레드 10개에 대한 테스트를 진행하였고 CyclicBarrier 10으로 설정하여 10개의 작업이 쌓이면 한번에 하도록 진행하였다 val results = Collections.synchronizedList(mutableListOf()) 여러..