Learn
-
Architectural Styles (5) - DistributedLearn/Architecture 2023. 4. 10. 00:00
Category Style Sub-style Distributed Multi-tier Client-Server Broker Dispatcher Service-Oriented Microservice Edge-Based ## Multi-tier 어떻게 구성하냐에 따라 2-tiered, 3-tiered 등 N-tiered로 구성 가능하다. 2-tiered가 아래의 Client-Server 구조이고, 3-tiered는 아래 그림과 같다. 참고로 Layer는 논리적인 구분을, Tier는 물리적인 구분을 뜻한다. 장점 비즈니스 로직에 변화가 있어도 미들 티어 정도로 한정된다. (Modifiability) 서버를 확충하여 처리량 개선 가능 (Performance) 중요한 자원이 있다면 Tier 분리를 할 수 있다. ..
-
Architectural Styles (4) - HierarchicalLearn/Architecture 2023. 4. 9. 21:24
Category Style Sub-style Hierarchical Main-Subroutine Master-Slave Layered Virtual Machine Microkernel # Hierarchical Architecture 말그대로 계층 구조이다. ## Main-Subroutine Style 프로시저가 계층 구조로 구성되어있으며 단일 쓰레드이다. Main과 Sub은 강한 결합으로 구성된다. 장점 sub routine간은 분리되어 테스트가 용이하다. (Testability) 단점 전역 데이터를 쓰는 경우가 많으므로 보안이 취약하다. (Security) 전역 데이터에 변경이 있을 경우 전체에 영향을 미친다. (Modifiability) Main과 Sub이 강하게 결합되므로 가용성이 낮다. (Ava..
-
Architectural Styles (3) - Implicit Invocation, Interaction OrientedLearn/Architecture 2023. 4. 9. 00:31
Category Style Implicit Invocation Event Based Message Based Interaction Oriented Model-View-Controller Presentation-Abstraction-Control # Implicit Invocation Architecture 직접 프로시저를 호출하는 방식이 아닌 구조가 여기에 해당된다. ## Non-buffered Event-Based Style observer pattern이라고 보면 된다. https://push-and-sleep.tistory.com/49 [Design Pattern] Observer Pattern # 개요 한 쪽의 오브젝트가 변화가 있을 때, 다른 오브젝트들이 노티아야 할 때 사용하는 패턴 Obser..
-
Architectural Styles (2) - Data Flow, Data CenteredLearn/Architecture 2023. 4. 7. 23:04
Category Style Data Flow Batch Sequential Pipe and Filter Process Control Data Centered Shared Repository Blackboard # Data Flow Architecture 데이터를 연속적으로 처리하는 시스템에 적합한 구조이다. 프로세스가 진행되는 중간에는 인터렉션이 없다는 특징이 있다. 여기서는 복잡하지 않은 선형적인 구조만 살펴본다. 구성 요소는 아래와 같다. 컴포넌트 - Data Transformer 커넥터 - Data Channel로 I/O에 관련된 것들, buffer 등 ## Batch Sequential 독립적인 프로그램을 순차적으로 실행하면서 데이터를 처리하는 구조이다. 컴포넌트 : 독립적인 프로그램 커넥터 : ..
-
Architectural Styles (1) - 개요Learn/Architecture 2023. 4. 7. 00:37
다양한 종류의 Architectural Style과 각각의 Quality Attribute에 대해 살펴보자. # Quality Attribute 품질 속성은 여러 가지 버전이 있는데 아래 정도만 같이 살펴보려한다. 핵심만 살펴보고 넘어가자. Availability (가용성) 시스템이 얼마나 오래 끊김없이 작동하냐에 대한 속성이다. 백업 서버가 있어서 장애가 있어도 24시간 가동된다면 가용성이 높다. Interoperability (상호 운영성) 분산된 환경에서 인터페이스를 통해 정보를 잘 주고받을 수 있는지에 대한 속성이다. 아래와 같이 Mediator가 중재 해 줄 경우 상호 운영성이 높다. Modifiability (변경 용이성) 얼마나 수정이 용이한지에 대한 속성이다. 커플링이 강하면 변경 용이성이..
-
PCA (Principal Component Analysis; 주성분 분석)Learn/머신러닝 2023. 2. 6. 21:31
# 차원 축소 고차원 데이터란 변수의 수가 많은 것을 뜻한다. 이럴 경우 나타날 수 있는 문제는 아래와 같다. 불필요한 변수가 많다. 시각화가 어렵다. 모델링이 비효율적이다. 차원을 줄이는 방법은 두 가지가 있다. 변수 선택(selection) : 분석 목적에 부합하는 소수의 예측 변수만을 선택 장점 : 선택한 변수 해석 용이 (기존에 있는 변수를 사용하므로) 단점 : 변수간 상관관계 고려가 어려움 변수 추출(extraction) : 예측 변수의 변환을 통해 새로운 변수 추출 장점 : 변수간 상관관계를 고려함. 일반적으로 변수의 개수를 많이 줄일 수 있음 단점 : 추출된 변수는 해석이 어려움. (기존의 변수를 결합해서 새롭게 만든 것이므로) supervised / unsupervised learning ..
-
Soft Margin SVM, Nonlinear SVM, KernelLearn/머신러닝 2022. 12. 2. 00:22
# 개요 SVM의 기본 개념은 이전에 정리했었다. https://push-and-sleep.tistory.com/81 SVM (Support Vector Machine) # 개요 고차원 데이터의 분류에 좋은 성능을 보이는 알고리즘이다. SVM의 궁극적인 목적은 아래와 같이 두 클래스를 잘 나누는 hyperplane을 찾는 것이다. 즉 w와 b를 찾으면 된다. 문제는 좋은 hyperpla push-and-sleep.tistory.com 이전에 정리한 내용은 선형으로 분리가 되는 것이었는데 Hard Margin SVM이라 부른다. 기본적인 Soft Margin의 컨셉은 어느정도 에러를 허용하자는 것이다. # Soft Margin SVM 아래 그림과 같이 오차를 허용하는데 이 오차와 마진의 거리를 ξ(크사이)..
-
SVM (Support Vector Machine)Learn/머신러닝 2022. 11. 30. 22:50
# 개요 고차원 데이터의 분류에 좋은 성능을 보이는 알고리즘이다. SVM의 궁극적인 목적은 아래와 같이 두 클래스를 잘 나누는 hyperplane을 찾는 것이다. 즉 w와 b를 찾으면 된다. 문제는 좋은 hyperplane의 기준이 무엇인가를 고민해봐야 한다. # Margin 각 클래스에서 가장 가까운 관측치 사이의 거리를 Margin이라고 한다. Margin을 최대화 하는 plane은 기울기 w로 표현이 가능하다. 각 +1, -1에 해당하는 plane 또한 이 plane의 평행 이동으로 표현 가능하다. 위의 경우는 각 클래스를 1, -1로 가정한 경우이다. 마진만큼의 거리에 있는 plane위의 점들을 support vector라고 부른다. 아마 여기 안으로는 못들어오는 지지선의 개념이라서 그런 것 같다..