20220305_북이

권도토잠보·2022년 3월 9일
0

북이흥행홍

목록 보기
7/16
post-thumbnail

🪴ㅤTIL (DAY - 9)

2022.03.05

오늘 읽은 범위

👉ㅤ클린코드 8장 & 9장.경계 & 단위 테스트

기억하고 싶은 내용ㅤ📕

학습 테스트를 프로그램에서 사용하려는 방식대로 외부 API를 호출한다.
통제된 환경에서 API를 제대로 이해하는지를 확인하는 셈이다.
학습 테스트는 API를 사용하려는 목적에 초점을 맞춘다. (p.147)

학습 테스트는 이해도를 높여주는 정확한 실험이다. (p.149)

경계에 위치하는 코드는 깔끔히 분리한다. 또한 기대치를 정의하는 테스트 케이스도 작성한다.
이쪽 코드에서 외부 패키지를 세세하게 알아야 할 필요가 없다. 통제가 불가능한 외부 패키지에
의존하는 대신 통제가 가능한 우리 코드에 의존하는 편이 훨씬 좋다.
자칫하면 오히려 외부 코드에 휘둘리고 만다. (p.152)

애자일과 TDD 덕택에 단위 테스트를 자동화하는 프로그래머들이 이미 많아졌으며
점점 더 늘어나는 추세다. 하지만 우리 분야에 테스트를 추가하려고 급하게 서두르는
와중에 많은 프로그래머들이 제대로 된 테스트 케이스를 작성해야 한다는
좀 더 미묘한 (그리고 더욱 중요한) 사실을 놓쳐버렸다. (p.155)

테스트 코드는 실제 코드 못지 않게 중요하다. 테스트 코드는 이류시민이 아니다.
테스트 코드는 사고와 설계와 주의가 필요하다. 실제 코드 못지 않게 깨끗하게 짜야 한다. (p.157)

코드에 유연성, 유지보수성, 재사용성을 제공하는 버팀목이 바로 단위테스트다. (p.157)

실제 코드를 점검하는 자동화된 단위 테스트 슈트는 설걔와 아키텍처를 최대한
깨끗하게 보전하는 열쇠다. 테스트는 유연성, 유지보수성, 재사용성을 제공한다.
테스트 케이스가 있으면 변경이 쉬워지기 때문이다. (p.157)

깨끗한 테스트 코드를 만들려면 ? 세 가지가 필요하다. 가독성, 가독성, 가독성.
테스트 코드에서 가독성을 높이려면? 여느 코드와 마찬가지다. 명료성, 단순성, 풍부한 표현력이 필요하다.
테스트 코드는 최소의 표현으로 많은 것을 나타내야 한다. (p.158)

테스트 환경은 자원이 제한적일 가능성이 낮다. 이것이 이중 표문의 본질이다.
실제 환경에서는 절대로 안 되지만 테스트 환경에서는 전혀 문제없는 방식이 있다.
대개 메모리나 CPU 효율과 관련 있는 경우다. 코드의 깨끗함과는 철저히 무관하다. (p.164)

테스트 코드는 실제 코드만큼이나 프로젝트 건강에 중요하다.
어쩌면 실제 코드보다 더 중요할지도 모르겠다. 테스트 코드는
실제 코드의 유연성, 유지보수성, 재사용성을 보존하고 강화하기 때문이다. (p.168)

오늘 읽은 소감ㅤ📙

예외 처리는 거의 사용해본적이 없어서 잘은 모르나
테스트코드가 중요한것은 매우 잘 알고 있었다.
하지만 이러한 테스트 코드를 역시나 console.log로만 사용했던 나는
사실 어떻게 코드를 짜는지 모른다.
아무튼 테스트 코드는 실제 코드를 작성할 시 절대적으로 중요한 요소임을 알게 되었다.

중요한 부분을 직접 정리해보았다

궁금하거나 이해가 잘 가지 않는 내용ㅤ📘

🦖ㅤassert 문
👉ㅤ조건문이 True가 아닐 경우, 예외를 일으킨다. 지금까지 잘 움직이던 코드이지만, 추가로 코드를 작성했을 때 예상하지 못한 다른 동작을 하게 될 경우 assert문을 작성해둠으로써 빠르게 이를 방지할 수 있다.


#노마드코더 #북클럽 #노개북

profile
낯선이여, 당도하였으면 당도높은 복숭아

0개의 댓글