독서

"사용자들이 사진을 공유할 수 있는 기능이 필요하다" 와 같은 문제가 있다고 해보자. 이 문제를 해결하기 위해선 사진 저장, 사진과 사용자의 연결, 사진 보여주기 와 같은 하위 문제를 해결해야한다. 우리는 이렇듯 상위 수준의 문제를 풀 때 여러 개의 하위 문제들로 나누며 이는 코드를 작성할 때도 마찬가지다. 코드를 구성하는 방법은 코드 품질의 기본적인 측면 중 하나이며, 코드를 잘 구성한다는 것은 간결한 추상화 계층을 만드는 것으로 귀결될 때가 많다. 이 장에서는 추상화 계층이 무엇을 의미하는지, 문제를 추상화 계층으로 나누는 방법, 나눠진 추상화 계층을 반영하도록 코드를 구성하는 방법에 대해 알아본다. 왜 추상화 계층을 만드는가? 사용자의 어떤 장치에서 실행되면서 서버에 메시지를 보내는 코드를 작성한다..
코드 품질이 소프트웨어 품질에 어떤 영향을 미칠까? 고품질 코드 저품질 코드 최초 요구 사항 완전하게 충족 경계 조건을 처리하지 못하기 때문에 완전하게 충족하지 못함 요구 사항 변화 사소한 추가 작업 필요 대규모의 코드 변경 및 리팩터링 필요 오류 발생 시 시스템이 복구되거나 부분적으로 작동 시스템은 미리 정의되지 않은 상태에 놓이고 데이터는 손상될 가능성이 있음 처음 접하는 상황 명백히 예상되지 않은 상황도 처리 시스템은 미리 정의되지 않은 상태에 놓이고 데이터는 손상될 가능성이 있음 시스템 공격 시스템은 완전한 상태이고 손상되지 않음 시스템은 미리 정의되지 않은 상태에 놓이고 손상될 가능성이 있음 좋은 코드가 좋은 소프트웨어를 만들기 위한 유일한 조건은 아니지만, 중요한 조건 가운데 하나다. 고품질의..
객체지향은 실제 세상의 모방이 아니다. 우리는 보통 객체지향을 처음 마주할 때 실제 세상의 모방이라는 말을 많이 듣는다. 즉 객체지향 소프트웨어가 실세계의 투영이며, 객체란 현실 세계에 존재하는 사물에 대한 추상화라는 뜻이다. 하지만 이 것은 틀렸다. 애플리케이션을 개발하면서 객체에 직접적으로 대응되는 실제 세상의 사물을 발견할 확률은 그다지 높지 않다. (책을 읽으면서 놀란 부분.. 생각해보니 정말 그렇다! ㅋㅋ) 방화벽이 화재의 확산이 아닌 네트워크 침입을 막는다고 문제가 될까? 실제 세상의 방화벽이 건물과 연관돼 있다고 해서, 네트워크 방화벽이 건물과 연관될 필요가 있을까? 소프트웨어 방화벽과 건물의 방화벽 사이의 의미적 거리만큼이나 소프트웨어 객체와 실제 사물 사이에 존재하는 연관성은 희미하다. ..
인터루드
'독서' 카테고리의 글 목록