Community

개발자 99% 커뮤니티에서 수다 떨어요!

← Go back
TIL 4장 실용주의 편집증
#pragmatic
2년 전
584

오늘 TIL 3줄 요약

  • 우리는 완벽한 소프트웨어를 만들 수 없다.

  • Fail fast

  • 작게 작게

TIL (Today I Learned) 날짜

2022.03.24(목)

오늘 읽은 범위

  • 4장 실용주의 편집증

    • Topic 23 계약에 의한 설계

    • Topic 24 죽은 프로그램은 거짓말을 하지 않는다

    • Topic 25 단정적 프로그래밍

    • Topic 26 리소스 사용의 균형

    • Topic 27 헤드라이트를 앞서가지 말라

책에서 기억하고 싶은 내용을 써보세요.

나는 내가 아무 것도 모른다는 것을 안다" 라는 철학자의 말 처럼 책에서는 “우리는 완벽한 소프트웨어를 만들 수 없다”고 단언하고 있다. 실용주의 프로그래머는 자신을 비롯한 어느 누구도 믿지 않기에 방어책을 마련한다. 그리고 그 방어 수단으로, 계약에 의한 설계, 오류처리, 단언적 프로그래밍, 현명한 리소스 관리 원칙, 작은 단위로 작업하고 예언하지 말 것을 얘기한다.

단언문, 자바에서도 단언문 assert 가 어느 시점에 추가되었다. 당시에는 의미도 몰랐고 사용할 일도 없어서 관심 밖이였지만 최근까지도 시험삼아 몇 번 써보고 잊고 있었다. 일반적인 오류처리라면 예외처리 수단이 있었기에 그 사용처가 애매했었다. 기본적으로 작동이 꺼져 있는 것도 영향이 있었다.

Fail fast 라는 개념도 들어서 알고 있었고 개발 중에 그 철학을 적용해보려 노력했지만 구체적으로 정확하게 어떻게 하라는 건지 감이 오지는 않았다.

그런데 이 책에서는 이 두 개념에 대해서 명확하게 가이드를 제시하고 있다. 절대 있어서는 안 될 일이 발생하면 단언문을 사용하여 즉시 프로그램을 종료하라고. 정상적이지 않은 프로그램이 계속 작동하는 것 보다는 죽은 프로그램이 덜 위해하다고. Fail fast!

오늘 읽은 소감은? 떠오르는 생각을 가볍게 적어보세요

이 장에서 이야기하는 개념들은 어느 정도 알고 있고 개발 중에 실천하려고 노력하고 있지만, DBC나 단언적 프로그래밍은 조금 거리가 있었다. Fail fast 개념도 다시 생각해 볼 기회가 되었다.

궁금한 내용이 있거나, 잘 이해되지 않는 내용이 있다면 적어보세요.

DBC에 대해 어렴풋이 인지하고 있었는데, 상식선에서라도 공부할 필요성이 있겠다.

클래스 불변식, 의미론적 불변식에서 나오는 불변식(invariant)라는 용어가 쉽게 와 닿지 않는다. 스칼라 공부 중에 나왔던 용어이기도 해서 좀 더 살펴봐야겠다.

오늘 읽은 다른사람의 TIL

부록 Tips

  • Tip 36 여러분은 완벽한 소프트웨어를 만들 수 없다.

  • Tip 37 계약으로 설계하라.

  • Tip 38 일찍 작동을 멈춰라.

  • Tip 39 단정문으로 불가능한 상황을 예방하라.

  • Tip 40 자신이 시작한 것은 자신이 끝내라.

  • Tip 41 지역적으로 행동하라.

  • Tip 42 작은 단계들을 밟아라. 언제나.

  • Tip 43 예언하지 말라.