트렐로 클론코딩을 하며 느낀 점들
참조한 사이트
우리 팀 과제의 문제와 해결법
처음에는 기능별로 나누어서 했으나, 결국에는 서로 다른 부분도 구현을 하게 되었다.
그러면서 느끼게 된 점이 있었다.
같은 부분을 서로 다르게 구현한 것이다.
// 팀원의 구현
return res.status(200).json({message: '보드 생성 성공'});
// 나의 구현
return res.status(status).json({message});
위와같이 팀원은 controller 레이어에서 리턴값을 지정했고, 나의 경우 service 레이어에서 res값에 들어갈 것들을 정해서 넘겼다.
사소한 차이지만 이것 때문에 팀원이 만든 것을 내가 수정하면, 최종적으로 res가 뜨지 않거나 하는 일들이 있었다.
결국 그때그때 내가 수정해서 아래와같이 섞인 코드를 만들게 되었다.
return res.status(200).json({message: boardDelete});
또 정말 사소하지만 try-cath문에서 나는 에러를 err
로 내보내고, 다른 팀원은 error
로 내보내서 정말 아무것도 아닌데서 자꾸 오류가 터졌었다.
생각해낸 해결법으로는 초반에 공통된 프로젝트의 뼈대를 만들때, 간단한 기능을 화상회의 또는 live share같은 것으로 만들고, 그 기능에 만들어진 스타일대로 자신의 기능을 구현하는 것이다.
물론 하는 김에 프리티어도 통일하는 것이 좋을 것같다.
다른 팀 과제를 보며 생각한 것
1. 프론트까지 가장 성공적으로 구현한 팀은 진짜 트렐로처럼 카드를 끌면 위치가 바뀌고, 카드를 생성할때 카드 위치를 정할 수 있었다.
전자의 경우 프론트를 구현하지 못했으니 아쉬운 정도였지만, 후자의 경우 개선할 수 있을 것같다.
현재방식은 카드를 생성할때 자동으로 카드의 id와 똑같은 order를 가지게 하는 방식인데 새로운 카드의 순서를 임의로 정한다면, 현재 순서를 밀어내는 기능에서, 현재 순서를 0으로 만드는 부분을 새로 만든 카드의 순서를 0으로 만들게 구현하고 이전 기능을 그대로 붙이면 될 것같다.
2. 보안
토큰을 헤더에 넣고, DB에 비밀번호는 암호화하자.
저번 과제에서는 했던 부분인데, 이번 과제에서는 적용을 하지 않았다. 당연히 해야할 부분인데 놓쳐서 많이 아쉽다.
3. github secrets
github actions는 깃허브의 자동화 기능이라고한다.
코드 테스트를 하는 기능도 있다고 하는데, .env로 접속키를 따로 관리한다면 제대로 된 테스트를 할 수 없다. 테스트키를 원격 저장소에 그대로 올려야하는 것이다. 이럴 때 secrets 기능을 사용하면된다고한다. 접속키등을 .env없이도 암호화 된 상태로 github에 올릴 수 있다.
4. 순서를 큰 단위로 만들기
우리 팀을 포함한 대부분의 조는 순서를 1단위로 만들고 교체하는 방법을 만들었다. 하지만 한 팀은 카드 순서를 1단위가 아니라 큰 숫자로 만들었고, 그 빈 칸에 카드를 넣는 방법을 취했다. 트렐로와 같은 방식에 카드나 리스트의 수가 세자리를 넘지 않을 것을 생각하면 합리적인 결정이라고 생각된다.
5. 프론트는 이쁘고 직관적이어야한다
그런데 힘들다...