회고38 20231205 퇴근 전 TIL 어드민 페이지 유지보수 도중, 오늘은 꽤 여러 종류의 문제를 마주치고 해결했다. 1. 상이한 두 데이터 구조를 각각 순회해야 하는 경우 -> 순회 한번을 if문 처리로 생략하게 했는데, 향후 확장 사용하기 어려운 구조가 되어 아쉬웠다. 이후 리팩토링하면서 해당 데이터 구조를 손볼 예정 2. toISOString 과 잃어버린 9시간 -> 한 달 전체 날짜 객체를 포함한 배열을 만드려고 하던 도중, 날짜 포맷을 바꾸려고 toISOString 메서드를 사용했다. 그런데 1일부터 31일까지가 아니라, 이전 달 말일부터 이번 달 말일 -1 까지만 나오는게 아닌가 ...? 찾아보니 toISOString은 UTC 시간대라서 우리나라 타임존과 9시간의 시차가 있기 때문이었다 ... 항상 느끼지만 타임존을 다루는 것은 .. 2023. 12. 5. 20231122 퇴근 전 TIL - 게시글 형식의 페이지에서 검색 필터와 게시글 리스트를 구현해두었는데, 여기서 세세한 페이지 이동, 페이지네이션, 검색 필터 유지 등 세밀한 작업이 필요했다. 이때, 한 게시글을 조회했을 때 "목록" 버튼이 존재하는데, 목록 버튼을 통해 게시글 목록으로 되돌아간 경우 기존의 검색 필터, 페이지네이션을 유지해주고 싶었다. -> 기존의 코드는 목록 버튼을 눌렀을 때, 단순히 navigate만 해주어 경로만 바꿔주었고, 다른 동작들에서는 검색 필터와 결과 리스트 값을 초기화해주는것이 의도였기에 navigate 한 경우에도 함께 초기화 코드가 동작하였다. 크게 3가지 경우로 나뉘었다. - 목록 버튼을 클릭하여 게시글 목록으로 이동한 경우 -> 페이지네이션 및 검색 필터 값 유지 - 언어 탭 변경 시 -> 페이.. 2023. 11. 22. 20231120 퇴근 전 TIL - 오늘 배운 점) 해당 상황에서 데이터를 어떻게 다루는지 + 앞으로 어떻게 확장할 가능성이 있는지를 고려해 여러 방안들 중 적절한 방법을 선택할 수 있어야 한다. -> 오늘 드래그앤드롭으로 리스트의 순서를 변경하는 기능을 마무리하던 중, 코드리뷰를 받았다. 구현 상황) 백엔드에 리스트에 순서대로 id만 담아 배열로 전송하면 됌, 즉 배열 내의는 [1,2,3,4] 이런 식으로 1 depth 기존 코드) JSON stringify, parse를 이용해 깊은복사를 해 백엔드에서 초기에 받아온 배열을 복사 -> useState에 초기값으로 전달 -> 새로 만든 state를 순서가 변경될때마다 변경해줌 개선 코드) spread 연산자를 통한 복사로 변경 - stringify, parse가 연산 비용이 더 들어가.. 2023. 11. 20. 20231115 퇴근 전 TIL - 어드민 페이지 권한 관리 코드를 수정하는 업무를 했다. 권한별로 접근 가능한 경로를 컨트롤하는 것이 task였다. 사이드바에서 보여주는 페이지가 각각 부모-자식 관계로 연결되어 있는데, 해당 경로 내에서 CRUD를 위해 이동하는 경로는 API로 받아오는 권한별 경로에 존재하지 않는 상태였다. ex) '/notice' 는 허용 경로에 존재하나 '/notice/create', '/notice/update/21' 등의 경로는 존재하지 않는 상태. 이 상황에서 1. 백엔드 단에서 모든 경로를 추가하여 API로 받아와서 처리하기 2. 프론트엔드 단에서 매핑하여 경로 처리하기 이 두가지 방법이 있었는데, 이미 CRUD는 백엔드에서 미들웨어를 통해 권한 체크하여 동작하므로, 하위 경로들은 매번 추가해주기보다는 프.. 2023. 11. 15. 이전 1 2 3 4 ··· 10 다음