본문 바로가기
728x90
반응형

python9

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.
Python만으로 어플을 만들어보자 Kivy 빌드 with 구름 IDE, goorm IDE 구름IDE에서 빌드하기 + 폰에 설치하기 참고영상: https://youtu.be/Pi510YawopE 1. 구름 컨테이너(가상머신) 만들기 구름IDE - 설치가 필요없는 통합개발환경 서비스 구름IDE는 언제 어디서나 사용 가능한 클라우드 통합개발환경(Integrated Development Environment IDE)을 제공합니다. 웹브라우저만 있으면 코딩, 디버그, 컴파일, 배포 등 개발에 관련된 모든 작업을 클라 ide.goorm.io 1. 구름IDE가 처음이시라면 회원가입 후 [콘솔로 가기]를 눌러 콘솔에 접속해주세요 2. [새 컨테이너]를 만들어줍니다. [새 컨테이너]를 누르면 만들 수 있습니다. 새 컨테이너를 클릭합니다. 적당히 이름을 부여합니다. 소프트웨어 스택으로 Python을 선택합니다.. 2023. 2. 8.
Python만으로 어플을 만들어보자 A SimplePaint App with kivy 그림판 어플을 만들어보자 1. Adding Behaviour (touch -> new color) from random import random from kivy.app import App from kivy.uix.widget import Widget from kivy.graphics import Color, Ellipse, Line class MyPaintWidget(Widget): def on_touch_down(self, touch): color = (random(), random(), random()) #1 with self.canvas: Color(*color) #2 d = 30. Ellipse(pos=(touch.x - d / 2, touch.y - d / 2), size=(d, d)) tou.. 2023. 2. 8.
Python만으로 어플을 만들어보자 (create an application) kivy 실행해보기 kivy도 설치했으니 이제 kivy공식문서를 따라 어플리케이션 개발을 진행해보고자 합니다. kivy에서는 kivy를 익히기 위한 튜토리얼로 단순한 형태의 핑퐁게임개발을 제공하고 있습니다. 초창기 컴퓨터에 들어가는 게임처럼 생겼군요 그런데 시작 하기 전에 먼저 Create an application 을 보고 오라고 하는군요! 그럼 보고옵시다. Create an application 여기서는 더욱 간단한 형태의 어플리케이션 구동을 설명하고 있습니다. 우선 가이드의 코드를 그대로 따라해 보겠습니다. kivy_venv를 생성했던 디렉토리에 main.py 파일을 생성한 뒤, 공식문서에 있는 코드를 그대로 복사해 넣어보겠습니다. import kivy kivy.require('2.1.0') # r.. 2023. 1. 20.
[Python] 정적 메소드 staticmethod, classmethod 파이썬 클래스의 코드들을 보면 종종 메서드 위에 데코레이터로 다음과 같은 것들이 붙어있을 때가 있다. @staticmethod @classmethod 오늘은 파이썬의 정적 메서드를 만드는 방법인 staticmethod, classmethod에 대해서 알아보도록 하자 본격적인 글에 앞서서 정적메서드(static method)란 무엇일까? 정적 메서드는 클래스가 생성되지 않아도 즉 인스턴스 없이도 사용할 수 있는 함수로 인스턴스에서는 호출 할 수 없는 함수를 가리킨다. 1. staticmethod staticmethod는 메서드를 정적 메소드로 바꿔주는 것으로 데코레이터를 이용해 바꿔준다. 일반적으로 메서드에는 맨 앞의 argument로 self를 넣어주지만 staticmethod에는 넣어주지 않는다. cl.. 2023. 1. 10.
[Python] OpenCV 웹캠 연결 문제 cv2.VideoCapture 해결 방법 윈도우 기본 카메라 앱에서는 출력되지만, opencv에서 특정 웹캠 연결 문제가 발생하여 영상이 출력되지 않는 경우가 가끔 발생합니다. 다양한 이유가 있지만, 동영상 프레임을 불러오는 과정을 결정짓는 apiPreference 문제로 발생하기도 합니다. 일반적으로 opencv가 알아서 최적값을 찾아주지만 영상 출력이 되지 않는다면 한 번 시도해보길 바랍니다. VideoCaptureAPIs 열거형 함수 CAP_ANY 자동 선택 CAP_V4L, CAP_V4L2 V4L/V4L2(리눅스) CAP_FIREWIRE, CAP_FIREWARE, CAP_IEEE1394 IEEE 1394 드라이버 CAP_DSHOW 다이렉트쇼(DirectShow) CAP_PVAPI PvAPI, Prosilica GigE SDK CAP_OPE.. 2023. 1. 5.
[파이썬 스킬업 #1] PEP8 스타일 가이드 핵심 정리 파이썬 코딩의 기술 정리 #1 출판사 Github >> https://github.com/gilbutITbook/080235 저자 Github >> https://github.com/bslatkin/effectivepython PEP8 스타일 가이드를 따릅시다 ! 파이썬은 코딩 스타일을 친절히 설명해주고 있습니다. 자기 멋대로 코딩해도 코드는 잘 돌아갑니다 하지만.... 다음과 같은 이유로 스타일 가이드를 지키는 것을 권장합니다. 스타일 가이드를 준수하고, 알고 있다면 어떤 코드든 접근하기 쉬워진다. 가독성이 높아지기 때문에 쉽게 이해하고 분석할 수 있다. 다른 프로그래머 혹은 오픈 소스를 활용할 때, 협력을 용이하게 해준다. 따라서, 파이썬을 무기로 사용하고자 하는 개발자라면, 언젠가 보게될 문서라고 .. 2023. 1. 5.
728x90
반응형