본문 바로가기
728x90
반응형

파이썬/파이썬의 디자인 패턴 공부5

02 싱글톤 패턴 & 게으른 초기화 "게으른 개발자"의 유래 한국에서 익히 사용되는 개발 언어(?)이다. '긍정적인 의미'로는 일부 개발자들은 혁신적이고 효율적인 방법을 찾기 위해 노력하면서, 기술적인 문제를 해결하는 데 시간을 들이고 고민하는 모습을 기리는 것이다. 개발 작업에서 늘 새로운 방법과 해결책을 찾기 위해 고심하고 실험하는 과정에서 '게으름'이라는 말은 실제로 창의적인 사고와 혁신을 이끌어냈다는 관점에서 긍정적으로 받아들여진다. 반면, '부정적인 의미'로는 개발자들이 일을 귀찮아하거나 적극적으로 문제를 해결하지 않는다는 부정적인 해석으로도 사용될 수 있다. 이는 느슨하거나 무관심한 태도로 인해 일정을 맞추지 않거나 문제에 대처하지 않는 상황을 비판하는 의미로 사용될 수 있다. 게으른 초기화(Lazy instantiation):.. 2023. 12. 21.
02 싱글톤 디자인 패턴 싱글톤 디자인 패턴 개요 싱글톤 디자인 패턴은 글로벌하게 접근 가능한 하나의 객체를 제공하는 패턴이다. 싱글톤 디자인 패턴은 주로 하나의 인스턴스를 공유하여 로깅, 데이터베이스 관련 작업, 프린터 스풀러 등과 같은 동일한 리소스에 대한 동시 요청의 충돌을 방지하는데 사용된다. ex) 1) DB작업 수행 시 일관성 유지를 위해 하나의 데이터베이스 객체를 사용하는 경우 2) 로그를 기록하는 작업 시 여러 서비스의 로그를 하나의 로그 파일에 순차적으로 동일한 로깅 객체를 사용해 적제하는 경우 [싱글톤 디자인 패턴의 목적] 클래스에 대한 단일 객체 생성 전역 객체 제공 공유된 리소스에 대한 동시 접근 제어 위와 같은 다른 언어의 경우 생성자(Constructor)를 private로 선언하고 객체를 초기화하는 s.. 2023. 12. 18.
01_02 디자인 패턴의 개념 디자인 패턴의 JAVA를 기반으로 제시된 소프트웨어 설계 단계에서 흔히 발생하는 여러 문제의 해결책이며, 디자인 패턴이라는 개념은 발명보다 발견에 가깝습니다. [디자인 패턴의 주요 기능] - 언어에 독립적이며 모든 프로그래밍 언어에 적용할 수 있다.(python에도???) - 새로운 패턴이 아직도 연구되고 있다. - 목적에 맞게 변경될 수 있기 때문에 개발자에게 유용하다. [디자인 패턴에 대한 개발자의 인식] - 디자인 패턴은 모든 디자인 문제에 만병통치약이다.(???! 그런가?) - 문제를 해결하는 훌륭한 해결책이다. - 대부분의 개발자가 인정하는 해결책이다. - 패턴이라는 단어는 디자인에 반복적인 요소가 있다는 것을 나타낸다. 책의 주장: 설계 단계에서 뿐만 아니라 개발 단계에서도 디자인 패턴에 대한.. 2023. 12. 15.
01_01 디자인 패턴 개요: 객체지향 디자인의 기본 원칙 개방-폐쇄 원칙(The open/Close Principle) 정의: 클래스와 객체, 메소드 모두 확장엔 개방적이고 수정엔 폐쇄적이어야 한다는 원칙이다. 클래스 또는 객체의 기능을 확장할 때, 기본 클래스 자체를 수정하지 않아도 되도록 클래스와 모듈을 설계해야 한다. 클래스 확장만으로 새로운 기능을 구현할 수 있어야 한다. 추상(abstract)클래스를 수정하지 않고 확장해서 새로운 기능을 추가하는 것이 개방-폐쇄 원칙을 따르는 것이다. [원칙의 장점] (1) 기본 클래스를 변경하지 않기 때문에 문제가 발생할 가능성이 낮다. (2) 기본 버전과의 호환성 유지가 수월하다. 제어 반전 원칙(The Inversion of Contral Principle) 정의: 상위 모듈은 하위 모듈에 의존적이지 않아야 한다.. 2023. 12. 6.
01 디자인 패턴 개요: 객체지향 프로그래밍 알아볼 내용 - 객체지향 프로그래밍의 이해 - 객체지향적 디자인 패턴의 원리 - 디자인 패턴의 종류와 맥락에 대한 이해 - 동적 프로그래밍 언어 패턴 - 생성과 구조, 행위 패턴 [객체지향 프로그래밍] 디자인 패턴을 설명하려면 그전에 객제지향 프로그래밍(OOP)의 기본 원리와 특히 파이썬의 객체지향 패러다임을 알아야 한다. [기본적인 객체지향 설명] ex. Car 객체에는 속성: 연료잔량, isSedan, speed, steering wheel, coordinates 등 함수: accelerate() - 속도 조절, takeLeft() - 좌측 변경 등 파이썬은 객체지향 언어이다. '파이썬의 모든 것은 객체'라는 말이 있듯이 파이썬의 클래스 인스턴스와 변수는 개별적인 메모리 공간에 저장된다. 클래스 인스.. 2023. 12. 6.
728x90
반응형