SOLID 원칙이란?유지보수성, 유연한 확장성, 재사용성 같은 좋은 코드를 만들 수 있는 원칙이다. 코드는 한번 만들고 끝나는게 아니라 유지, 보수, 확장을 거쳐야하기 때문에 처음에 설계할 때 이에 유용한 코드를 만드는 것이 좋다. 목적: 결합도는 낮추고, 응집도는 높이자! 결합도: 모듈과 모듈간의 의존 정도 == 클래스간 관계가 느슨 -> 변경이 자유롭다.응집도: 한 모듈 내 구성요소의 연관정도 == 클래스의 내부 목적이 뚜렷 -> 코드가 명확 예) battle과제에서 player가 무기를 생성하고 관리하는 형태는 여러 책임이 혼합되어 응집도가 낮다. 그럼 player가 외부에서 무기를 공급받고, 공격만 하는 주체라면? => 결합도가 낮아진다. interface Weapon{ void use();}c..