카테고리 없음

정보처리기사 4과목 프로그래밍 언어 활용

엽승 2024. 4. 21. 20:54
728x90

헝가리안 표기법 : 변수 및 함수의 이름 인자 앞에 데이터 타입을 명시하는 코딩 규칙 

 

 

객체 지향 기술 : 

1) 캡슐화 (Encapsulation): 속성과 메서드를 하나로 묶는 것이다. 인터페이스가 단순해지고, 재사용이 용이해진다. 

2) 정보은닉(Information Hiding) :  캡슐화의 가장 큰 목적 실제 구현되는 내용의 일부를 외부로부터 감추는 것이다. 

3) 추상화(abstract) : 클래스들의 공통된 요소를 추출하여 상위클래스로 구현한다. 상위클래스는 틀을 제공하고, 하위 클래스는 상세 구현을 담당한다. 

4) 상속(Inheritance) : 상위 클래스의 멤버를 하위 클래스에서 물려 받도록 하는것 하위클래스는 대부분의 상위 클래스 요소를 재사용하거나 확장 할 수 있다. 

5) 다형성(Polymorphism):  상속된 여러 하위 객체들이 서로 다른 형태를 가질 . 수있게 하는 성질이다. 

- 오버로딩 :동일한 이름의 여러 메소드  중 매개변수로 전달되는 인수의 타입과 개수를 식별하여 적절한 메서드를 호출해 주는 기능 

- 오버라이딩 : 상속 받은 메소드의 내부 기능을 새롭게 정의하는 기능 둘 이상의 클래스에서 동일한 메시지에 대해 서로. 다르게 반응 할 수 있도록한다. 

 

객체지향 분석 방법론: 

Rumbaugh (럼바우) :

객체 모델링 :  객체 다이어그램을 활용하여 객체 간의 관계정의 

동적 모델링 : 상태 활동 다이어그램을 활용하여 기능의 흐름을 표시 

기능 모델링:  자료 흐름도를 활용하여 입출력 데이터 세부 기능 결정 

 

Booch : 미시적 거시적 프로세스 모두 사용하는 분석 기법 

 

Jacobson : 사용자와 시스템이 상호작용하는 시나리오(유스케이스) 랄 활용하여 분석하는 기법 

 

Coad yourdan : E-R 다이어그램을 사용하여 객체의 행위를 모델링 하는 분석 기법 

 

Wirfs-Brock :분석과 설계 . 간구분이 없으며 고객 명세서를 평가하여 설계작업까지 연속적으로 수행하는 분석 기법 

 

 

SOLID : 객체 지향 설계원칙 

Single Responsibility: 단일-책임 원칙: 한 클래스는 하나의 문제만 해결하도록 설계하여야한다. 

Open_Closed : 개방 폐쇄 : 확장에 대해선 개방 수정에 대해서는 폐쇄적이어야 한다. 

Liskov Substitution: 리스코프 치환 : 하위 클래스들은 언제든지 상위클래스 기능을 호환할수 있어야한다. 

Interface Segregation: 인터페이스 분리 : 다수의 구체적인 인터페이스를 구성해야한다. 

Dependency Inversion: 의존 역전 법칙 : 하위 클래스 변경 사항이 상위 클래스에 영향을 끼치면안된다. 

 

 

디자인 패턴 :  Gof 디자인 패턴이라고도 한다. 

 

---------------------------------생성 패턴 :  클래스 정의, 객체 생성 방식에 적용 가능한 패턴 ---------------------------------

 

- Factory Method :  상위 클래스에서 객체를 생성하기 위해 인터페이스를 정의하고 하위 클래스는 어떤 클래스의 인스턴스를 생성할 것인지를 결정, 오버라이딩하여 객체를 반환하는 패턴이다. 

 

- Abstract Factory:  관련이 있는 서브 클래스들을 묶어서 팩토리 클래스로 만들고, 조건에 따라 객체르 생성하는 패턴 다수의 클래스들은 하나의 추상클래스로 묶어서 관리할 수 있는 패턴이다. 

 

- Builder :  복잡한 객체 생성을 단계별로 캡슐화하여, 동일한 절차에도 서로 다른 형태의 객체를 생성할 수 있게한다. 

 

- Prototype :  동일한 타입의 객체를 생성해야할 때 필요한 비용을 줄이기 위한 패턴이다. 

 

- Singleton:  클래스가 오직 한개의 인스턴스만을 가지도록 하는 패턴이다.

 

 

-- ------- ---------------------------------구조 패턴 : 인터페이스에 적용 가능한 패턴------------ ------- ------------ ------

 

- Adaptor : 서로 다른 인터페이스를 가진 클래스들을 함께 사용할 수 있도록 하는 패턴

 

- Bridge : 복잡하게 설계된 클래스를 기능부와 구현부로 분리한 뒤 두 클래스를 연결하는 것 기능과 구현을 분리하면, 결합도는 낮아진다. 

 

- Composite : 객체들의 관계를 트리 구조로 구성하여 단일 객체와 복합 객체를 동일하게 다루는 패턴 

 

- Decorator : 클래스 변경 없이 주어진 상황에 따라 기능 추가 

 

- Facade : 복잡한 서브 시스템들을 간편하게 사용할 수 있도록 단순화된 인터페이스를 제공하는 패턴이다 .

 

 

