분류 전체보기78 5장 목과 테스트 취약성 (2) 단위테스트 (블라디미르 코리코프) 5장 목과 테스트 취약성 (1) 에서 이어지는 글입니다. 1.2 도구로서의 목과 테스트 대역으로서의 목 Mock은 두가지 의미가 있다. 목 라이브러리(mocking library)의 클래스도 목으로 부르며 테스트 대역으로서의 목 도 있다. 1.3 스텁으로 상호 작용을 검증하지 말라 테스트에서 거짓 양성을 피하고 리팩터링 내성을 향상시키는 방법은 구현 세부 사항이 아니라 최종 결과(이상적으로 비개발자들에게 의미가 있어야 함)를 검증하는 것 뿐이다. 최종결과가 아닌 사항을 검증하는 것을 과잉 명세(overspecification)이라고 부른다. 1.4 목과 스텁 함께 쓰기 같이 사용할 수 있다. 1.5 목과 스텁은 명령과 조회에 어떻게 관련돼 있는가? 명령 조회 분리 (CQ.. 2023. 5. 12. 5장 목과 테스트 취약성 (1) 단위테스트 (블라디미르 코리코프) 0. 개요 런던파 : 테스트 대상 코드 조각을 서로 분리하고 불변 의존성을 제외한 모든 의존성에 테스트 대역을 써서 격리하자. 고전파 : 단위 테스트를 분리해서 병렬로 실행할 수 있게 하자. 테스트 간에 공유하는 의존성에 대해서만 테스트 대역을 사용하자. 테스트 대역 모든 유형의 비운영 가짜 의존성을 설명하는 포괄적인 단어 * 영화의 스턴트 대역 이라는 개념에서 비롯되었음. double에 대역 이라는 뜻이 있음. 목(mock) 테스트 대상 시스템(SUT)과 그 협력자 사이의 상호 작용을 검사할 수 있는 테스트 대역 목은 리팩토링 내성이 부족한 테스트를 초래할 수도 있지만 목을 사용하는게 바람직한 경우도 있다. 목과 테스트 취약성 사이에는 깊고 불가피한 관련이 있다. 어떻.. 2023. 5. 11. 3장 시스템 설계 면접 공략법 가상 면접 사례로 배우는 대규모 시스템 설계 기초 - System Design Interview 3장 시스템 설계 면접 공략법 시스템 설계 면접이 있는 이유 두 명의 동료가 모호한 문제를 풀기 위해 협력하여 그 해결책을 찾아내는 과정에 대한 시뮬레이션. 시스템 설계 면접을 통해 볼 수 있는 것 - 설계 기술 능력 - 설계 과정에서 내린 결정들에 대한 방어 능력 - 면접관의 피드백을 건설적인 방식으로 처리할 수 있는지. - 협력에 적합한가 - 압박이 심한 상황에서도 잘 헤쳐 나가는가 - 모호한 문제를 건설적으로 해결할 능력이 있는가 - 적절한 타협적 결정(trade off)를 할 수 있는가 - 과도한 엔지니어링(over-engineering)을 하지는 않는가 - 완고함. 편협함은 없는가 효과적 면접을 위한.. 2023. 5. 10. 4장 스레드와 병행성 연습문제 공룡책 (Operating System Concepts) 10th 개인적인 생각이므로 틀린 답변일 수 있습니다. 4.1 다중 스레딩이 단일 스레드 솔루션보다 더 나은 성능을 제공하는 세 가지 프로그래밍 예시를 제시하라. 병렬로 나눠서 동일한 작업을 동시에 처리하기에 용이할 경우 (ex. 웹 서버, 연산처리) 병렬로 나눠서 여러 작업을 처리하기에 용이할 경우 (ex. 화면 gui) 4.2 Amdahl의 법칙을 이용하여 (a) 2개의 처리 코어와 (b) 4개의 처리 코어에 대해 60%의 병렬 구성요소를 가진 응용 프로그램의 속도 향상 이득을 계산하라. a : 1 / (0.4 + 0.6 / 2) = 1.42857143 배 b : 1 / (0.4 + 0.6 / 4) = 1.81818182 배 4.3 4.1절에 .. 2023. 5. 9. 3장 프로세스 연습문제 공룡책 (Operating System Concepts) 10th 개인적인 생각이므로 틀린 답변일 수 있습니다. 3.1 아래 표시된 프로그램을 이용하여 LINE A에서 출력되는 내용을 설명하라. #include #include #include int value = 5; int main() { pid_t pid; pid = fork(); if (pid == 0) { /* child process */ value += 15; return 0; } else if (pid > 0) { /* parent process */ wait(NULL); printf("PARENT: value = %d", value); /* LINE A */ return 0; } } 20 3.2 최초의 부모 프로세스를 포함하여 아래에 표시.. 2023. 5. 9. 2장 개략적인 규모 추정(back-of-the-envelope estimation) 가상 면접 사례로 배우는 대규모 시스템 설계 기초 - System Design Interview 2장 개략적인 규모 추정 개략적인 규모 추정 개략적인 규모 추정은 보편적으로 통용되는 성능 수치상에서 사고 실험(thought experiments)을 행하여 추정치를 계산하는 행위로서, 어떤 설계가 요구사항에 부합할 것인지 보기 위한 것이다. 이를 위해 알아야 할 상식들과 예시를 이번 장에서는 소개한다. 2의 제곱수 데이터 볼륨의 단위를 2의 제곱수로 표현하면 어떻게 되는지 숙지 해두자. 최소 단위는 1바이트이고, 8 비트로 구성. ASCII 문자 하나가 차지하는 메모리 : 1바이트 2의 x 제곱 근사치 이름 축약형 10 1천(thousand) 1킬로바이트(Kilobyte) 1KB 20 1백만(million.. 2023. 5. 5. 이전 1 ··· 9 10 11 12 13 다음