과학은 문제에서 시작하며, 문제를 해결하기 위해 시행착오라는 방법을 선택합니다. 20세기 가장 위대한 철학자로 꼽히는 칼 포퍼는 모든 생물이 문제를 해결하기 위해 같은 패턴으로 움직인다고 이야기합니다. 이 글에서는 칼 포퍼의 3단계 모델을 통해 시행착오의 과정을 살펴보고, 아메바와 아인슈타인의 사례를 통해 시행착오가 갖는 의미를 살펴보고, 더 나아가, 소프트웨어 개발 분야에서 시행착오가 어떻게 적용될 수 있는지, 그리고 테스트 코드를 기반으로 코딩하는 것이 왜 효과적인 방법인지 SW 개발자의 관점에서 살짝 말해보려고 합니다.칼 포퍼의 시행착오 3단계 모델칼 포퍼는 시행착오를 통한 학습 과정을 3단계 모델로 정리했습니다.문제: 기대와 다른 결과가 나타나거나, 기존의 해결 방식이 더 이상 작동하지 않을 때 ..