알고리즘 문제 자바스크립트로 배열 평균구하기, 하샤드수 문제를 풀었고, 기봉이형과 짝프로그래밍으로 짝수홀수, 문자열을 숫자로, 두 배열의 합 문제를 자바로 풀었다.
객체지향의 사실과 오해 책을 105p까지 읽고 새로 알게된점이나 몰랐던 부분을 공유했다.
Feelings
자바스크립트로 문제를 풀다가 자바를 풀게되니 정말 귀찮은 부분도 많고 모르는 부분도 많다는 것을 느꼈다.
자바스크립트가 정말 편하고 좋은 언어구나 라는 것을 몸소 느꼈다.
Findings
행동이 상태를 결정한다. 상태를 먼저 결정하고 행동을 나중에 결정하는 방법은 설계에 나쁜 영향을 끼친다. 이 장에서 가장 중요한 진실은 “행동이 상태를 결정한다” 이다.
소프트웨어 특징 의인화는 현실의 객체보다 소프트웨어의 객체가 더 많은 일을 할 수 있다는 것이다. 소프트 웨어 객체를 창조할때 현실 객체를 모방하지 않는다. 소프트웨어 객체는 더 크고 새로운 세계를 창조하는 것이다.
추상화는 다른 것 다 필요없이 목적에만 충실하는 것이다.
첫 번째 차원은 구체적인 사물들 간의 공통점은 취하고 차이점은 버리는 일반화를 통해 단순하게 만드는 것이다.
두 번째 차원은 중요한 부분을 강조하기 위해 불필요한 세부 사항을 제거함으로써 단순하게 만드는 것이다.
객체란 특정한 개념을 적용할 수 있는 구체적인 사물을 의미한다. 개념이 객체에 적용됐을 때 객체를 개념의 인스턴스라고 한다.
심볼: 개념을 가리키는 간략한 이름이나 명칭
내연: 개념의 완전한 정의를 나타내며 내연의 의미를 이용해 객체가 개념에 속하는지 여부를 확인할 수 있다.
외연: 개념에 속하는 모든 객체의 집합
타입은 개념과 동일하다. 따라서 타입이란 우리가 인식하고 있는 다양한 사물이나 객체에 적용할 수 있는 아이디어나 관념을 의미한다. 어떤 객체에 적용할 수 있을 때 그 객체를 타입 인스턴스라고 한다. 타입의 인스턴스는 타입을 구성하는 외연인 객체의 집합의 일원이 된다.
Future Action Plan
자바에서 타입을 정하는게 정말 중요한 것 같다. 자바스크립트 같은 경우는 알아서 자동으로 타입을 잡아주는데 자바는 그렇지 않다. 내가 직접 타입을 설정해줘야 하고, 그에따라 잘못 설정했다면 오류가 발생한다. 아직 미숙해서 타입 오류가 많이 발생하는 것 같다. 앞으로는 타입 설정을 할때 생각보고 결정하는 습관을 길러야겠다.