[우테코] 자판기 미션 - 1단계 피드백 정리

Sally·2022년 3월 27일
3

1단계 회고

이번 미션은 조금은 특별했다. 페어 덕분에, 새로운 구조에 도전해 볼 수 있었기 때문이다. 바로 그 정체는 flux!

사실 현재의 구조가 완벽한 flux의 형태를 띄는 것은 아니지만, 새로운 구조의 코드를 도전해는 것 만으로 좋았다. 또한 저번 미션에서 구조도를 먼저 정해보려는 시도를 해보자고 생각을 해보았기에 나에겐 이번 미션이 좋은 기회였다.

물론 어려움도 있었다. 아무래도 처음 적용해보는 구조이고(flux 구조에 관해서 거의 문외한이였다😱 여기 와서 처음 들었...) ,페어가 생각해온 구조를 적용하는 방식이였기 때문에 초반에 이해하는 것이 어려웠다. 페어의 설명을 들으면서 오... 이렇게도 코드를 짤 수 있구나 라는 감탄사를 연발할 뿐이였다.

완벽하게 이해한 것이 맞나 찝찝한 마음에, 페어가 끝나거나 중간 중간 쉬는 시간에 코드의 구조를 글로 적어보고 그려보았다. 마지막 미션이 끝날 때에는 미션동안 구조를 그렸던 내용들을 정리해 다시 그려 페어에게 공유하였는데, 페어가 구조도가 정확하다는 평가를 남겨주었다! 😎

아래에는 최종적으로 정리한 구조도이다.

하나는 주요 로직들을 담고 있는 함수들을 정리한 것이고 나머지는 전체적인 구조를 그려본 것이다.

네이밍 네이밍 네이밍!

여전히 네이밍... 어렵다

특히 이번 미션의 경우 네이밍을 진행하면서 영단어 뜻 때문에 조금씩 해매게 되었다.

그리고 피드백 받은 부분은 isOverLimitLength였다. 해당 함수는 util내에 존재하기 때문에, 잠재적으로 여러가지 곳에서 사용 될 수 있음을 알리는 것이기 때문에 의도가 잘 들어나게 네이밍을 해야한다.

이번 미션에서는 그 부분을 놓치고 어느 부분에서 사용되는 함수인지 알 수 없는 이름이 되어 버렸다.

미묘한 cypress

cypress와 관련된 피드백들도 있었다. 해당 피드백 들에서 세세하게 테스트 사항을 챙기지 못한 점들이 나왔다.
예를 들어, calledWith를 활용해 에러 문구의 메세지까지 확인한다 던지,
baseUrl 설정을 활용한다는 것이다.

이 부분들을 귀찮더라도 조금만 신경쓰면 좋아질 내용들인데 다음 부터는 잊지 말고 챙겨야 겠다.

얕은 복사 깊은 복사

리뷰를 요청할때에 드린 질문 사항에 복사와 관련된 것이 있었다.
현재 코드가 데이터에 변경사항이 있으면 직접 변경을 하기 때문에,
만약 추후에 ...를 통한 얕은 복사를 한다면 이 둘간의 유효한 차이가 있을지에 관한 질문 이였다.

답은 유효한 차이가 없음이였다!

두 케이스 모두 내부 객체에 접근 할 수 있는 래퍼런스가 노출될 경우 밖에서 조작할 수 있기 때문에

만약 이 부분을 챙기고 싶은 거라면 리소스가 더 들더라도 deepcopy방식을 사용해야 한다.

결국은 퍼포먼스 쪽을 선택할 것인지 리소스가 더 들더라도 무결성을 선택할 것인지의 개인의 차이였다.

1개의 댓글

comment-user-thumbnail
2022년 3월 27일

샐리 결국 flux 쓰셨군요!! 멋져요

답글 달기