Today I Learned
날짜
2024년 1월 23일 화요일
내용
코드를 그지같이 짠 댓가를 톡톡히 치뤘다. 문제는 나만 치룬게 아니라는게..
기획안과 피그마
피그마와 기획안 현황을 제대로 숙지하지 않았다. 그래서 여러 문제가 생겼는데,
- 여러 분석 결과를 보여주는 화면에 관련된 API를 만들지 않았다.
- 리뷰의 판정에 중립을 설정하지 않았다.
- 필요한 데이터를 제대로 넘기지 않았다.
이외에도 수두룩하다. API 자체는 급하게 만들었으나 여러가지 수정해야할 것들도 존재했고 똑바로 만들지 않아서 고쳐야 할 것도 많았다. 애초에 내가 잘 테스트해서 끝내놨어야 했는데 그러지 못해서 발생한 일이었다.
따라서
- 프론트 작업 일정에 지연이 생겼고,
- 내 수정이 반영될 때까지의 시간과
- 매번 고친 코드를 병합하고 데이터베이스를 마이그레이션 하기 위한 시간, 에너지가 낭비됐다.
첫 스프린트이자 협업이라 그렇다고 하기엔, 내 일처리가 미숙해 발생한 문제라 여러모로 면목이 없다. 기획안, 피그마 변경사항 확실히 숙지하는 것, API 등 테스트를 철저히 해서 고쳐야 할 코드를 만들지 않도록 더 잘해야겠다.
Fastapi pagination
서버에서 클라이언트에게, 페이지 단위로 데이터를 넘길 수 있다. 넘겨야 할 것은
- skip : 뛰어넘은 데이터 갯수
- limit : 한 페이지에서 보여줄 갯수
- length : 총 페이지의 수
다. 한 페이지에 10개씩 보여주고 현재 3페이지를 출력해야한다면 skip은 20이 된다. api params에 추가하면 프론트에서 필요한 페이지에 맞게 param을 설정하여 원하는 페이지를 받아올 수 있다.
hybrid attribute
데이터베이스에 추가하는 속성이다. 그냥 칼럼을 추가하면 데이터베이스에 저장되어 공간을 차지하지만 하이브리드 속성은 그렇지 않다. 예를 들어, 테이블에 “최댓값”이라는 필드와 “최솟값”이라는 필드가 있다면, “차이” 라는 하이브리드 속성을 (최댓값 - 최솟값)으로 설정할 수 있다. 그냥 칼럼을 설정하는 것과 차이가 있다면 데이터베이스 공간을 차지하지 않는다는 것. 서버로 가져와서 계산하는 것과는 또 차이가 있는데, 복잡해질 경우 데이터베이스에서 계산을 처리하는 것이 성능 상 유리하기도 하고 쿼리를 작성하여 특정 조건의 데이터를 가져올 떄 이 하이브리드 속성을 사용할 수 있다는 것이다.
회고
아직도 난 코드싸개야.