본문 바로가기

전체 카테고리326

장고(django) 프로젝트 첫 페이지, 템플릿 상속 - 파이썬 장고를 활용한 쉽고 빠른 웹 개발 프로그래밍 URL 설정 mysite/urls.py ... from mysite.views import HomeView # 홈페이지 urlpatterns = [ ... # 홈페이지 path('',HomeView.as_view(), name='home'), # 루트 URL , 패턴명 = 'home' ] View 설정 단순히 템플릿만 보여주는 로직 mysite/views.py # 홈페이지 from django.views.generic import TemplateView class HomeView(TemplateView): template_name = 'home.html' TemplateView 제네릭 뷰 상속 settings.py TEMPLATES = [ { 'BACKEND': 'django.template.backen.. 2022. 1. 11.
장고(django)blog app(+아카이브) - 파이썬 장고를 활용한 쉽고 빠른 웹 개발 프로그래밍 앱 만들기 예제) URL 설계 URL 패턴 View name template name /blog/ PostLV post_all.html /blog/post/ PostLV post_all.html /blog/post/django-example/ PostDV post_detail.html /blog/archive/ PostAV post_archive.html /blog/archive/2019 PostYAV post_archive_year.html /blog/archive/2019/nov PostMAV post_archive_month.html /blog/archive/2019/nov/10 PostDAV post_archive_day.html /blog/archive/today PostTAV post_arch.. 2022. 1. 5.
장고(django) 셋팅(setting)과 북마크 앱(bookmark app) - 파이썬 장고를 활용한 쉽고 빠른 웹 개발 프로그래밍 새해 첫 날 파이썬 웹 프로그래밍 장고 웹 프레임워크 시작! 터미널 창 django-admin startproject mysite(자유) // 데이터베이스 및 user, group 테이블 생성 python manage.py migrate python manage.py createsuperuser // 앱 생성 (모듈)(기능) python manage.py startapp polls test 겸 polls 라는 앱(모듈)을 생성해 봤습니다. 앱 만들기 예제) 코딩 순서 뼈대 만들기 startapp : 앱 생성 settings.py : 앱 등록 모델 models.py : 모델(테이블)정의 admin.py : 사이트에 모델 등록 makemigrations : 변경사항 추출 migrate : 변경사항 반영 UR.. 2022. 1. 1.
Command Pattern 커맨드(명령) 패턴 - 행동, 메소드 호출의 캡슐화 | [Design pattern] 디자인 패턴 Command Pattern 메소드 호출을 캡슐화(encapsulation) 한다. 여러 기능을 실행할 수 있도록 재사용성이 높은 클래스를 설계하는 패턴 서비스를 호출할 때 융통성을 높이려고 사용 매개 변수를 사용하여 여러가지 다른 요구사항을 처리 문제점) GUI toolkit GUI 컴포넌트(버튼, 텍스트필드) 들이 Client 가 설정한 임의의 작업을 수행하도록 하려면 어떻게 해야할까 Universal remote controller 각 버튼이 임의의 가전제품을 제어하게 하려면 어떻게 해야 할까 Unknown consumer electronic devices 객체간 상호작용 Receiver : 서비스 제공자 Invoker : Client의 일부가 될 수 있다. invoker 와 receiver 사이에.. 2021. 12. 31.
MVC 패턴 , Model - View - Controller | [Design pattern] 디자인 패턴 MVC Pattern 사용자 인터페이스를 구현하기 위한 구조 패턴 Model로 부터 UI를 분리 동시 개발 가능, Loose coupling, 용이한 변경 high cohesion: grouping related actions on A controller, grouping views for A model. 구성요소) Model : 어플리케이션 객체 View : 모델을 스크린에 표현 갱신된 model의 상태를 즉각 반영 one model multiple different views composite view Controller : 입력에 따라 반응 방식 바꿈 1. View --> Controller : 유저 행동 2. Controller --> Model : 상태 변경 3. Controller --> Vi.. 2021. 12. 29.
Abstract Factory Pattern - 생성, 팩토리 추상화와 제품군 생성 추상화 | 추상 팩토리 패턴 [Design pattern] 디자인 패턴 Abstract Factory 다양한 구성 요소 별로 객체의 집합 생성 같은 종류의 여러 개의 객체를 생성할 수 있는 클래스를 생성 생성 군들을 하나에 모아놓고 팩토리(Factory) 중에서 선택하게 하는 패턴 관련있는 서브 클래스를 묶어서 팩토리 클래스를 만들고, 이들 조건에 따라 객체를 생성하는 패턴 여러 개의 클래스를 하나의 추상 클래스로 묶어 한번에 교체할 수 있는 패턴 ex) 제품군 (A family of products) GUI widgets : window, scroll bar, button, text field .. Pizza ingredients : dough, sauce, cheese ... - 제품, 운영체제, 회사별로 유사한 제품이지만 지원하는 기능에 차이가 있을 경우, 기능별로 통.. 2021. 12. 26.
Factory Method Pattern 팩토리 메소드 패턴 - 생성, 다양한 유형의 객체 생성, 변경, 추가가 빈번히 일어나는 경우 | [Design pattern] 디자인 패턴 Factory Method 패턴 서브 클래스가 인스턴스를 결정하도록 하고 책임을 위임하는 패턴 객체의 생성을 서브 클래스에 위임하는 패턴 조건에 맞게 객체를 다르게 생성 결합도 줄이고 유지보수 용이 템플릿 메소드 패턴 사용 (Virtual - Constructor) 객체 생성 방법) 생성자 (new 연산자)를 사용하여 직접 생성 객체 생성 클래스 / 메소드 (factory class / method) 사용 -> 객체 생성을 추상화 문제점1) 다양한 종류의 피자 (객체)를 생성 변경 추가 제거 가능 생성자를 사용하여 객체 생성 Pizza orderPizza(String type) { Pizza pizza; if (type.equals(“cheese”)) { pizza = new CheesePizza(); .. 2021. 12. 21.
State Pattern 상태 패턴 - 행위, 내부 상태를 가져서 특정 상태에서의 행동들을 하나의 class에 캡슐화 | Design pattern 디자인 패턴 State pattern The State Pattern allows an object to alter its behavior when its internal state changes. The object will appear to change its class. 규칙에 따라 객체의 상태를 변화시키면서 객체가 할 수 있는 행위를 바꾸는 패턴 특정 메소드가 객체의 상태에 따라 다른 기능을 수행 객체의 상태에 따라 동일한 루틴에서 다른 행동을 할 수 있다. 용어 내부 상태 프로그램의 실행 과정에서 현재 유지하고 있는 변수 및 실행 상황. 내부 상태를 가지는 머신 자판기, 엘레배이터, ATM 기기 내부 상태를 가지는 머신은 현재 상태에 따라 같은 행동(사건) 이 다른 결과를 낳을 수 있다. ex) 자판기내 음.. 2021. 12. 16.
Decorator Pattern - 구조, 구성과 위임을 통해 특정 개체에 행동을 동적으로 추가 | [Design pattern] 디자인 패턴 Decorator Pattern 같은 class의 다른 객체들에는 영향을 주지 않고, 구성과 위임을 통해 특정 객체에 행동을 동적으로 추가 소스를 변경하지 않고 기능을 확장 기존 객체의 메소드에 새로운 행동을 추가하거나 오버라이딩 가능 객체에 독립적인 기능을 계속해서 추가, 확장할 때 유용 객체에 부가적인 기능을 동적으로 추가할 때 사용 문제점) 상속을 사용한 객체의 기능 확장은 subclass를 양산한다. Subclassing을 사용한 정적 확장의 문제점: ① 너무 많은 subclass가 필요함 ② 새로운 유형의 음료수가 개발될 때마다 subclass를 계속 추가되어야 함. 패턴 아이디어) DataInputStream dis; // primitive value dis = new DataInputStre.. 2021. 12. 11.
Proxy Pattern 프록시 패턴 - 구조, Heavy object를 대리할 light object를 생성 | Design pattern 디자인 패턴 Proxy Pattern 프록시 패턴은 surrogate 와 다른 객체의 접근에 대한 통제를 할 수 있는 placeholder를 제공한다. 객체의 대리자를 이용하여 다른 객체로의 접근을 통제하는 패턴 대리 객체를 통해 원래 객체의 작업을 대신 수행 복잡한 작업과 단순한 작업을 나누어서 처리 원래의 기능을 수행하면서 부가적인 기능을 수행할 때 유용 문제점) 객체 생성에 비용(시간, 자원)이 많이 드는 Heavy object 가 있다. 프로그램이 종료될 때까지 한 번도 사용되지 않으면 시간, 자원의 낭비가 있다. Key Idea) Heavy object를 대리할 light object를 생성 - Heavy object와 동일한 인터페이스를 가지는 proxy (대리 객체) Heavy object 대신 prox.. 2021. 12. 4.
Template Method Pattern 템플릿 패턴 - 행동, 메소드 내에 알고리즘 골격을 정의한다. | Design Pattern 디자인 패턴 Template Method Pattern 작업의 일부분을 캡슐화하여 전체 일을 수행하는 구조는 그대로 유지하면서 특정 부분을 바꾸는 패턴 메소드내에 알고리즘 골격을 정의한다. variant step의 구현을 subclass들에게 미룬다.(defer) 하위 클래스는 알고리즘 구조를 변경하지 않는다. variant step을 자신의 방법으로 구현한다. The AbstarctClass 는 템플릿 메소드를 포함한다. templateMethod() templateMethod() 에서 primitiveOperation 들이 사용된다. concrete invariant operations abstract variant operations hook (default or null operation) primitiveO.. 2021. 11. 27.
Observer Pattern 옵저버 패턴 code , java built-in package | Design pattern 디자인 패턴 Java에는 기본 지원 기능이 있습니다. 여러 API에 포함되어 있다. 일반적으로 java.until package에 The Observer interface and The Observable class 가 있다. Subject and Observer interface 와 비슷하다. The Observable class keeps track of all yours observers and notifies them for you This should look familiar. In fact, it's exactly the same as our previous class diagram. How Java’s built-in Observer Pattern works For an Object to become a.. 2021. 11. 20.