전체 글 351

SOLID - 객체 지향 디자인을 위한 5가지 기본 원칙

유지가능(Maintainable)하고 확장가능(Extensible)한 시스템을 위한 객체 지향 디자인을 위한 5가지 기본 원칙 SRP: Single Responsibility Principle OCP: Open-Closed Principle LSP: Liskov Substitution Principle ISP: Interface Segregation Principle DIP: Dependency Inversion Principle SRP: Single Responsibility Principle 하나의 모듈은 변경을 위한 하나의 이유만 있어야 한다. 모듈을 변경해야 할 이유가 두개 이상이라면 해당 모듈은 두개 이상의 책임을 가지고 있다는 의미로 SRP를 지키지 못한 것이다. OCP: Open-Closed..

Quality Attribute Scenario

어떤 자극(Stimulus)에 대해 시스템이 어떤 측정(Measure)하에 응답(Response)해야 하는지에 대한 Description ex> The game shall change view modes(response) in < 500 ms(response measure) when the user presses the button(stimulus). 는 환경에서 를 발생시킨다. 는 를 하에 처리한다. Source of Stimulus Stimulus를 생성하는 개체 Stimulus 시스템에 전달되었을 때 Response를 필요로하는 조건 예> 사용자의 요청, 이벤트, interrupt, 에러 등. Artifact Stimulus가 전달되는 대상으로 System 전체이거나 일부분 Environment S..

Architectural Drivers - 핵심 요구 사항

Architectural Drivers (AD) SW architecture를 Design하기 위해 Architect가 파악해야 할 Key Requirements. 시스템의 Fundamental에 영향을 미침 시스템을 위한 모든 요구 사항을 의미하지는 않음 (AD는 전체 Requirement의 subset) Architectural Driver는 architectural decision에 영향을 미치기 때문에 조기 파악이 중요 Architectural Driver의 종류 Functional requirements => Use Case Model과 Use Case Specification (Scenarios)를 통해 파악 Non Functional requirements Quality attributes ..

[Design Pattern] Singleton 패턴

인스턴스가 하나 뿐인 객체를 만들 수 있게 해주는 패턴 특정 클래스에 대해 객체 인스턴스를 하나만 만들 수 있다. 사용 용도> 자원 관리 Pool, 특정 하드웨어를 Control하는 디바이스 드라이버 등 비슷한 역할을 하는 전역 변수와의 비교> 전역 변수는 애플리케이션 시작될 때 생성 불필요하게 자원을 잡아먹는 경우 발생 Singleton은 필요할 때 객체 생성 [Singleton 기본 구조] public class Singleton { private static Singleton uniqueInstance; private Singleton() {} public static Singleton getInstance() { if(uniqueInstance == null) uniqueInstance = new..

Language/Java 2020.11.26

[VSCODE] Github Pull Requests 생성하기

[Github 에 반영하기 (git commit/push)] 에서 보았듯이 write 권한이 없는 repository 에는 직접 반영을 할 수 없다. 이에 write 권한을 가지고 있는 계정의 review를 받고 해당 계정을 통해 반영이 이루어 져야 한다. 이러한 과정을 Pull Requests 라고 하며 github 의 tab 들 중 하나에서 확인할 수 있다. Pull Request 를 위한 전반적인 Flow 에 대한 이해 Pull Request 를 올리는 실제 사례 다수 개의 Pull Request 를 올리는 방법에 대한 이해 Pull Request 를 위한 전반적인 Flow 에 대한 이해 Pull Request 는 fork 된 repository 를 통해 이루어지게 되고, 이를 위한 reposito..

[VSCODE] Github 에 반영하기 (git commit/push)

git clone 하여 local PC 에 코드를 sync 한 이후 코드를 주성하여 다시 github repository 에 반영해야 하는 경우가 있다. [Github 와 연동하기 : https://technote.kr/352] 코드 반영은 Flow는 다음과 같다. 1) 코드 수정 2) [Ctrl + Shit + `] 을 눌러서 teminal 을 실행시킨 후 수정 코드 실행해서 에러 유무 확인 3) 문제가 없을 경우 왼쪽 세번째 아이콘 선택 4) 자동으로 수정된 파일들이 탐지되고, 상단에 수정 내용 작성한 후 "V" 아이콘 선택하여 commit 생성 (git commit) 5) 하단에 push 가능한 commit 의 수가 나오고 해당 버튼 누르면 github repository 로 push 진행 (git..

[VSCODE] Github 와 연동하기 (git clone)

vscode 를 기반으로 github project 를 작업할 때 가장 먼저 진행되어야 할 것은 github repository를 local PC로 git clone 하는 것이다. cmd 로 진행시에는 아래와 같이 진행하면 되지만 vscode 와 연동시에는 vscode의 UI 를 통해 진행해야 자동으로 vscode의 workspace까지 생성된다. D:\Github>git clone https://github.com/technotekr/Sample.git Cloning into 'Sample'... remote: Enumerating objects: 4, done. remote: Counting objects: 100% (4/4), done. remote: Compressing objects: 100% ..

Chromium Edge 에서 chromecast 사용하기.

Microsoft Chromium Edge 를 사용하다 보면 chromecast 와 같이 외부에서 미디어를 재생하게 해주는 아이콘이 보이지 않는 경우가 있다. [Chromium Edge 관련 링크 : Chromium Edge 의 사용 및 비교] 아래와 같이 Chromium Edge 를 통해 Youtube 를 볼 경우 Chrome 에서는 보이는 "TV에서 재생" 아이콘이 보이지 않는다. 이런 상황에서 빈 화면의 아무 곳을 선택하여 마우스 오른 버튼을 눌러 나오는 메뉴 중 "장치로 미디어 캐스트" 를 선택하거나, 오른쪽 위 메뉴 버튼을 눌러 "메뉴 > 기타 도구 > 장치로 미디어 캐스트" 를 선택하여 원하는 기능을 동작시켜도 된다. 반면 chrome 과 동일하게 "TV에서 재생" 아이콘이 나오게 하려면 다음..

Products & Services 2020.03.29

Python - pywinauto, Microsoft Windows GUI 제어 자동화

pywinauto WebSite : http://pywinauto.github.io/ Github : https://github.com/pywinauto/pywinauto Doc : https://pywinauto.readthedocs.io/en/latest Microsoft Windows GUI 제어를 자동화할 수 있는 Python Module 설치 > pip3 install pywinauto (pywinauto 설치시 six, comtypes, pywin32 또한 의존성에 의해 자동 설치된다.) 사용의 예 1) "메모장" 실행 후 "Sample" 문자열을 입력하는 예제 from pywinauto.application import Application app = Application(backend="u..

Language/Python 2020.02.29

Python - PyInspect 설치 및 실행

1) https://github.com/pywinauto/py_inspect 에 접속하여 code 다운로드 2) python 3.5 이상, pywinauto, PyQt5 설치 3) "python py_inspect.py" 으로 실행 특이사항 1) 실행시 2회 실패 후 3회시 부터 정상 실행됨. 1회 실패시 에러 내용 D:\workspace\py_inspect-master>python py_inspect.py QWindowsContext: OleInitialize() failed: "COM error 0xffffffff80010106 RPC_E_CHANGED_MODE (Unknown error 0x080010106)" Traceback (most recent call last): File "py_inspe..

Language/Python 2020.02.28