본문 바로가기

728x90

Abstract

(5)
[Design Pattern] Observer Pattern 이 글은 헤드퍼스트 디자인 패턴을 읽고 필자의 방식으로 이해하고 정리한 내용입니다. 개요 옵저버 패턴은 한 객체의 상태가 바뀌면 그 객체에 의존하는 다른 객체에게 연락이 가고 자동으로 내용이 갱신되는 방식으로 일대다(one-to-many) 의존성을 정의합니다. (헤드퍼스트 디자인 패턴, 87p) 일대다, One to Many? 개요에 적어놨듯 옵저버 패턴은 일대다 관계를 표현하는 패턴이다. 일대다 관계이다 보니 이를 이해하기 위해 알아야 둬야 할 용어가 등장하는데 바로 Subject와 Observer이다. Subject와 Observer는 신문사와 신문사 구독자와의 관계로 설명할 수 있다. 여기서 신문사에 해당하는 개념이 Subject이고 구독자에 해당하는 개념이 Observer이다. 즉, 신문사가 소식..
[Design Pattern] Strategy Pattern 이 글은 헤드퍼스트 디자인 패턴을 읽고 필자의 방식으로 이해하고 정리한 내용입니다. 개요 Strategy Pattern은 Design Pattern 중 행위(Behavior)에 속하는 패턴이며 정의하자면 다음과 같다. 알고리즘군을 정의하고 캡슐화해서 각각의 알고리즘 군을 수정해서 쓸 수 있게 해 줍니다. 전략 패턴을 사용하면 클라이언트로부터 알고리즘을 분리해서 독립적으로 변경할 수 있습니다. (헤드퍼스트 디자인 패턴, 64p) 상속은 무엇이 문제일까? "알고리즘을 군을 정의하고 캡슐화해서 각각의 알고리즘 군을 수정해서 쓴다"라는 건 Super Class에 Method를 정의하고 이를 상속받는 Sub Class가 이를 Overrding으로 재사용한다는 측면에서 다를 바 없어 보인다. 만약 Sub Class..
마틴 파울러의 "리팩터링의 중요성" 메모 https://www.youtube.com/watch?v=mNPpfB8JSIU 리팩터링 절차 개요 개발자들은 리팩터링이 중요하다는 것을 많이들 말하지만 언제 하는 것이 중요한가에 대한 주제로 이야기를 하지 않는다. TDD TDD의 절차 실패하는 테스트를 넣고, 기능을 성공적으로 구현함 문제 TDD 형식으로 개발을 하게 되면 코드를 잘 짜야한다는 고민을 깊이 하지 않게 됨 개발자는 기능을 구현하는 것이 첫 번째고 기능이 정상작동하는 것이 우선 이 기능이 큰 시스템에서 어떻게 적용될지 깊이 고민하지 않음 제기 왜 코드를 짜는 단계를 2 단계로 해야 될까? 기능을 만드는 것 코드를 깔끔하게 만드는 것 리팩터링이 무엇을 하는 건지에 대해 생각해봐야 됨 켄트 백 왈 개발을 할 때 2가지 모드로 진행하는 걸 기억해..
변수에 관해서.. Reference https://www.youtube.com/watch?v=kRdML08R2Yo&list=PLwouWTPuIjUg0dmHoxgqNXyx3Acy7BNCz 에서 보고 정리한 내용입니다. Summary 변수의 사용 형태 변수를 미리 선언 후 중간에 변후 사용 변수의 용도와 의미를 바꿔가며 사용 위 형태로 변수를 사용할 경우 다음과 같은 단점이 생김 변수 범위 증가 개수 증가 용도 증가 추적이 복잡해짐 인지부하 코드를 이해하는데 드는 노력이 증가함 코드 변경의 어려움이 높아짐 어떻게 할까? 변수를 아껴쓰자 1. 선언한고 한 두번 참조하는 경우는 해당 변수의 필요성을 검토하자 만약 사용해야된다면 변수 대신 직접 코드를 넣자 의미를 더해주는 변수를 위주로 사용하자 식이 복잡하거나 길어질 경우 변수로..
[Object: 코드로 이해하는 객체 지향 설계] 챕터 1 정리 책을 읽으면서 들었던 생각 또는 내용을 정리한 글입니다. Software module의 3가지 목적 실행 중에 제대로 동작하는 것 실행 중에 제대로 동작하는 것은 기본적인 내용이지만 다르게 생각을해보건데 software가 하나의 제품이기 때문이지 않을까 싶다. 어떤 제품을 샀을 때 제품이 불량이고 하자가 많으면 사람들은 그 기업의 제품을 신뢰하려고 들까? 실행 중에 제대로 동작하는 것은 이처럼 하나의 소프트웨어 모듈은 제품이 가져야 하는 기본적인 요소라고 생각하자 변경을 위해 존재하는 것 그렇다고 소프트웨 모듈이 현실 제품의 그것과 똑같이 생각하면 안 된다. 소프트웨 모듈이라는 제품은 변경이 잦은 제품이다. 코드를 읽는 사람과 의사소통하는 것 변경이 잦고 어떤 이유를 거쳐 어떻게 만들어졌는가를 마치 설계..

728x90
반응형