본문 바로가기

전체 글239

바이칸 후기 안녕하세요~ 오늘은 유튜브에서 좋다고 해서 구매한 ㅋㅋㅋ 바이칸을 들고 왔습니다! 저는 오늘의집에서 구매했는데... 왜 Naver가 표지에 있는걸까요 ㅋㅋㅋㅋ 저는 3종류를 구매했는데요~~ 더럽게 비쌉니다 ㅠㅠ 돈값을 할런지.... 솔은 확실히 강해보입니다 ㅋㅋㅋ 바닥을 닦을거라 강한놈으로 ㅋㅋ 주문했습니다. 작은 솔은 벽 타일에 곰팡이를 죽이려고 샀어요 ㅠㅠ 아래는 청소전인데 혐 주의입니다................... 완전 더럽죠 ㅠㅠㅠ 그래서 바로 청소에 들어갔습니다 쓱삭쓱삭 청소 후 모습입니다!! 두개 솔을 이용해서 쓱삭쓱삭 했는데요.... 뭔가 잘 밀리는 느낌은 들었고... 굉장히 솔이 강력하더라구요 ㅋㅋㅋ 저는 만족스러운데 꾸준히 써봐야되긴할 것 같아요... 작은거는 그렇게 막 드라마틱하게.. 2022. 8. 5.
[Design Pattern] 메멘토 패턴(Memento Pattern)에 대해 알아보자 Definition 메멘토 패턴(Mediator Pattern)은 객체를 이전 상태로 되돌릴 수 있는 기능을 제공하는 디자인 패턴이다. Behavioral Patterns Situation - 객체를 이전의 상태로 복구해야 할 때 (사용자가 '작업 취소'를 요청) - 시스템에서 핵심적인 기능을 담당하는 객체의 상태 저장 - 핵심적인 객체의 캡슐화 유지 Structure Pros - 저장된 상태를 핵심 객체와는 다른 별도의 객체에 보관할 수 있어 안전하다. - 핵심 객체의 데이터를 계속해서 캡슐화된 상태로 유지할 수 있다. - 복구 기능을 구현하기가 쉽다. Cons - 상태를 저장하고 복구하는 데 시간이 오래 걸릴 수 있다. 비슷한 패턴 - "undo"를 구현할 때 Command와 Memento를 함께 사.. 2022. 8. 2.
[Design Pattern] 중재자 패턴(Mediator Pattern)에 대해 알아보자 Definition 중재자 패턴(Mediator Pattern)은 모든 클래스간의 복잡한 로직을 캡슐화하여 하나의 클래스에 위임하여 처리하는 패턴이다. Behavioral Patterns Situation - GUI 어플리케이션에 효과적(라디오 버튼, 텍스트 필드, 버튼은 각각 다른 클래스로 되어 있음 -> 다수의 객체를 조정해야 하는 경우) - 서로 관련된 객체 사이의 복잡한 통신과 제어를 한곳으로 집중하고 싶을 때 - M개의 객체 사이에 N개의 관계가 형성되어 있어 아주 복잡하게 얽혀 있을 때 이를 M:1 관계로 바꿔주기 위해 Structure Pros - 시스템과 객체를 분리함으로써 재사용성을 획기적으로 향상시킬 수 있다. - 제어 로직을 한 군데 모아놨으므로 관리하기가 수월하다. - 시스템에 들어.. 2022. 8. 2.
Architecture Styles Batch Sequential Style 정의 데이터 흐름 아키텍처 스타일 시스템은 데이터 셋을 조작하고 순차적으로 실행되는 독립 컴포넌트로 구성됨 한 컴포넌트는 이전 컴포넌트가 완료되어야 다음이 시작됨 데이터는 컴포넌트 간에 whole batch로 전송됨 동기 여러 단계에서 데이터 셋을 조작해야 할 때 하나의 컴포넌트로 전체 기능을 처리하기 어려울 때 (컴포넌트들의 시퀀스에 대한 수요) 시스템을 재구성해야 할 때 컴포넌트를 쉽게 삽입, 제거 또는 재 정렬해야 할 때 Applicable Situation 독립적인 데이터 조작 컴포넌트로 구성된 시스템(즉, 데이터 조작 집약적인 시스템) 컴포넌트는 데이터 흐름의 순서에 따라 순차적으로 연결됨 (병렬 처리는 지원하지 않음) 전체 배치에서 컴포넌트에서 다음 컴.. 2022. 8. 1.
[Design Pattern] 책임 연쇄 패턴(Chain of Reponsibility Pattern)에 대해 알아보자 Definition 책임 연쇄(Chain of Responsibility)는 일련의 핸들러를 따라 요청을 전달할수 있는 패턴이다. 요청을 받으면 각 핸들러는 요청을 처리할지 아니면 체인의 다음 핸들러로 전달할지 결정한다. Behavioral Patterns Situation - 1개의 요청을 2개 이상의 객체에서 처리해야 할때 - 윈도우 시스템에서 마우스 클릭과 키보드 이벤트를 처리할 때 흔히 쓰인다. - 프로그램이 다양한 방식으로 다양한 종류의 요청을 처리할 것으로 예상되지만 정확한 요청 유형과 순서를 미리 알 수 없는 경우 - 특정 순서로 여러 핸들러를 실행해야 하는 경우 Structure Pros - 요청을 보낸 쪽과 받는 쪽을 분리할 수 있다. - 객체는 사슬의 구조를 몰라도 되고 그 사슬에 들어.. 2022. 7. 29.
[Design Pattern] 빌더 패턴(Builder Pattern)에 대해 알아보자 Definition 빌더(Builder)는 복잡한 객체를 단계별로 구성할 수 있는 패턴이다. 동일한 구성 코드를 사용하여 객체의 다양한 유형과 표현을 생성할 수 있다. Creational Patterns Situation 복합 객체 구조를 구축하는 용도로 많이 쓰임 제품을 여러 단계로 나눠서 만들도록 제품 생산 단계를 캡슐화 하고 싶을 때 Structure Pros 복합 객체 생성 과정을 캡슐화 한다. 여러 단계와 다양한 절차를 거쳐 객체를 만들 수 있다 (팩토리 패턴은 한 단계에서 모든 걸 처리) 제품의 내부 구조를 클라이언트로부터 보호할 수 있다. 클라이언트는 추상 인터페이스만 볼 수 있기에 제품을 구현한 코드를 쉽게 바꿀 수 있다. Cons 팩토리를 사용할 때 보다 객체를 만들 때 클라이언트에 관해.. 2022. 7. 28.
Principles of SW Design SOLID Single-Responsibility Principle (SRP) : 단일 책임 원칙 정의 : 작성된 클래스는 하나의 기능만 가지며 클래스가 제공하는 모든 서비스는 그 하나의 책임을 수행하는데 집중되어야 한다는 원칙 장점 : 책임을 적절히 분배함으로써 코드의 가독성 향상, 유지보수 용이, 응집도는 높아지고 결합도는 낮아짐 단점 : 하나의 책임이라는 게 모호할 수 있음 Open-Closed Principle (OCP) : 개방 폐쇄 원칙 정의 : 소프트웨어의 구성요소(컴포넌트, 클래스, 모듈, 함수)는 확장에는 열려있고, 변경에는 닫혀있어야 한다는 원리 장점 : 기존 구성요소를 쉽게 확장하여 재사용 가능, OCP를 가능케 하는 중요 메커니즘은 추상화와 다형성, 객체지향의 장점을 극대화하는 가장.. 2022. 7. 28.
OO Analysis & Design OOA - 문제 영역에서 객체나 개념들을 찾아서 기술하는데 중점 Use Case 정의, Domain Model (개념, 속성, 관계등을 식별) OOD - 소프트웨어 객체를 정의한다. - 요구 사항을 만족시키기 위해 어떻게 협동하는지에 중점을 둔다. - 협동은 메소드 호출을 통해서 이루어진다. - 어떤 객체들이 어떤 동작을 할 것인지, 클래스에게 어떤 책임을 할당할 것인가를 다룸 - 객체들이 어떻게 상호작용하는지, 메소드의 호출 순서와 방법 Sequence Diagram, Class Diagram 정의 구현을 위해 "요구사항"들을 "어떻게 구체화할 것인가"를 서로 연결하는 작업 OOA/D에서 가장 중요한 능력은 객체지향 분석 및 설계기술 - UML(Unified Modeling Language) 적용 - .. 2022. 7. 27.
300x250