본문 바로가기

개발자의 기록 노트

(153)
Architecture Pattern VS Architecture Style 소프트웨어 아키텍처 설계를 공부하다보니 Architecture Pattern라는 용어와 Architecture Style라는 용어가 혼용되는 것을 보게 되었습니다. 이 둘은 어떤 차이가 있는지, 동의어인지 찾아보고 정리한 내용입니다.Architectural patterns focus on problem-riented architectural solution, whereas Architectural style focus on structural or behavioral characteristics of related software architectures. 아키텍처 패턴은 문제 지향적인 아키텍처 솔루션에 중점을 두는 반면에, 아키텍처 스타일은 관련된 소프트웨어 아키텍처의 구조나 행위 특성에 중점을 둔다고..
GRASP - Craig Larman의 소프트웨어 설계 원칙 GRASP는 General Responsibility Assignment Software Patterns 의 앞글자를 딴 것이다.직역하면 대략 '일반 책임 할당 소프트웨어 패턴' 정도 된다.패턴이 들어가는 걸 보면 알 수 있듯이, GoF의 디자인패턴과도 관련이 있다.여기에서는 Craig Larman의 9가지 원칙을 이야기 하고 있는데, 이 각각들은 Coupling을 낮추거나, Cohesion과 Reusability를 높이고 Flexibility를 높이기 위한 원칙들이다.우선.. 'OOAD를 사용하여 소프트웨어를 구축하는 일반적인 작업'이 어떤 순서로 이뤄지는지 다시 상기해보자.1. 요구사항 식별2. 도메인모델 만들기3. 디자인모델 만들기 - 소프트웨어 클래스들에 메소드와 속성 추가 - 객체들 간 상호..
DBSCAN 클러스터링 알고리즘 - 머신러닝 본 글은 출처에서 발췌하여 번역한 것 임을 서두에 밝힙니다.출처 : https://www.kdnuggets.com/2020/04/dbscan-clustering-algorithm-machine-learning.html2022/04/04 Nagesh Singh Chauhan이 KDnuggets에 작성한 글입니다.소개: Nagesh Singh Chauhan은 CirrusLabs의 빅데이터 개발자입니다. 통신, 분석, 영업, 데이터 과학 등 다양한 분야에서 4년 이상의 경력을 보유하고 있으며, 다양한 빅데이터 구성 요소를 전문으로 다룹니다.DBSCAN 알고리즘과 그것을 파이썬으로 구현한 소개 내용.2014년, DBSCAN 알고리즘은 세계 최고의 데이터 마이닝 컨퍼런스인 ACM SIGKDD에서 시간 테스트 상(..
객체 지향 설계 원칙(OO Design Principles) 등장 배경 객체 지향 S/W 설계 패턴의 지식 계층먼저, 객체지향 설계를 위한 패턴 지식의 계층은 위 그림과 같이 요약해 볼 수 있다.먼저, OO Basics - 객체지향의 매우 기본적인 요소들이다.추상화, 캡슐화, 다형성, 상속성.그리고 이 네가지 속성들 위에서 SOLID, GRASP와 같은 OO Principles, 즉, '객체 지향 원칙' 과 같은 개념들이 등장할 수 있었다.마지막으로 OO Principles을 반영하여 반복되는 수많은 코딩 패턴들이 있었을 텐데, 그것들을 정리한 Design Pattern과 같은 개념들이 등장한 것으로 볼 수 있다.Design Smells객체지향 언어를 사용한 나쁜 설계에서 발생하는 다양한 증상들과 다양한 신호들을 'Design Smells' 라고 부른다.Rigidity (경..
SOLID - R.C Martin의 소프트웨어 설계 원칙 SOLID : 소프트웨어 설계 원칙1. SRP : Single-Responsibility Principle2. OCP : Open-Closed Principle3. LSP : Liskov Substitution Principle4. ISP : Interface Segregation Principle5. DIP : Dependency Inversion PrincipleR.C Martin이 이야기한 다섯가지 소프트웨어 설계 원칙의 각 앞글자를 따서 SOLID라 부른다. 1. The Single-Responsibility Principle (SRP) 클래스는 단하나의 책임, 변경사유 만을 가져야 한다. A class should have one, and only one, reason to change * S..
WebRTC 관련 RFC 문서 목록 WebRTC RFC7478: Web Real-Time Communication Use Cases and Requirements RFC8825: Overview: Real-Time Protocols for Browser-Based Applications RFC8835: Transports for WebRTC RFC8826: Security Considerations for WebRTC RFC8827: WebRTC Security Architecture 배경기술 RFC3550: RTP: A Transport Protocol for Real-Time Applications RFC7656: A Taxonomy of Semantics and Mechanisms for Real-Time Transport Proto..
gRPC-java 프레임워크 로그 출력 설정 gRPC java framework를 사용해서 클라이언트와 서버를 구성하고, 서로 통신하도록 만들었다. 이후, 디버깅이 필요하여, gRPC java framework의 소스코드를 살펴보니, java.util.logging 패키지를 사용하여 로그 출력코드가 삽입되어 있는것을 보았다. 이 내용을 콘솔에 출력하는 방법을 찾아보았다. [logging.properties] # Create a file called logging.properties with the following contents. handlers=java.util.logging.ConsoleHandler io.grpc.level=FINE java.util.logging.ConsoleHandler.level=ALL java.util.logging...
마우스 위치 강조하기 (feat. PowerToys) 윈도우키 + R 을 눌러 '실행' 창을 띄운 뒤 'PowerShell' 을 넣고 확인을 눌러 PowerShell을 실행한다. PowerShell에서 아래 명령을 넣고 엔터. winget install Microsoft.PowerToys --source winget 아래와 같이 윈도우 패키지 매니저가 PowerToys 를 다운로드 후 설치 한다. 잠시 기다리면 설치 성공 이란 메세지와 함께 설치가 완료되며, PowerToys가 자동으로 실행된다. 마우스 유틸리티 의 설정열기 버튼을 누른다. 1. 마우스 찾기 이와같이 마우스 찾기 사용 기능을 켜고, 활성화 방법은 편한 것을 선택해준다. 나는 왼쪽 컨트롤 키를 두번 누르는 것으로 사용. 왼쪽 Ctrl 키를 두 번 누르거나 마우스를 흔들어 커서 위치를 스포트라..