https://ko.wikipedia.org/wiki/%EB%8B%A8%EC%9D%BC_%EC%B1%85%EC%9E%84_%EC%9B%90%EC%B9%99

    https://ko.wikipedia.org/wiki/%EA%B0%9C%EB%B0%A9-%ED%8F%90%EC%87%84_%EC%9B%90%EC%B9%99


    1. 단일 책임 원칙: 모듈/클래스 책임의 분리

    한 모듈이 여러 가지 일을 동시에 수행하게 하지 말자는 것입니다. 모듈이나 클래스를 정의하는 근본적인 이유와도 관련이 있을 것 같네요. 나중에 객체 지향 프로그래밍을 배우고 다시 읽어봐야겠어요. 아직은 절차적/구조적 프로그래밍에 너무 익숙하기 때문입니다 ㅠ

    2. 개방-패쇄 원칙: 확장에 대해서는 열리고, 수정에 대해서는 닫혀있음

    'A가 코딩을 하다가 B가 코딩을 하게 되는 경우, B가 할 때 A의 코드를 분석할 필요 없이 뒤에다가 추가만 할 수 있게 만들자'라는 것 같습니다. 뭔가 이 원칙을 너무 지키면 코드가 너무 길어지고 효율이 떨어질까봐 걱정되는 부분이네요. '개발자의 편의'와 '프로그램의 성능' 사이에는 언제나 갈등이 있는 듯 합니다. 파이썬만 봐도 알 수 있듯이.

    Posted by Lamplighter