빈번하게 갱신되는 화면의 경우 어떻게 성능 테스트를 할 수 있을까요? 눈으로 확인했을 때 화면이 버벅이면서 보이거나 끊김 현상이 보이면 당연히 성능이 안 좋다고 판단할 수 있겠지만, 눈으로 확인하는 데는 정확성이 부족할 수 있고 미묘한 차이를 캐치하기 어려울 수 있습니다. 아무래도 가장 좋은 건 데이터, 즉 수치로 확인하는 것이죠. XCode12부터 UI와 관련된 성능 이슈를 파악하는데 도움을 주는 Instruments - Animation Hitches가 도입되었습니다. 아래 내용은 WWDC21 Hitch 관련 세션을 보고 정리한 글입니다. 일반적으로 디스플레이를 갖는 디바이스의 경우 주사율을 갖습니다. iOS 디바이스의 경우 보통 60Hz의 주사율을 갖고 이는 1초에 60번 화면이 갱신됨을 의미합니다..
클린 아키텍처? Robert C Martin이 제시한 소프트웨어 아키텍처로 계층별 역할(관심사)을 분리함으로써 유지보수, 테스트 용이성의 이점을 가져갈 수 있다. 위 이미지를 보면 의존성의 경우 바깥쪽에서 안쪽으로 향하게 되는데, 이 의미는 안쪽 계층의 경우 바깥 계층에 대해 알 수 없다는 의미(영향을 받지 않는다는 의미)이고 안쪽으로 갈 수록 의존성이 옅어짐으로 변경 가능성이 가장 적은 비즈니스 룰이 위치하게 된다. 여기서 비즈니스 룰이란 Domain Layer(Use Cases + Entities)에 적용되는 규칙으로 사업의 핵심적인 서비스와 관련된, 즉 잘 변하지 않는 비즈니스 로직을 적용하는 것을 말한다. 예를 들어 일기 앱 서비스라고 가정한다면 일기 작성, 삭제등의 기능이 있을 수 있다. 이 로..
UnitTest? 개발자가 작성한 프로그램이 의도한 대로 동작하는지 검증하는 단위의 테스트 -> 소스코드의 기본 동작을 검증할 수 있음으로 신뢰할 수 있는 프로그램 작성 가능 -> 특정 모듈, 비즈니스 로직 리팩토링시에도 테스트 함수를 통과해야 하므로 신뢰할 수 있는 프로그램 작성 가능 테스트 코드 작성 방법 함수(비즈니스 로직)에 대한 input case와 output case들을 정의하고 테스트를 통과하는지 검증하는 테스트 코드를 작성 동일한 input에 대해서는 동일한 output이 보장되어야만 함 만약 덧셈, 뺄셈이 가능한 계산기 프로그램을 개발한다고 했을 때 아래와 같이 덧셈 뺄셈에 대한 비즈니스 로직을 설계할 수 있습니다. Tests file로 가보시면, 아래와 같이 처음 보실 수도 있는(?)..