728x90
반응형
구조, 성능, 게임
좋은 소프트 웨어 구조란?
- 뭔가를 변경 또는 고쳐야 할 때 그럴 줄 알았다는 듯이 코드가 준비되어 있는 걸 의미
구조는 변경과 관련이 있다.
- 누군가는 코드를 고쳐야 한다.
- 얼마나 쉽게 변경할 수 있냐가 코드 설계를 평가하는 척도
커플링과 디커플링
- 양쪽 코드 중 한쪽이 없으면 코드를 이해할 수 없을 때 두 코드는 커플링 되어 있다고 말할 수 있다. (작업에 들어가기 전에 알아야 할 지식의 양을 줄여야 한다. 그렇기 때문에 커플링이 많이 되어 있으면 그만큼 알아야 할 지식 및 코드가 많아지기 때문에 커플링은 좋지 않다 !)
- 어느 한 코드를 변경했을 때 다른 코드를 변경하지 않아도 되는 걸 디커플링이라고 한다.
기능 추가나 코드 변경을 할 때마다 나머지 코드와 깔끔하게 통합될 수 있도록 노력 해야 한다. (엄청난 시간과 노력이 필요하다 !)
단순함
- 코드는 최대한 간결하게, 직관적으로 짜는 게 좋다. (읽었을 때 의도를 파악할 수 있다면 OK)
- 이를 위해선 코드를 덧붙이는 게 아닌 필요 없는 코드를 빼는 게 중요하다 !
정리
- 추상화와 디커플링은 코드를 쉽고, 빠르게 동작하게 만든다.
- 그러나, 코드에 대한 유연함이 필요하다는 확신이 없다면 그 것 때문에 시간 낭비하지는 말기
- 최적화는 항상 생각해야 한다. 핵심 최적화는 가능한 늦게 하기
- 그렇다고 너무 늦게 하지 말기
- 기획 내용을 바로 확인할 수 있도록 빠르게 개발 및 코딩 해야 한다.
- 그렇다고 너무 엉망으로 구현하지 말기. 그걸 수정해야 하는 사람은 우리..다.
- 재밌는 걸 만들고 싶다면 먼저, 만드는 데에 재미를 느껴야 한다.구조, 성능, 게임
728x90