애니메이션
미션 요구사항 중 애니메이션을 활용하는 요구사항이 있었다.
애니메이션을 한번도 써보지 못했는데 생각보다 어렵지 않았다.
Swift가 간단한 애니메이션을 잘 지원해주었는데 확실히 애니메이션의 유무에 따라
사용자가 느끼는 앱의 완성도 차이가 많이 났다.
다른 캠퍼들이 완성한 애니메이션들을 보면서 많이 배웠다.
애니메이션을 잘 사용하려면 디자인적인 관점이 많이 필요할 것 같다.
테스트 코드
이번주 마스터 클래스 주제 중 테스트 코드에 대한 이야기가 있었다.
가장 기억에 남는것은 “테스트 하지 않아야 할것들을 테스트 하고 있지는 않은지 ??” 였다.
그 동안에는 테스트 코드를 작성하는 기준이 명확하지 않았는데 저 말을 들은 후에는 보다 쉽게 구분할 수 있었다.
또 리팩토링과 TDD에 대한 이야기를 해주셨다.
리팩토링을 하게된다면 테스트 코드를 고치지 않고 리팩토링을 할 수 있어야 한다고 하셨다.
만약 리팩토링을 한 후 테스트 코드를 고쳐야 한다면 아래 세가지를 생각해보아야 할 것 같다.
- 테스트 코드를 잘못 작성하진 않았나 ?
- 설계를 잘못하지 않았나 ?
- 객체가 너무 많은 책임을 지고 있었나 ?
TDD에 대해서도 한번 쯤은 경험해보는 것을 추천하셨다.
TDD를 하다보면 테스트 코드를 수정해야할 때가 오는데 그때
왜 테스트코드를 수정하게 되었는지 깊게 생각해보라고 하셨다.
아마 내가 생각하기에는 테스트 코드를 수정한다면 아래의 이유일 것 같다.
- 처음부터 완벽하게 명세를 분리해서 테스트 코드를 작성할 수 없기 때문에
- 기능들이 추가되었을 때 객체가 너무 많은 책임을 지고 있어서 분리해야 할때
기능 추가 및 개선하기
내 심정을 대변해주는 사진
리팩토링 관련 글들을 보면 항상 수정하는것보다 새로 만드는게 더 빠르다 라는 말이 있었다.
그때 당시에는 “아니 지금까지 해놓은걸 수정하는게 당연히 더 빠른거 아니야 ?? 저걸 어떻게 처음부터 다시해 ??”
라는 생각이었는데 막상 내 상황이 되니 똑같은 생각이 들었다.
2주차에 개선을 한다는 것은 알고 있었지만 기능추가에 대한 생각은 전혀 하지 않은채로 코드를 작성했다보니
어디서부터 수정해야할지 막막했다.
1주차에 코드를 작성했을 때는 문제가 없다고 생각했던 것들이 문제가 되어버려
전체적으로 뜯어 고쳐야 할 수 밖에 없었다.
처음 시작할때는 힘들었는데 막상 다 하고 나니 정말 필요한 작업이었다는 것을 알게되었고
다음에 설계를 할때는 개선이나 기능추가까지 고려해서 설계하는 것이 좋겠다라는 생각이 들었다.
힘들었지만 필요한 경험이었다.