2장 추상화 계층널값 및 의사코드 규약널값에 대한 규약을 지정하지 않으면, NullPointerException, NullRefrenceException, Cannot read property of null과 같은 에러를 발생할 수 있다.이를 위해 널 안전성과 보이드 안전성에 대한 개념이 생겼다.자바나 c++에서는 옵셔널 타입을 통해서 널 안전성을 보장한다.추상화 계층 및 코드 품질의 핵심 요소가독성모든 세부 사항을 이해하는 것은 불가능하지만, 높은 계층의 추상화를 이해하고 사용하기 쉽게 해야한다.모듈화구현 세부 사항이 외부로 노출되지 않도록 보장할 때, 다른 계층이나 코드의 일부에 영향을 미치지 않고 계층 내에서만 구현을 변경하기가 매우 쉬워진다.재사용성 및 일반화성테스트 용이성코드의 계층추상화 계층을..
6장 스터디 기능 설계 대 구조 설계 기능 측면 설계 : 제품이 사용자를 위해 무엇을 할 수 있는지에 초점 구조 측면 설계 : 제품의 형태가 어떠해야 하는지에 초점 훌륭한 기능이 훌륭한 소프트웨어를 만드는 충분조건이라면, 훌륭한 구조는 훌륭한 소프트웨어를 만들기 위한 필요조건이다. 미래를 예측할 수없지만, 변경을 수용할 수 있도록 설계에 마련해야 한다 객체지향 접근방법은 자주 변경되지 않는 안정적인 객체 구조를 바탕으로 시스템 기능을 객체 간의 책임으로 분배한다. 시스템 기능을 더 작은 책임으로 분할되고 적절한 객체에게 분배되기 때문에 기능이 변경되더라도 객체 구조는 그대로 유지된다. 이것이 객체를 기반으로 책임과 역할을 식별하고 메시지를 기반으로 객체들의 협력 관계를 구축하는 이유다. 안정적인 객체 구..
4장 스터디 역할, 책임, 협력 인간이 어떤 본질적인 특성을 가지고 있느냐가 아닌 어떤 상황에 처해 있느냐가 인간의 행동을 결정한다. 개인이 처해 있는 정황 또는 문맥이 인간의 행동 방식을 결정한다. 객체지향 프로그램이에서 협력이라는 문맥이 객체의 행동 방식을 결정한다. 가장 흔한 실수는 협력이라는 문맥을 고려하지 않은 채 객체가 가져야할 상태와 행동부터 고민하는 것이다. 요약> 객체지향 프로그래밍에서 가장 중요한 것은 객체들 간의 요청과 응답 속의 협력이다. 객체지향적인 협력 일반적으로 해결 과정에서 여러 사람이 참여하게 된다. 이 과정에서 요청과 응답의 연쇄적인 흐름이 발생한다. 협력 은 한 사람이 다른 사람에게 도움을 요청 할 때 발생한다. 요약1> 협력은 다수의 요청과 응답으로 이루어지며, 연쇄적..
2장 스터디 프로퍼티와 프로퍼티 값의 차이 정적 & 동적 상태는 특정 시점에 객체가 가지고 있는 정보의 집합으로 객체의 구조적 특징을 표현 단순한 값과 다른 객체를 참조하는 링크로 구분 객체가 취하는 행동은 객체 자신의 상태를 변경시킨다 객체의 행동에 의해 객체의 상태가 변경된다는 것은 행동이 부수 효과를 초래한다는 것을 의미 → Side effect 객체의 행동은 상태에 영향을 받는다 객체의 행동은 상태를 변경시킨다 두 인스턴스의 상태가 같다면 값이 같다고 판단한다. 값이 같은지 여부는 상태가 같은지로 판단한다. 식별자 객체가 식별 가능하다는 것은 객체를 서로 구별할 수 있는 특정한 프로퍼티가 객체 안에 존재한다는 것을 의미하며, 이를 식별자라고 한다. 즉 객체가 아닌 단순한 값은 식별자를 가지지 않는..
LED 전광판 앱 제작 : 기초 프로젝트 - ScreenTransition 앱은 텍스트와 배경 색상을 설정하고, 전광판에 표시할 글자를 표시하는 기능을 한다. - UINavigation Controller 를 통해서 화면을 전환하고, 원하는 기능을 추가할 수 있다. - 화면 전환 방법을 배우고 프로젝트에 적용하는 방법을 배운다. - 다양한 화면 전환 방식 Sugue : Push, Present / Code : Push, Present 를 배울 수 있다. Navigation Controller 추가 - 우측 상단의 플러스 버튼으로 새로운 Controller 추가 Root View Controller 삭제 후 Root View Controller 재설정 기존의 Root Controller를 삭제 후 Navi..