-------- ------------ ------------ ------------행위 패턴: 반복적인 작업에 적용  ------------ ------------ ------------ ------

- Interpreter : 언어의 문법을 평가하는 방법 규정 

 

- Template Method : 상위 클래스에서는 알고리즘 뼈대를 정의 구체적인 단계는 하위 클래스에서 정의 

 

- Chain of Responsibility: 문제의 해결을 위한 일련의 처리 객체가 순서대로 문제를 해결하는 패턴 이패턴은 결합을 느슨하게 하기 위해 고안되었으며 가장 좋은 프로그래밍 사례로 꼽힌다. 

 

- Command : 요청을 객체의 캡슐화하여 나중에 이용할 수있도록 요청에 필요한 정보를 저장하는 패턴 

 

- Iterator : 내부 구현을 노출시키지 않고 집약된 객체에 접근하고 싶은 경우에 적용하는 패턴 

 

- Mediator: 객체 간의 통신이 직접 이루어지지 않고, 중재자를 통해 진행되어 결합도를 감소시키는 패턴이다. 

 

- Memento : 롤백을 통해 객체의 상태를 이전 상태로 되돌릴 . 수있는 기능을 제공하는 패턴 

 

- Observer: 객체의 상태 변화를 관찰하는 옵저버를 등록하여 상태 변화가 있을 때마다 등록된 옵저버에게 통지하는 패턴이다.  옵저버는 다른 객체에 의존하지 않고 다른 객체에 통보해줄 수 있다. 

 

- State : 객체의 내부 상태에 따라 다른 기능을 수행하는 메소드를 구현하는 패턴이다. 

 

- Strategy: 문제를 해결하는 . 데있어 다양한 알고리즘이 적용될 수 있는 경우에 알고리즘을 별도로 분리하는 패턴 

 

- Visitor : 알고리즘을 자료 구조에서 분리하여 클래스를 수정하지 않고도 새로운 알고리즘을 추가 할 수있는 패턴 자료 구조를 방문하여 문제를 해결한다. 

 

 

 

프로세스 정의 

메모리에 적재되어 실행되고 있는 프로그램 

 

Time Slice 에 의해 문맥교환을 수행한다. 

Time Slice가 작은경우 문맥교환수, 인터럽트 횟수, 오버헤드 증가

Time Slice가 큰 경우 문맥교환수 인터럽트 횟수 오버헤드 감소 

 

프로세스 과정은 

프로세스 생성 ->  준비 -> (Dispatch : 준비상태 프로세스를 실행상태로변경 -> 실행  -> 프로세스종료 

 

실행 -> 준비 = Time  Runout. : 할당된 시간안에 작업을 끝내지 못해 준비로 돌아간다 .

 

실행 -> 대기 = Block : 실행 상태 프로세스가 입출력 처리하기위해 대기로 변경 

 

대기 -> 준비  Wake up : 대기 상태 프로세스를 준비 상태로 변경 

 

 

스케줄링 : 

CPU 할당을 위해 프로세스들 사이의 우선 순위를 부여, 관리 하는 것 

장기 스케줄링 : 어떤 프로세스를 커널에 등록할 것인지를 결정 

중기 스케줄링 :어떤 프로세스를 메모리에 할당한 것인지 결정 

단기 스케줄링 :어떤 프로세스에 CPU를 할당한것인지 걀장 

 

- 실행 중인 프로세스의 강제 중단 여부에 따라 비선점형, 선점형 스케줄링이 있다. 

 비선점형 : FIFO SJF HRN  

FIFO: 프로세스가 도착한 순서대로 처리. 

 

SJF : 실행시간이 짧은 프로세스 순으로 처리한다. 

 

HRN : FIFO SJF 단점을 보완하여 개발된 방법. 대기 시간이 긴 프로세스의 우선순위를 높여서 긴 작업과 짧은 작업 간의 지나친 불평등을 해소할 . 수있다.  (대기시간 +실행시간 )/ 실행시간 

 

 

 

교착 상태 : 다수의 프로세스가 같은 자원의 할당을 요구하며 무한정 대기하는 상태 

- 상호 배제 : 한 리소스는 한 번에 한 프로세스만이 사용 가능 

- 점유와 대기 : 프로세스가 하나 이상의 리소스를 점유하고 있으면서 다른 프로세스가 가지고 있는 리소스를 기다리는 상태 

-비선점 : 프로세스가 리소스를 자발적으로 반환할 때 까지 기다리는 상태

- 환형 대기: 각 프로세스가 순차적으로 다음 프로세스가 요구하는 자원을 가진상태 

 

 교착상태 해결방안 :

예방 Prevention : 교착상태의 필요 충분 조건 . 중하나 이상을 부정하여 교착상태 예방 

 

회피  Avoidance : 안정적인 프로세스의 요청만 받아들인다. 

 

발견 (Detection) :  중단 원인이 교착 상태인지 다른 이유인지 파악하는 방법 

 

회복 (Recovery) : 교착 상태가 발생한 프로세스 . 중중단할 프로세스를 정하여 자원을 빼앗는 방식.

 

RAID  -0 : 다수의 하드디스크에 데이터 분산 입출력 

RAID -1 : 다수의 하드디스크에 데이터 복사 입출력 미러링

RAID -5ㅣ 최소 3개의 하드디스크중 하나를 복구용으로 사용 

 

 

 

 

728x90