목록2024년 2학기 (35)
B2024001225 윤지선

IT 인프라 관련 기술 – 직렬/병렬CPU, HDD 등에서 직렬/병렬 처리 • 서버 내외부 자원의 배치를 통한 직렬/병렬 처리CPU, HDD 등에서의 처리 • 직렬 처리로 속도를 높이는데 한계 발생 • 병렬 처리로 속도가 빨라지는 것은 아니나(CPU 처리 능력 동일) 단위 시간당 처리량이 증가 • 디스크의 읽기, 쓰기(I/O) 처리서버 내부에서의 처리 • 멀티 프로세스 : 다수의 웹서버 데몬(httpd)을 실행 • 멀티 스레드 : 하나의 프로세스 안에 다수의 스레드를 이용해 병렬화서버 외부에서의 처리 • 부하분산을 위해 복수의 서버 배치 & 데이터 처리 IT 인프라 관련 기술 – 동기/비동기동기처리 • 서버가 일을 마칠때까지 기다림 • 설계가 간단하고 직관적 • 결과가..

오늘 하는 내용은 시험에서 단답형으로 많이 출제 템플릿(template)STL(Standard Template Library) 예외처리 # 자료형을 나중에 결정한다. #include using std::cout;using std::endl;int Max(int i, int j){ return i > j ? i : j;}double Max(double i, double j){ return i > j ? i : j;}char Max(char i, char j){ return i > j ? i : j;}int main(){ cout 원래 코드#include using std::cout;using std::endl;template T Max(T i, T j){ return i > j ? i : j;}int ..

템플릿 : 포괄적 함수(generic function)● 템플릿은 인자(매개변수)를 통한 다형성을 제공함.● 함수 중첩은 기능이 같은 함수들을 같은 이름으로 사용할 수 있도록 한다.● 함수의 매개변수의 형과 수로 구분이 되고, 코드 자체도 다르게 구성될 수 있다.● 코드는 전혀 바뀌지 않고 형만 다른 함수를 필요로 한다면 템플릿을 사용하는 것이 좋다● 이는 값 뿐만 아니라 형을 인자로 받는 함수로서 인자로 받은 형에 대하여 함수를 생성시키는 포괄적 함수(generic function)이다 매개변수를 전달하는 방법- C언어에서는 기본적으로 값에 의한 호출(call by value)- 실매개변수의 값을 형식매개변수로 전달- 이 방법은 실매개변수를 형식매개변수로 전달할 뿐 함수 내부에서 형식매개변수가 변경되..

가상함수의 필요성- 클래스를 상속받아서 쓰는데, 상속 받은 클래스의 함수 중 고치고 싶은 함수가 있을 때 사용- 기존 클래스의 모든 내용을 모든 현재 프로그램에 사용할 수 있는데, 특정 함수가 마음에 들지 않았을 때- 기존의 클래스를 고치느니 상속을 받고, 가상함수를 이용하여 기존의 함수를 고쳐서 사용함- 상속 받은 함수(부모)를 실행하지 않고 자신(자식)의 함수를 실행- 가상함수의 구현을 중복(overriding)이라고 함 C언어의 cast 연산자- C언어에서는 자료형이 서로 다른 혼합 연산에서는 기억 장소의 크기가 큰 쪽으로 통일시켜 연산이 이루어짐(자동 형 변환)- int형과 double형의 연산에서는 int형이 double형으로 변환되어 결과가 double형으로 나옴- 이미 지정된 자료형..

객체지향 언어의 세가지 특징 : 캡슐화, 상속, 다형성 a1 a2 함수는 캡슐화 때문에 private 속성이라서 클래스 밖에서 접근되지 않음. 부모가 있고 상속받으면 모든것을 물려받는것이 아닌 public부분만 물려받음. protected라고 되어있어도 접근이 안된다(?) #include using std::cout;// 클래스 A 정의: 기본 클래스 또는 부모 클래스class A {private: // private 멤버 함수들: 클래스 내부에서만 접근 가능 void a1() {cout JAVAclass Animal { void makeSound() { System.out.println("The animal makes a sound"); }}class Dog ex..

상속성(inheritance)- C에서는 이미 기계어로 번역되어 한번 개발된 라이브러리는 정적인 특성을 가지고 있어 새로운 내용을 추가할 수 없으며 새로운 내용을 추가하려면 처음부터 다시 작성해야 함.- 객체지향언어인 C++ 에서는 상속성을 제공하여 이러한 작업의 중복을 지양하고 프로그램의 개발시간의 단축, 기존의 프로그램의 재사용, 경비절감 등을 이룰 수 있다. - 이미 존재하는 클래스로부터 기본적인 특성을 물려받아 그대로 사용하고 새로운 특성만을 추가로 정의한다. 클래스들의 계층구조- 위쪽의 클래스는 일반화되어 있어 속성이 간단하며, 아래 클래스들의 공통적인 속성만을 갖는다.- 아래쪽의 클래스는 위쪽 클래스의 속성을 상속 받으며, 자신의 개별적인 속성을 추가하여 속성이 많아진다. 상속 과정- 계층적..

버츄얼 함수는 실행시간에 다형성을 구현하는 방법 # 함수 중첩 : 똑같은 이름의 함수를 여러개 만들 수 있다 #include int add(int i, int j){ return (i + j);}double add(double i, double j){ return (i + j);}double add(int i, int j){ return ((double)i + (double)j);}int main(){ std::cout 함수중첩이 된 함수가 리턴값만 다른 것은 오류가 남 # 일반 괄호는 함수 다음에 쓴다 # 중괄호는 블럭을 만들 때 사용(for, if문) # 대괄호는 배열을 쓸 때 사용 # 꺽쇠괄호는 자료형을 나중에 결정할 때 사용 #include int add(int i, int j){ return ..

함수 중첩과 디폴트 인자다형성의 종류- 보편적 자형성 - 포함 다형성 - 상속 - 인자 다형성 - 템플릿- 불규칙 다형성 - 중첩 - 함수/연산자 - 코어션 - 형변환 함수 중첩(function overloading)- 함수 오버로딩- 다형성을 구현하는 한가지 방법- C에서는 기능이 같은데도 처리하는 자료형에 따라 다른 이름의 함수를 사용함- 수의 절대값을 구하는 함수 - abs() // int, abs(-4) = 4 - labs() // long, labs(-31) = 3 - fabs() // float, fabs(-3.6f) = 3.6- 다형성을 제공하는 C++에서는 하나의 함수 이름을 중첩해서 사용 가능함- 하나의 함수명을 여러 개의 유사..