본문 바로가기

전체 글78

6장 단위 테스트 스타일 단위테스트 (블라디미르 코리코프) 단위테스트에는 출력 기반, 상태 기반, 통신 기반이라는 세 가지 테스트 스타일이 있다. 출력 기반 스타일의 테스트가 가장 품질이 좋고, 상태 기반 테스트는 두 번째로 좋은 선택이며, 통신 기반 테스트는 간헐적으로만 사용해야 한다. 안타깝게도 출력 기반 테스트 스타일은 아무데서나 사용할 수 없으며, 순수 함수 방식으로 작성된 코드에만 적용된다. 그러나 걱정할 필요는 없다. 출력 기반 스타일로 변환하는 데 도움이 되는 기법이 있다. 이를 위해 함수형 프로그래밍 원칙을 사용해 기반 코드가 함수형 아키텍처를 지향하게끔 재구성해야 한다. [Note] 순수 함수는 다음 속성을 갖는 함수입니다. - 함수 반환 값은 동일한 인수에 대해 동일합니다 - 함수에는 사이드 이펙트가 없습니다 .. 2023. 7. 11.
[error] Requested but did not find extension point with identifier Xcode.IDEKit.ExtensionSentinelHostApplications for ... 맥북에서 어느날 부터 Requested but did not find extension point with identifier Xcode.IDEKit.ExtensionSentinelHostApplications for ... 이런 에러가 발생되었다. 아래 명령어로 해결하였다. // reset to the default command line tools path xcode-select -r // Link xcode-select with CommandLineTools sudo xcode-select -s /Library/Developer/CommandLineTools https://stackoverflow.com/a/73253436 2023. 7. 7.
11장 뉴스 피드 시스템 설계 가상 면접 사례로 배우는 대규모 시스템 설계 기초 – System Design Interview 개인적으로 이번 장은 두리뭉실하게 나온 부분이 많은 것 같아 너무 아쉬운 장이였다. 용어 통일에서도 조금 아쉬운 면이 있었던 것 같다. 뉴스피드(news feed)란 “뉴스 피드는 여러분의 홈 페이지 중앙에 지속적으로 업데이트되는 스토리들로, 사용자 상태 정보 업데이트, 사진, 비디오, 링크, 앱 활동(app activity), 그리고 여러분이 페이스북에서 팔로우하는 사람들, 페이지, 또는 그룹으로부터 나오는 ‘좋아요’ 등을 포함한다.” - facebook - 페이스북, 인스타그램. 트위터 등에서 사용 1단계 문제 이해 및 설계 범위 확정 질문 예시 - 모바일 앱을 위한 시스템인가요? 아니면 웹? 둘 다 지원.. 2023. 7. 6.
5장 목과 테스트 취약성 (4) 3 목과 테스트 취약성과의 관계 이번 절에서 알아 볼 것 - 육각형 아키텍처 (hexagonal architecture) - 내부 통신과 외부 통신의 차이점 - 목과 테스트 취약성 관의 관계 3.1 육각형 아키텍처 정의 육각형 아키텍처는 앨리스터 코오번(Alistair Cockburn) 에 의해 처음 소개되었다. 전형적인 애플리케이션은 도메인(비지니스 로직)과 애플리케이션 서비스라는 두 계층으로 구성된다. 도메인 계층은 애플리케이션의 중심부이기 때문에 도표의 중앙에 위치한다. 도메인 계층은 필수 기능으로 비즈니스 로직이 포함되어 있다. 애플리케이션 서비스 계층은 도메인 계층 위에 있으며 외부 환경과의 통신을 조정한다. 애플리케이션의 API에 대한 모든 요청이 먼저 애플리케이션 서비스 계층에 도달한다. 애.. 2023. 7. 5.
테스트용 크롬 (Chrome for Testing) 원문 Chrome for Testing: reliable downloads for browser automation https://developer.chrome.com/blog/chrome-for-testing/ 23년 6월 12일 글 정리 크롬은 현시점 기준 사용자 점유율이 가장 높은 브라우저이다. 브라우저 테스트를 하면서 번거로웠던 점 중 하나는 브라우저 테스트 환경을 맞춰줘야 한다는 것인데 크롬의 경우에는 자동 업데이트를 권장한다. 이는 글에도 적혀있지만 사용자에게는 좋지만 테스트 개발자에게는 고통이다. 특히 크롬의 경우에는 특정 버전의 Chrome 바이너리 / 이에 맞는 Chrome Driver 를 찾기 어려운 부분이 있었는데 Google 에서는 의도적으로 사용자로 하여금 가능한 최신 버전으로 업.. 2023. 7. 2.
10장 알림 시스템 설계 책에서는 iOS 푸시, 안드로이드 푸시, SMS 메시지, 이메일 에 대해서 다룬다. 한국 기준으로는 알림톡도 적용할 수 있을 것이며 요즘에는 웹 푸시에 점차 활성화 되어가고 있기 때문에 해당 부분도 고려하면 좋을 것이다. 서드파티를 이용하다보면 별별 일이 다 발생된다. 따라서 본문에서 나온대로 오류시 재시도를 할 수 있게 시스템을 구성하거나 오류 발생 시 업무 담당자가 수동으로 트리거 하여 발송할 수 있도록 처리를 해주는 것이 좋을 것이다. 또한 기기 변경 / 연락처 정보 변경 이 발생되었을 경우 어떻게 처리할지에 대한 부분도 고려하면 좋을 것이다. 1단계 문제 이해 및 설계 범위 확정 질문 예시 - 어떤 종류의 알림을 지원해야 하나요? - 실시간 시스템이어야 하나요? - 어떤 종류의 단말을 지원해야 하.. 2023. 6. 29.