본문 바로가기

분류 전체보기

(35)
[Design Pattern] 02. Observer Pattern 2. Observer Pattern 옵저버 패턴은 어떤 객체의 상태가 바뀌었을 때, 그 객체에 의존하는 다른 객체들한테 연락이 가고 자동으로 내용이 갱신되는 방식의 디자인 패턴을 말합니다. 이 패턴은 발행-구독(pub/sub) 모델로 불리기도 하며 일대다 (one-to-many) 의존성을 가지고 있습니다. 어떤 경우에는 주제이면서 옵저버의 역할을 할 수도 있습니다. 참고로, Subject 혹은 Observable 객체는 동일한 인터페이스를 이용해 옵저버에게 연락합니다. 아래는 각각 Subject 객체를 이용한 옵저버 패턴 구조와 Observable 객체를 이용한 패턴 구조를 보여드리겠습니다. 자바 내장 옵저버 패턴 사용 두 가지 구조의 차이점을 알아보면, 1. Observable 인터페이스가 아닌 클래스..
[Design Pattern] 01. Strategy Pattern 1. Strategy Pattern 객체들이 할 수 있는 행위 각각에 대해 전략 클래스를 생성하고, 유사한 행위들을 캡슐화 하는 인터페이스를 정의하여, 객체의 행위를 동적으로 바꾸고 싶은 경우 직접 행위를 수정하지 않고 전략을 바꿔주기만 함으로써 행위를 유연하게 확장하는 방법을 말합니다. 우선, 클래스에서 변화는 부분과 변하지 않는 부분을 분리해내야 합니다. 그 다음 아래처럼 변하는 부분(Flyable, Quackable)을 인터페이스로 분리해주면 됩니다. 분리된 인터페이스를 구현하는 객체 클래스를 만들어, 행동 유연하게 수정할 수 있습니다. 위 같은 구조를 짠 뒤에는, fly와 quack의 행동을 Duck 클래스 내에서 정의한 메소드를 써서 구현하지 않고 행동 클래스의 인스턴스를 생성해주면 됩니다. 그..
[ELK Stack] Elasicsearch, Logstash, Kibana, Beats 알아보기 ELK Stack? ELK란 3가지 오픈소스 소프트웨어 Elasticsearch, Logstash, Kibana의 조합을 의미합니다. Elasticsearch는 검색을 위해 단독으로 사용되기도 하며, ELK Stack으로 사용되기도 합니다. 2015년에 Beats의 도입으로 ELK Stack(Elastic Stack)이라고 불리고 있습니다. ELK Stack은 데이터 수집 및 분석 툴로서 높은 확장성과 뛰어난 이식성을 가지고 있어 여러 툴과도 연동이 가능합니다. 1) Elastic Search : Apache Lucene(아파치 루씬) 기반의 분산형 RESTful 검색 및 분석 엔진입니다. 일반적인 쓰임은 많은 양의 데이터를 색인해서 전문검색과 실시간 통계를 실행하는 것입니다. 역인덱스(Inverted ..
[SQLAlchemy] 참조키 연결 posts = db.relationship('Post', backref='author', lazy=True)객체에 삽입되는 가상 필드 이름입니다. 즉, 게시물을 `post`라는 변수에 저장했다고 한다면 이 게시물을 작성한 게시자를 `post.author`을 이용해 접근할 수 있음https://beomi.github.io/2017/10/20/DB-To-SQLAlchemy-Model/기존 DB를 Flask-SQLAlchemy ORM Model로 사용하기 - Beomi's Tech blog본 게시글에서는 MySQL/Sqlite을 예제로 하고있지만, Flask-SQLAlchemy가 지원하는 다른 DB에서도 사용 가능합니다. 들어가며 Flask로 웹 개발 진행 시 SQLAlchemy(Flask-SQLAlchemy..
[python] 포인터 *args, **kwargs 사용법 >>> def sample(a, b, *args): ... print('a', a) ... print('b', b) ... print('args:', args) ... >>> sample(1,2) a 1 b 2 args: () >>> >>> sample(1,2, 3) a 1 b 2 args: (3,) >>> sample(1,2, 3, 4) a 1 b 2 args: (3, 4) >>> def sample2(a, b, **kwargs): ... print('a', a) ... print('b', b) ... print('kwargs', kwargs) ... >>> sample2(1,2, 3) Traceback (most recent call last): File "", line 1, in TypeError:..
[flask-mysql] 설치오류 mysqlclient설치 중 아래와 같은 에러 파일 설치한 후 아래 링크 참고해보기https://beomi.github.io/2017/10/20/DB-To-SQLAlchemy-Model/기존 DB를 Flask-SQLAlchemy ORM Model로 사용하기 - Beomi's Tech blog본 게시글에서는 MySQL/Sqlite을 예제로 하고있지만, Flask-SQLAlchemy가 지원하는 다른 DB에서도 사용 가능합니다. 들어가며 Flask로 웹 개발 진행 시 SQLAlchemy(Flask-SQLAlchemy)를 사용해 ORM구조를 구성할 때 �beomi.github.io
[SQLAlchemy] INSERT 중복방지, join 사용 직접 쿼리 작성하고 싶을 때https://stackoverflow.com/questions/17972020/how-to-execute-raw-sql-in-flask-sqlalchemy-appHow to execute raw SQL in Flask-SQLAlchemy appHow do you execute raw SQL in SQLAlchemy? I have a python web app that runs on flask and interfaces to the database through SQLAlchemy. I need a way to run the raw SQL. The query involves multiplestackoverflow.com INSERT IGNORE def insert_act(tem..
참조키 설정 오류(Cannot add or update a child row) 해결방법 the FOREIGN KEY clause is specified in the child table. ... Cannot add or update a child row: a foreign key constraint fails essentially means that, you are trying to add a row to your Ordrelinje table for which no matching row (OrderID) is present in Ordre table. You must first insert the row to your Ordre table.2 foreign key에 값을 삽입하거나 수정하려할 때, fk가 참조하는 primary key 외의 값을 사용하면 생기는 오류이다. 위 오..