컴퓨터사이언스

Study Log/클린코드

[클린코드] 단위테스트 TDD 법칙 세가지

TDD(Test Driven Development) : 테스트 기반 개발 첫째법칙 : 실패하는 단위 테스트를 작성할 때 까지 실제 코드를 작성하지 않는다 둘째법칙 : 컴파일은 실패하지 않으면서 실행이 실패하는 정도로만 단위테스트를 작성한다 셋째법칙 : 현재 실패하는 테스트를 통과할 정도로만 실제 코드를 작성한다. 위 세가지 규칙을 따르면 개발과 테스트가 대략 30초 주기로 묶인다. 테스트 코드와 실제 코드가 함께 나올 수 있는 방법이다. 테스트 코드가 지저분할 수록 변경하기가 어렵다. 테스트 코드가 복잡할 수록 실제 코드를 짜는 시간보다 테스트 케이스를 점점 더 통과시키기 어려워진다. 그래서 테스트 코드는 계속해서 늘어나는 부담이 되버린다. 결국 단위 테스트 코드를 깨끗하게 구현해야 실제 코드를 짤 때 ..

Study Log/클린코드

[클린코드] 휴리스틱(heuristics)이란? : 휴리스틱 이론과 휴리스틱 알고리즘

클린코드 책을 읽던 중 디미터 법칙에 대한 이야기가 나왔다. 디미터 법칙이 잘 알려진 휴리스틱이라는 서술이 있었는데, 나는 휴리스틱의 제대로 된 의미조차 모르고 있었다. 그래서 휴리스틱의 기본 개념과 CS(Computer Science)에서의 휴리스틱의 의미의 차이, 휴리스틱 알고리즘에 대해 알아보고자 이 글을 작성하게 되었다. | 휴리스틱 이론 휴리스틱(heuristics) 또는 발견법(發見法)이란 불충분한 시간이나 정보로 인하여 합리적인 판단을 할 수 없거나, 체계적이면서 합리적인 판단이 굳이 필요하지 않은 상황에서 사람들이 빠르게 사용할 수 있게 보다 용이하게 구성된 간편추론의 방법이다. 문제해결에 있어서 복잡한 문제의 경우 초기에는 휴리스틱을 이용하여 과제를 단순화시킨 후 후기에 규범적(norma..

개발하는 채찡
'컴퓨터사이언스' 태그의 글 목록