설계

설계(design)와 아키텍처(architecture) 설계와 아키텍처에는 아무런 차이가 없다. 단지.. 아키텍처는 저수준의 세부사항과는 분리된 고수준의 무언가를 가리킬때 흔히 사용되며 설계는 저수준의 구조 또는 결정사항 등을 의미할 때 많이 사용된다. 좋은 소프트웨어 설계의 목표? 소프트웨어 아키텍처의 목표는 필요한 시스템을 만들고 유지보수하는 데 투입되는 인력을 최소화하는데 있다. 좋은 아키텍처? 좋은 소프트웨어? 왜 좋은 소프트웨어를 만들어야 하는가?라는 질문이 거창한 대답을 요구할 것 같지만 결론은 유지보수 비용을 줄이기 위함이다. 아무리 복잡한 프로젝트여도 말이다. 생각해봐야 할 점 소프트웨어 제품이 잘 팔린다 -> 엔지니어링 직원 수를 뽑아 제품을 개발한다 -> 시간이 지날수록 코드 라인당 비..
객체 설계시 주의해야할 점 객체지향에 갓 입문한 사람들이 가장 쉽게 빠지는 함정은 상태를 중심으로 객체를 설계하는 것이다. 보통 먼저 객체에 필요한 상태가 무엇인지 결정한 후 그 상태에 필요한 행동을 결정을 하게 된다. 자동차에는 연료량과 바퀴를 가지고 있다 → 자동차가 달리면 연료량이 줄어든다. 이렇게 상태를 먼저 결정하고 행동을 나중에 결정한다면 설계에 나쁜 영향을 주게 되는데.. 첫째, 상태를 먼저 결정할 경우 캡슐화가 저해된다. 상태에 초점을 맞출 경우 상태가 객체 내부로 깔끔하게 캡슐화되지 못하고 공용 인터페이스에 그대로 노출되버릴 확률이 높아진다. 둘째, 객체를 협력자가 아닌 고립된 섬으로 만든다. 객체가 필요한 이유는 애플리케이션 문맥내 다른 객체와 협력하기 위함이다. 상태를 먼저 고려하는 ..
깡냉쓰
'설계' 태그의 글 목록