Fact (사실)
프로젝트를 진행하고
함수형 코딩을 읽었습니다.
Feeling (느낌)
프로젝트(포트폴리오) 구현
오늘은 타이머를 구현하는 작업을 진행하였습니다.
예전에 구현했던 타이머 부분은
가독성 측면에서 너무 좋지 못하였고 (중첩 if - else문)
리덕스를 통해 새롭게 코드를 설계했습니다!
리덕스를 통해서 새롭게 코드를 설계하면서
기존에 했던 방식이 아니어서 어려운 부분이 있었습니다.
우선 지정된 시간(endTime)과 현재 시간을 정하는 부분부터
어려웠던 것 같습니다.
new Date().getTime()
Date 객체의 getTime을 사용하여 timeStamp를 구하였는데
큰 숫자에 지레 겁먹고 어떻게 해야 하지?라는 생각이 들었던 것 같습니다.
사실 지정된 시간을 정하는 부분은 현재 timeStamp에 추가할 시간만큼 더해주면 되는 간단한 문제였는데
겁을 먹어서 그 생각을 하기까지 조금 오래 걸렸던 것 같습니다!
사실은 단계별로 생각하면 정말 간단한 일인데 단계별로 생각하지 않고
한 번에 해결하려 하는 문제 때문에 생긴 장애물이었던 것 같습니다.
앞으로는 해야할 일(구현해야 하는 것)에 대해 조급한 마음을 갖지 않고
단계별로 생각하는 습관을 들여야 할 것 같습니다!
프로젝트(포트폴리오) 테스트
테스트를 진행하며 mocking하는 부분에 있어서 정말 문제를 깨닫기까지
오랜 시간이 걸렸습니다.
처음 테스트가 깨졌을 때, 당연히 mocking을 하지 않았기 때문에 깨졌겠지!라는 생각으로
mocking을 진행하였는데 mocking을 해도 테스트가 깨져
그때부터 문제를 바라보지 않고 mocking이 잘못되었다고 단정을 지어버리고
mocking에 대해 공식문서와 스택오버플로우를 찾아가면서
테스트 코드를 계속 수정하였습니다.
그렇게 몇시간이 지나고 이미 문제에 대해선 생각도 하지 못하고
테스트 외에 구현하는 부분이 잘못되었나 구현하는 부분을 만져보고
다시 테스트를 만져보고 오합지졸이 되어버렸습니다!
그러던 와중 윤석 님께서 문제를 바라봐야 한다는 조언을 해주었고
현재 직면한 문제를 찾는 과정부터 천천히 진행을 하였습니다.
사실 어려운 문제는 아니었습니다.
App에서는 dispatch를 사용하는 부분이 많은데
beforeEach를 사용하지 않고 한번만 mocking이 되어 생긴 문제였습니다.
문제를 해결을 하고나서 느낀 점은 제가 문제를 직면하지 않고
제 마음대로 해석을 해서 다른 곳을 바라보고 있어 문제가 해결되지 않았음을 깨달았습니다.
함수형 코딩
함수형 코딩 책은 정말 재미있는 것 같습니다.
오늘은 불변성에 대한 파트를 읽었는데
예제 코드를 리팩토링 하는 과정을 보고
연습 문제를 리팩토링하는 실습을 진행하였는데
확실히 실습을 진행하면서 얻는 부분이 많은 것 같습니다.
불변성을 유지하기 위해서
값을 복사하고 복사본을 변경하고 복사본을 리턴한다.
라는 부분은 정말 어떻게보면 간단한 부분인데 불변성 유지라는 키워드를 어렵게만 생각하고 있었던 것 같았습니다!
리덕스 툴킷을 쓰면서 불변성 유지에 대해서 별 생각이 없이 코드를 설계했었는데
앞으로는 리덕스 툴킷을 쓰면서도 불변성 유지를 생각하면서 코드를 설계해야겠다는 생각이 들었습니다.
Finding (교훈)
"문제에 대해 생각하고 함부로 단정 짓지 말자."
문제에 대해서 생각을 하고 문제를 어떻게 해결해야 할지 생각하는 습관을 길러야겠다는
생각이 드는 하루였습니다.
또한, 함부로 단정짓지 않고 사실(문제)에 대해 생각하고
그 문제를 해결할 수 있는 능력을 키워야겠다는 생각이 드는 하루였습니다!