회고 - final project

unow30·2021년 2월 4일
0
  • 파이널 프로젝트가 끝났다. 서버쪽은 작동이 잘 되지만 클라이언트 쪽이 완성이 안되어 반쪽짜리 프로젝트로 끝이 났다.
    react 공부를 더 잘 했다면 서버를 마무리하고 프론트엔드 팀원들을 도와불 수 있었을텐데 아쉽다. 팀원들이 마무리를 하길 원해서 클라이언트까지 완성하기로 했다.

  • 기본적인 레이아웃은 완성되었다. 문제는 axios로 서버에서 데이터를 요청하는 과정이 문제다. useEffect로 데이터를 받아와야 하는데 받아오는 위치가 잘못되었는지 component에서 데이터를 받지 못하는 상황이 계속되었다. react hook 기능을 code sendbox 예시들을 보며 연습하고 있다.

  • 서버쪽을 주로 담당해서 요구했던 기능은 완성하였다.

    • user login, logout, findEmail, changePw
    • project create, read, update, delete
    • puzzle(taskcard) create, read, update, delete
    • label create, read, update, delete
    • comment create, read, update, delete
    • calendar create, read
  • 하지만 코드의 모듈화가 잘 되질 않았다고 생각한다.

    • sequelize와 async, await을 이용하여 데이터를 불러오는데, 여러 db table에서 데이터를 불러오다 보니 코드가 지저분해 보였다.
    • if, else대신 try, catch문을 사용하면 좀 더 깔끔하게 작성할 수 있었다.
    • db로 요청하는 메소드(findOne, create, update 등)를 모듈화해서 사용할 수 있을것 같은데 아직 방법을 모르겠다.
  • 구현한 기능 중에서 요청 데이터를 만들기 위해 여러 테이블의 데이터를 하나로 만드는 것과 calendar에 활동기록을 생성하는 방법이 가장 기억에 남는다.

    • 테이블에서 가져온 데이터(객체)를 변수에 담고 다른 데이터와 합쳐서 response로 보내는 방법이 재미있었다. 물론 join 테이블을 이용해 하나의 await findOne/findAll을 이용해서 가져올 수도 있을텐데 아직도 방법을 모른다.
    • 막판에 여러 endpoint의 crud 기록을 calendar에 기록하는 기능을 구현하기로 했다. 고민끝에 찾아낸 방법은 각 controller에 있는 crud 관련 파일에 await calendar.create()기능을 추가하여 행동기록을 테이블에 저장하는 것이었다. 저장된 데이터는 calendar의 날짜칸에 행동기록이 표시가 된다. 하나의 테이블에 모든 유저의 활동기록이 저장되는 것이 좋은 것인가 하는 의문도 들었지만, 효율적인 방법을 찾질 못하여 이대로 진행했다.
  • 클라이언트에서 힘쓴 팀원들과 서버, 배포에 도움을 준 팀원들 모두에게 감사한다. 코드스테이츠 수료 후에도 시간을 내서 프로젝트를 같이 마무리하면 좋겠다.

  • 수료 후에는 리엑트 hook, typescript를 우선 배울 것이다. typescript를 그저 type을 지정하는 방법이라고 생각하고 프로젝트에 집어넣었다가 서버쪽도 완성을 못할 뻔했다. 기초부터 빠르게 배워야 한다.

0개의 댓글