CS 썸네일형 리스트형 Visitor Pattern 방문자 패턴 방문자 패턴이란? 알고리즘을 객체 구조에서 분리시키는 디자인 패턴(행위 패턴) 구조를 수정하지 않고 새로운 동작을 기존 객체에 추가할 수 있다. (연산을 적용할 객체의 클래스를 변경하지 않고도 새로운 연산을 정의할 수 있다.) 클래스에서 객체를 다루는 기능을 내부 메소드로 구현하는 것이 아닌, 각 클래스들의 데이터 구조에서 처리 기능을 분리하여 별도의 클래스로 구현하는 패턴이다. 분리된 처리 기능은 Visitor를 통해 각 클래스들을 방문하면서 수행한다. 즉, 실제 로직을 가지고 있는 객체가 로직을 적용할 객체를 방문하면서 실행하는 패턴이다. (로직과 구조를 분리하는 패턴) ※ 비지터 객체는 Traverser 객체와 함께 돌아간다. 트래버서는 컴포지트 패턴을 쓸 때, 복합 객체 내에 속해 있는 모든 객체.. 더보기 Facade Pattern 퍼사드 패턴 퍼사드 패턴이란? 디자인 패턴 중 구조 패턴(Structural Patterns)에 속하는 패턴 "하위 시스템을 보다 쉽게 사용할 수 있게 해주는 고급 인터페이스"이다. 많은 분량의 코드에 접근할 수 있는 단순한 인터페이스를 제공한다. 서브시스템과의 상호작용 복잡도(결합도)를 낮추는 목적으로 사용된다. Facade : 사용자의 요청을 서브시스템 객체에 전달하는 단순하고 일관된 통합 인터페이스 Subsystem : Facade에 대한 정보를 가지지 않고, 서브시스템의 기능을 구현하는 클래스 최소 지식 원칙(Principle of Least Knowledge) 객체 사이의 상호작용은 될 수 있으면 아주 가까운 '친구' 사이에서만 허용하는 것이 좋다. 시스템을 디자인할 때 어떤 객체든 그 객체와 상호작용을 하.. 더보기 CPU의 작동 원리 1. ALU와 제어장치 1-1. ALU CPU 내부에서 계산을 담당하는 장치 계산을 하기 위해서는 피연산자와 수행할 연산(제어 신호)이 필요 결과를 레지스터에 저장하는 이유? -> CPU가 메모리보다 레지스터에 접근하는 속도가 더 빠르기 때문. 플래그 : 연산 결과에 대한 부가 정보. 플래그 값들을 저장하는 플래그 레지스터에 저장된다. 부호 플래그 : 1일 경우 음수, 0일 경우 양수 제로 플래그 : 1일 경우 연산 결과는 0, 0일 경우 0이 아님 캐리 플래그 : 1일 경우 올림수나 빌림수가 발생, 0일 경우 발생하지 않음 오버플로우 플래그 : 1일 경우 오버플로우 발생, 0일 경우 발생하지 않음 인터럽트 플래그 : 1일 경우 인터럽트 가능, 0일 경우 불가능 슈퍼바이저 플래그 : 1일 경우 커널 모드.. 더보기 명령어 1. 소스코드와 명령어 1-1. 고급언어와 저급언어 고급언어 : 컴퓨터가 이해하는 언어가 아닌 사람이 이해하고 작성하기 쉽게 만들어진 언어 저급언어 : 컴퓨터가 직접 이해하고 실행할 수 있는 언어 기계어 : 0과 1의 명령어 비트로 이루어진 언어. 가독성을 위해 16진수로 표현하기도 함. 어셈블리어 : 0과 1로 이루어진 기계어를 읽기 편한 형태로 번역한 저급 언어. 1-2. 고급언어의 저급언어 변환 방법 컴파일 방식 컴파일 언어 : 컴파일러에 의해 소스코드 전체가 저급언어로 변환되어 실행되는 고급 언어. ex) C언어 컴파일 : 컴파일 언어로 작성된 소스 코드 전체가 저급 언어로 변환되는 과정. 컴파일러 : 컴파일을 수행해 주는 도구. 소스 코드 내에 오류가 하나라도 발견된다면 컴파일 실패. 인터프리트.. 더보기 이전 1 다음