[TIL] 23Y02M01D

[TIL] 23Y02M01D

Facts(사실, 객관)


오늘도 React Native 프로젝트를 진행하였는데 이제 곧 퇴사하시는 분께서 앱 아이콘과 앱에 들어왔을때 로딩화면을 구현하지 않으셔서 내가 진행하였다. 그리고 DB에서 날짜를 조회해 해당 날짜를 필터링 하는 작업도 함께 진행하였다.

Feelings(느낌, 주관)


계속 날짜를 필터링하는 작업을 하는데 하루를 다 소모한거 같다. Date 형식이 DB에는 Unix Timestamp형식으로 되어 있었기 때문에 해당 날짜를 받아서 필터링을 해야했으며, 나는 DB가 아닌 오늘 날짜를 구하기 위해서 해당 날짜를 Timestamp로 변환해야했다. 생각보다 빨리 끝낼 수 있었는데 다른 나의 착오와 실수로 많은 시간을 할애해야 했었다.

그래서 아이콘 변경과 로딩화면 구현을 조금밖에 못하여서 좀 짜증이났지만 나의 실수를 찾는 계기가 되었고 에러가 발생할 경우 급하지 말고 차근차근 한 단계씩 확인하자라는 생각을 하게 되었다.

Findings(배운 점)


어제는 Unix Timestamp -> Date 형식으로 변환했다면 오늘은 Date -> Unix Timestamp로 변환하였다. 방법은 어제는 1000을 곱해줬다면 오늘은 1000을 나눠주기만 하면 되었다. 그리고 나는 1개월이나 3개월에 따라 Type을 oneMonththreeMonth로 분리하였고, 전체는 그냥 지정하지 않았다.

그래서 type이 oneMonth인지 threeMonth인지만 구분하여 if문으로 처리하였다. 나는 if문을 두개 작성하고 마지막에 if가 아니라면 전체를 보여주는 기능을 필터링 하였다. 근데 oneMonth와 threeMonth를 하더라도 자세히 보니 제일 처음 필터링 되었다가, 나중에 다시 전체 날짜를 보여주는 기능으로 바뀌는 것이었다.

Type이 전체일 경우에는 All로 지정해서 if문 3개를 나눠주니까 정상적으로 필터링 기능을 구현하였다. 분명 type이 oneMonth와 threeMonth가 아닐 경우에는 전체가 필터링 되어야했는지 그게 되지 않아서 아직도 방법을 찾고있다.

/* Date -> Unix Timestamp */
const date = new Date('2023-02-01');
const formattedDate = Math.floor(minDate.getTime() / 1000)

Affirmation(자기 선언)


나는 분명 제대로 작성한거 같은데 필터링 기능이 잘 작동하지 않으니 좀 답답한 마음이 컸던거 같다. 그래서 어디서 문제인지 찾기 위해 구간을 나눠서 차근차근 console.log를 찍어보면서 확인 해보니까 어디서 문제가 발생하였는지 알게 되는 계기가 되었다.

회사 사원중에 한분께서 컴퓨터는 거짓말을 안한다고 하셨는데 정말인거 같다. 모든 문제는 나의 코드에서 발생하였고, 문제를 찾아 해결하는 것도 나의 일인 것이다. 이로써 한 단계 더 성장하는 개발자가 되지 않을까 싶다.

Reference



© 2024. All right reserved Min