2주차

page디바운싱과 쓰로틀링page커스텀 훅 만들기

2주차 과제의 시작은 자란다의 미션이었다.‌ 이번 과제는 구현 난이도 자체는 어렵지 않았다. 다만 8명이 함께하는 작업이라는게 어려웠다. 나는 이전에 스프린트에 기반한 프로젝트를 경험하고 정리한 적이 있기에 해당 자료를 팀원들에게 공유하고 작업을 시작했다.

팀원 8명은 아래처럼 나눠져서 작업을 했다.

  1. 로그인 / 회원가입

    • 로그인 (2명)

    • 회원가입 (2명)

  2. 어드민페이지 / 전체 레이아웃

    • 어드민페이지 테이블 및 페이지네이션 (2명)

    • 어드민페이지 검색 기능, 어드민페이지에서 유저 추가, 전체 레이아웃, 권한별 라우팅 및 사소한것들... (2명, 내가 참여)

처음에는 어드민페이지의 검색기능만을 담당했지만, 빨리 끝난 관계로 다른 부분을 많이 맡아서 진행했다. 나는 나리 님이랑 같이 작업을 했다. 다른 팀원들은 개인적으로 작업을 진행한거같은데 페어프로그래밍을 굉장히 좋아해서 양해를 구하고 vscode-liveshare 를 이용해서 진행했다. 구현에 있어 가장 중요시했던건 아래의 3가지다.

  1. (당연하지만) 기능은 완벽해야한다.

    • 콘솔창에 errorwarning 은 절대 나와서 안된다.

  2. 코드는 재사용이 가능해야한다.

    • 여기서 말하는 재사용은 해당 프로젝트 뿐 아닌 다른 프로젝트에서도 재사용 할 수 있어야한다.

  3. 코드의 품질은 우수해야한다.

1, 2, 3 기준에 부합하는 코드를 작성하기 위해서는 혼자보다는 같이가 중요하다. 그런 의미에서 이번 페어프로그래밍 방식은 성공적이었던거 같다.

검색 기능은 잘 되는가?

(내 생각에는ㅎㅎ...)잘된다. 처음에는 내용을 입력하고 검색 버튼 을 클릭하면 테이블에 검색 된 내용을 반영하게 만들었지만 이후에 검색창에 입력한 내용을 바로 테이블에 적용하게 수정했다. 성능상에 한가지 신경쓴게 있는데, 입력될 때 마다 테이블에 반영을 하게 되면 비동기관련해서 분명 성능상에 이슈가 있을 수 있으니 debounce 기능을 사용해서 이슈를 해결했다. 디바운스와 쓰로틀에 대해 학습을 하고 정리했다.

재사용 가능한 코드를 만들었는가?

만들었다. 재사용 가능한 코드로 2가지 커스텀 훅 을 만들었다. 하나는 컴포넌트 외부의 클릭을 감지하는 훅이고 두번째는 디바운싱 훅이다. 이 두가지 모두 인터넷에 이미 많이 훅으로 만들어져 있어서 구현 자체는 너무 쉬웠다.

따라서 구현이 아닌 리액트 훅의 동작원리에 대해 학습을 했다. 이전에 리액트 공식홈페이지를 몇번 읽어봐서 다시 읽으니 리마인드도 되고 정리도 쉽게 할 수 있었다.

코드의 품질은 우수한가?

좋은 코드는 뭘까? 완벽한 기능? 재사용 가능한 코드? 누구나 단 한번 보면 이해할 수 있는 코드? 로직 분리가 잘 된 코드? 나열한 4가지 말고도 코드의 품질을 확인할 수 있는 지표는 더 있겠지만 만약 위 4가지 지표로만 따져본다면 이번 프로젝트의 코드 품질은 정말 엉망이다. 엉망도 이런 엉망이 없다. 이유를 생각해보면 프로젝트 팀장이 없었고, 그렇다고 해서 소통이 좋았는가? 소통 또한 좋지 못했다. 나 또한 다른 사람들의 코드에 관심을 신경쓰지도 않았다.

엉망인 요소를 나열해보자

  1. 일치되지 못한 폴더, 파일이름

  2. 파일 구조

  3. 상수를 사용하지 않음, 매직넘버가 너무 많이 쓰임

  4. 10줄짜리 코드를 100줄로 만들어버림

  5. 과제가 진실로 원하는 바를 파악하지 못했음

    • 각 권한 별로 보여줄 수 있는 페이지를 직접 어드민이 설정해줄 수 있어야하는데 그 기능을 넣지 않았다.

    • 예로 들면 선생님이 볼 수 있는 페이지를 어드민이 관리자페이지에서 동적으로 수정할 수 있는 기능!

다른 사람에게 보여주기 부끄럽다. 조금이라도 리팩토링을 해야하지 않을까..

총평

결국 제시간에 제출은 했기에 표면상으로는 성공이지만, 내부적으로는 실패했다고 생각한다. 그러면 다음 프로젝트 때는 어떻게 해야할까?

  1. 프로젝트 팀장을 정하자. 없으면 그냥 내가하자.

  2. 내가 작성한 코드도 다른사람에게 리뷰 받고, 다른 사람의 코드는 내가 리뷰하자.

Last updated