😃2022.09.02

일일 회고 23일차

할일 및 한일

경험 및 배움

디자인 패턴 9장(반복자 패턴과 컴포지트 패턴)

오늘은 주말인 만큼, 낮에 할 일을 끝내고 오후엔 친구들도 만나고 쉬려 한다.

우선 디자인 패턴 9장 notion 정리를 마무리지었다.

이번 정리를 마무리 하면서 컴포지트 패턴에 대해 알아볼 수 있었다.

컴포지트 패턴(Composite Pattern)

객체를 트리구조로 구성해서 부분-전체 계층구조를 구현한다.

클라이언트에서 개별 객체와 복합 객체를 똑같은 방법으로 다룰 수 있다.

여기서 부분-전체 계층구조란, 메뉴나 메뉴 항목(부분)들이 계층을 이루고 있지만, 모든 부분들을 하나로 묶어서 전체로 다룰 수 있는 구조를 뜻한다.

컴포지트 패턴을 이용하면 간단한 코드로 똑같은 작업을 전체 메뉴 구조를 대상으로 반복해서 적용할 수 있다.

컴포지트 패턴과 반복자 패턴이 관련이 있고 꼭 같이 써야 하는건 아니다. 컴포지트 패턴은 저번에 정리한 단일 역할 원칙을 지키지 못한 대신, 투명성을 확보한 패턴이라고 할 수 있다. 여기서 말하는 투명성이란, 어떤 것이 복합 객체이고 어떤 것이 잎 객체인지 클라이언트는 투명하게 볼 수 있다는 것이다.

컴포지트 패턴을 활용하여 투명성은 챙기고 단일 역할 원칙은 포기할 것인지, 아니면 다른 패턴을 적용하여 단일 역할 원칙을 챙기고 투명성을 포기할 것인지는 상황에 따라 다르므로 상황에 맞는 패턴을 적절히 사용하는 것이 좋다.

android studio 설치 및 프로젝트(예제) 구조 짜보기

안드로이드 스튜디오는 jetbrains tool box에서 쉽게 설치할 수 있었다. 후 책을 보고 챕터 1에 있는 첫 번째 앱 실행하기 까지 완료하였다.

에뮬레이터(가상 머신)을 실행시켜서 실행하는 구조인데, 처음 접해보는 만큼 신기하였다.

github에도 repository를 생성하였고, notion에도 page를 만들어 앞으로 배울 내용을 정리하고, 과제도 notion으로 정리하여 제출할 예정이다.

github에 올리는 구조는 아직 잘 파악하지 못하여서 연구실에 가면 여쭤볼 생각이다. 평소에 하던 작업들과는 구조가 달라서 당황하였다.

개선 및 목표

  • 이번주가 개강주여서 제일 널널하니, 미리미리 다 해놓자.

Last updated