ABOUT ME

-

Today
-
Yesterday
-
Total
-
  • 우아한테크캠프 Day05
    우아한테크캠프 2018. 7. 9. 10:52

    오늘 수업에서 가장 와 닿았고, 나 자신을 반성하게 했던 말은 아래와 같다.


    코딩하다 문제를 만났을 때 그 속에서 문제를 해결하는 방법을 찾아봐야 한다

    후퇴를 하려고 하지 말고, 돌아가려고 하지 말고




    Day05 학습 내용



    생성자 대신 static 팩토리 메소드 사용을 고려하자 (이때, 생성자는 private으로)

    1. 생성자와 달리 팩토리 메소드는 메소드명을 가질 수 있다. (가독성 증가)

    2. 생성자와 달리 호출될 때마다 매번 새로운 객체를 생성할 필요가 없다. (불필요한 인스턴스 생성 방지)

    3. 자신의 인스턴스만 반환하는 생성자와 달리 static 팩토리 메소드는 자신이 반환하는 타입의 자식 객체도 반환할 수 있다. (다형성)

    4. 생성자에 로직을 넣지 않아도 된다.


    ex. 추후 추가 예정



    객체지향프로그래밍에서 중복을 제거하는 2가지 방법

    1. 상속

    2. 조합 (인스턴스 변수로 가지는 방법)


    상속(is-a 관계)과 조합(has-a 관계)

    조합이 상속보다 객체 간의 dependency가 약함

    ex. 상속 같은 경우는 부모클래스에서 implements를 사용할 경우 자식에서 다 구현해주어야 하는 단점이 생김


    조합이 변화에 유연하게 대응할 수 있는 구조다.

    상속이 의미가 있는 때도 있다. (이건 다양한 경험을 통해 배울 수 있다.)



    TDD 정리


    테스트하기 쉬운 코드란?

    외부에서 값을 넣어주는 형태 & 반환 값이 있는 함수


    신입 개발자! TDD와 리팩토링, 어떻게 연습할 것인가?

    [1단계]  학습테스트를 통해 단위테스트 연습할 것

    [2단계]  TDD연습 (순수 프로그래밍언어로 TDD 연습을 할 것), 요구사항이 명확한 프로그램으로 연습

    [3단계]  같은 요구사항을 반복해서 연습, 연습할 때마다 난이도를 높이면서, 함수형 프로그래밍 연습

    [4단계]  이제서야 웹 프로젝트에 적용 (토이프로젝트로 무진장 연습해 볼 것)

    [5단계]  ATTD(사용자테스트)와 CI 적용


    TDD, 리팩토링 연습을 위해 필요한 것은?

    - 마음의 여유 (기간 최소 5년)

    - 같은 과제를 반복할 수 있는 인내력 (한 예제만 10번 정도 반복했었다.)

    - 토이 프로젝트


    주의

    설계에 답은 없다. (인덴트를 줄이는 것이 무조건 좋은 것은 아니다.)

    다만, 현 시점에 최선의 답이 무엇인지 고려할 뿐이다.


    책 추천

    Refactoring to Patterns - Joshua Kerievsky

    점진적으로 리팩토링을하다보니, 디자인패턴이 되는 식으로 진행되는 책



    미션을 수행하며 배움을 얻는 게 목적이지, 미션을 끝내는 게 목적이 아니다.

    학습에 있어 조급함은 가장 큰 적이다. 


    교육의 완성은 사회에 나가 스스로 노력하며 완성하는 거다.

    이번 교육 기간 동안 완벽히 완성하겠다는 과욕을 부리지 마라 (By 박재성 교수님)




    '우아한테크캠프' 카테고리의 다른 글

    Git과 Github 정리  (0) 2018.07.10
    우아한테크캠프 Day06  (0) 2018.07.09
    우아한테크캠프 Day04  (0) 2018.07.05
    우아한테크캠프 Day03  (0) 2018.07.04
    자바8 스트림 API & Optional<T>  (0) 2018.07.03

    댓글

Designed by Tistory.