728x90
이번 주 목표
프로젝트 완성
오늘 목표
백엔드 완성
프론트엔드 시작
오늘 한 것
백엔드 완성
프론트엔드 시작
1. Op.gt Op.lt
문제
중간에 column이 삭제되는 경우 순서가 +1씩 증가할 수 없다.
기존의 식이다.
async moveColumnUp(columnId) {
const t = await sequelize.transaction();
try {
const currentColumn = await Columns.findByPk(columnId, {
transaction: t,
});
const currentOrder = currentColumn.columnOrder;
const columnOrder = currentOrder + 1;
const targetColumn = await Columns.findOne(
{
where: { columnOrder },
},
{ transaction: t },
);
const targetId = targetColumn.columnId;
await Columns.update(
{ columnOrder: columnOrder },
{ where: { columnId } },
{ transaction: t },
);
await Columns.update(
{ columnOrder: currentOrder },
{ where: { columnId: targetId } },
{ transaction: t },
);
await t.commit();
return 1;
} catch (err) {
console.log(err);
await t.rollback();
return 0;
}
}
시도
Op.gt를 이용하여 증가 시키려는 column 보다 columnOrder가 많은 것들을 추리고
그 안에서 columnOrder 순으로 정렬하여
limit 1을 통해 내 바로 위 순서의 column을 뽑아낸다.
async moveColumnUp(columnId) {
const t = await sequelize.transaction();
try {
const currentColumn = await Columns.findByPk(columnId, {
transaction: t,
});
const currentOrder = currentColumn.columnOrder;
const targetColumn = await Columns.findAll(
{
where: {
columnOrder: { [Op.gt]: currentOrder },
},
order: [['columnOrder']],
limit: 1,
},
{ transaction: t },
);
const targetOrder = targetColumn[0].columnOrder;
const targetId = targetColumn[0].columnId;
await Columns.update(
{ columnOrder: targetOrder },
{ where: { columnId } },
{ transaction: t },
);
await Columns.update(
{ columnOrder: currentOrder },
{ where: { columnId: targetId } },
{ transaction: t },
);
await t.commit();
return 1;
} catch (err) {
console.log(err);
await t.rollback();
return 0;
}
}
해결
잘 해결 되었다.
알게된 것
Op.gt : 대상보다 초과하는 것들의 집합
Op.lt : 대상 미만의 집합
Op.gt 등 Op 옵션을 줄 때는 사용하려는 컬럼을 지정해 주어야 한다.
정리
Op.gt : 대상보다 초과하는 것들의 집합
Op.lt : 대상 미만의 집합
Op.gt 등 Op 옵션을 줄 때는 사용하려는 컬럼을 지정해 주어야 한다.
체크리스트
[ O ] 예쁜 말로 협업하였는가?
[ O ] 12시간 동안 몰입하였는가?
[ O ] 코딩 시 복사 + 붙여넣기를 하지 않았는가?
[ O ] 친절한 개발자였는가?
[ O ] 오늘을 평가하였을 때 주니어 개발자가 될 수 있겠는가?
ETA를 지킬 수 있다면....
KPT
Keep
최선을 다해서 팀원을 돕고 함께 진행해 나가는 점
Problem
속도가 더딘 것
Try
조금 더 에러들과 친해져서 해결 방법을 빠르게 파악하기
소감
오늘부터 드디어 프론트를 한다. 신난다.
'verdantjuly > Today I Learned' 카테고리의 다른 글
TIL 20230813 (0) | 2023.08.13 |
---|---|
TIL 20230811 (0) | 2023.08.11 |
TIL 20230809 (0) | 2023.08.09 |
TIL 20230808 (0) | 2023.08.08 |
TIL 20230807 (0) | 2023.08.07 |