본문 바로가기

소프트웨어의품격2

Design by Contract(계약에 의한 설계)와 테스트 코드 그리고 예제📝 * 이 글은 책 소프트웨어의 품격 5장과 하단 reference를 참고했습니다. 잘못된 내용이 있다면 편하게 말씀해주세요 🙏🏻 Design by Contract(계약에 의한 설계, DbC)란 무엇인가? 사전 조건, 사후 조건, 페널티, 불변 조건 세 가지 계약 검사 계약 검사 예제(BoundedSet) DbC와 Test Code Design by Contract(계약에 의한 설계)란 무엇인가? Design by Contract(이하 DbC) 개념은 1980년대 버트란드 마이어가 처음 제시했다. 아이디어는 일상에서의 계약 개념과 동일하다. 예를 들어 통신사-고객 사이의 통신 계약을 맺었다. 통신사는 고객에게 정상적인 시스템을 제공해야 하고 고객은 요금을 내는 의무를 가진다. 이를 소프트웨어 시스템 중 메서.. 2022. 2. 7.
최적의 시간 복잡도를 찾아서 🐠 * 이 글은 책 소프트웨어의 품격 3장을 참고하여 작성되었습니다. 잘못된 내용이 있다면 편하게 말씀해주세요 🙏🏻 '시간 복잡도'는 알고리즘이 어떤 문제를 해결하는 데 걸리는 시간을 의미한다. 어떤 문제를 해결하는(같은 결과를 내는) 코드는 많다. 많은 코드 중 어떤 것이 좋을까? 보통 시간이 적게 걸리는 코드가 좋다고 한다. 바로 시간 복잡도가 낮은(효율이 좋은) 코드를 작성해야 한다. CS 이론이나 코딩테스트에서 시간 복잡도를 낮추기(효율을 좋게) 위해 여러 자료구조나 알고리즘을 최적화한다. 이때 예제는 하나의 함수에 대한 입, 출력을 최적화하여 빠른 코드를 작성한다. 하지만 실무에선 단순히 하나의 입,출력만 고려하는 것이 아니다. 다양한 메서드 간 연결과 함수의 사용 정도를 고려해 설계해야 한다. 예.. 2022. 1. 20.