20210531

Jin·2021년 5월 31일

Facts

  • 자바 스터디 - 중첩 클래스, 내부 클래스, 자바 doc, 인터페이스
  • 테스트주도개발로 배우는 객체 지향 설계와 실천 - 의사소통, 게임
  • 리턴즈 작업
  • TDD 수련 조금 더 진행 - 예상 대진표
    일반화 할 수 있는 부분이 보인다. 형태도 일부러 맞춰 줬다. 내일 좀 더 하기.
    int groupNo(int i) {
        return (i + 1) / 2;
    }

    int solution(int N, int a, int b) {
        if (Math.abs(groupNo(a) - groupNo(b)) == 0) {
            return 1;
        }
        if (Math.abs(groupNo(a) - groupNo(b)) == 1) {
            return 2;
        }
        if (Math.abs(groupNo(a) - groupNo(b)) == 2) {
            return 3;
        }
        return -1;
    }

Feelings

아침 부터 TIL 쓰기 1일차 성공. 와... 축하해..
TDD 수련 아주 조금 진행. 오... 잘했네...

자신에 대한 확신과 더불에 도구나 방법론에 대해 의심하는 태도를 실천함. 도구에 대한 지나친 확신보다 훨씬 더 해로운 것은 자신에 대한 의심인 것 같다는 생각이 들었음. 후자로 부터 전자가 도출되는 것 같은 느낌도 듦.

세탁기가 없어서 밤에 빨래하러감. 주말에 게으름 피운자의 최후.

힘들어도 할 건 전부다 하기. 습관이 될때까지는 버티는게 답..인가? 답인듯?

Findings

문제란 무엇인가?

대체 뭐가 문제야 중에서.

문제란 인식하는것과 바라는 것의 차이다.

  • 인식 - 집이 너무 춥다.
  • 바람 - 따뜻한 집

그러나 온도 조절기를 보니 온도가 보통 사람이라면 꽤 따뜻하다고 느낄 수 있는 25도 라고 해보자.
..
이 경우 따뜻함의 문제를 허상의 문제로 간주할 수 있을 것이다.
...
그러나 착각하지 마라. 허상의 문제들이 진짜 문제다.
...
25도와 너무 춥다는 느낌에 대해 '몸이 아프다' 고 결론 내릴지도 모른다. 침대로 가거나, 약을 먹거나, 물을 마시거나, 혹은 모두 다 하거나, 주치의와 진료시간을 잡을 수도 있다.

객체간의 의사소통

테스트주도개발로 배우는 객체 지향 설계와 실천

위대하고 성장 가능한 시스템을 만들 때의 핵심은 모듈 간의 의사소통에 있지, 모듈의 내부 특성이나 작동 방식에 있지 않다.

쓰는 쪽 부터 만드세요.

시스템을 이런식으로 구축하면 방법이 아니라 목적에 집중할 수 있어, 시스템의 행위를 변경하기가 더 쉽다.

CRC 카드

테스트주도개발로 배우는 객체 지향 설계와 실천

이따금 우리는 키보드에서 한 걸음 물러나 워프 브록과 맥킨이 설명해준 CRC카드 라는 비공식적인 설계 기법을 이용할 때가 있다. 이 기법은 원시적인 인덱스 카드를 이용해 애플리케이션의 잠재적인 객체 구조나 그중 일부를 살펴보는 것이다. 인덱스 카드를 이용하면 세부사항에 막히거나 초기에 발견한 해법에만 몰두하지 않고도 구조를 실험해볼 수 있다.

예시. 게임 엔진

  • 책임
    • 게임 상태갱신 with 애니메이터
    • 게임 상태표시 with 렌더러
    • 충돌 해결 with 충돌감지기

인터페이스와 다형성

토비의 스프링

하지만 클래스 사이에 관계가 만들어진 것은 아니고, 단지 오브젝트 사이에 다이내믹한 관계가 만들어지는 것이다. 이 차이를 잘 구분할 수 있어야 한다. 클래스 사이의 관계는 코드에 다른 클래스 이름이 나타나기 때문에 만들어지는 것이다. 하지만 오브젝트 사이의 관계는 그렇지 않다. 코드에서는 특정 클래스를 전혀 알지 못하더라도 해당 클래스가 구현한 인터했다면, 그 클래스의 오브젝트를 인터페이스 타입으로 받아서 사용할 수 있다. 바로 객체지향 프로그램에는 다형성이라는 특징이 있는 덕분이다.

#.

  • 개인 정보를 주의해서 다루자.
  • docker kill vs rm vs stop => 컨테이너에 대한 멘탈모델을 다시 한 번 그려보기.

Affirmation

나는 자신을 믿는 사람이다.

0개의 댓글