내부 메모리 단편화 - 할당될 크기에 비해 실제 할당된 단위자원의 크기가 커서 해당 단위 자원 내부에 사용하지 않는 메모리 공간이 발생 할 때를 말한다.외부 메모리 단편화 - 총 할당 가능한 자원의 합에 비해 실제 할당 할 수 있는 자원의 크기가 작은 상태를 말한다. 해결방법 메모리 압축 (Memory Compaction) - 여러 곳에 분산되어 있는 단편화된 메모리공간들을 결합하여 하나의 큰 공간으로 만드는 것이다. (디스크조각모음) - CPU가 몇 개의 바이트씩 읽어오고 다시 쓰는 방법으로 반복해서 재배치 하기 떄문에 CPU 처리시간이 증가하여 처리기 효율이 크게 감소한다. 메모리 통합 (Memory Coalescint) - 단편화가 발생된 공간에서 인접해있는 다른 단편화 공간들을 하나로 통합시켜 큰..
OOP - 포함, 상속, 오버라이딩 1. 클래스의 재활용기존의 클래스를 재활용하는 방법에는 “상속"과 ”포함“이 있다.사람이라는 클래스가 있다고 하자. 현재 우리가 필요로 하는 클래스는 학생이라는 클래스인데 학생클래스는 사람클래스가 가지는 모든 멤버를 가져야 한다고 한다면 복사를 해서 사용한다. 여기서 코드의 중복이 생겨나고 사람클래스의 변경이 생기면 학생 클래스도 수정해야 하므로 유지보수에 비용이 들어갈 수 있다. ===> 상속과 포함을 사용함으로써 이런 코드의 중복을 방지하고 코드를 변경하고 싶으면 한 군데만 변경하면 나머지 모든 클래스의 코드가 변경되니 프로그램의 생산성이나 유지보수에 도움이 됨.Person{int age;} ① 포함Student클래스는 멤버 변수로 Person데이타 변수를 가진다...
상속 오버라이딩 함수 vs 가상 함수 (Overriding vs pure virtual function) 머릿속에 상속함수는 무엇이고, 가상함수는 무엇이다라고 정의는 되어있었지만, 둘이 어떻게 다른지 확실히 알지는 못했었다. 두개가 어떻게 다른지 말해보라고 하면, 말하기도 쉽지 않았다. (실제 코딩 인터뷰에서 이 문제를 물어봐서 당황하기도 했었어서) 정리하기 위해서 이 글을 쓴다. 1. 상속 상속이라는 개념은 오버라이딩으로 설명이 되는데, 클래스 A에 선언된 함수 func()가 있다고 가정하자. 그리고 클래스 B는 A로부터 파생된 함수, 즉 상속된 함수이고, 같은 함수 func()가 정의 된다. 다시 말해서, 기본(parent)클래스에서 정의된 멤버 함수를 파생된(child)클래스에서 같은형태로 선언하는..