
스택(Stack)과 힙(Heap) 차이점
2021. 3. 1. 22:15
DevLog/C & C++
메모리 구조 프로그램이 실행되기 위해서는 먼저 프로그램이 메모리에 로드(load)되어야 합니다. 또한, 프로그램에서 사용되는 변수들을 저장할 메모리도 필요합니다. 따라서 컴퓨터의 운영체제는 프로그램의 실행을 위해 다양한 메모리 공간을 제공하고 있습니다. 프로그램이 운영체제로부터 할당받는 대표적인 메모리 공간은 4가지가 있습니다. 코드(code) 영역 데이터(data) 영역 스택(stack) 영역 힙(heap) 영역 코드 영역 메모리의 코드(code) 영역은 실행할 프로그램의 코드가 저장되는 영역으로 텍스트 영역이라고도 부릅니다. CPU는 코드 영역에 저장된 명령어를 하나씩 가져가서 처리하게 됩니다. 데이터 영역 메모리의 데이터(data) 영역은 프로그램의 전역 변수와 정적(static) 변수가 저장되는 ..

추상클래스와 인터페이스의 차이가 뭘까?
2021. 1. 23. 14:38
DevLog
추상 클래스(Abstract Class) 클래스는 일반 클래스(Concrete Class)와 추상 클래스로 나뉘는데 추상 클래스는 클래스 구현부 내부에 추상 메서드가 하나 이상 포함되거나 abstract로 정의된 경우를 말한다. 이러한 정의는 피상적인 것 같다. 공통의 자료형이라고 할 수 있는 추상클래스가 갖고 있는 공통 서비스 함수이다. 다만, 공통 서비스인데 구현이 공통인 것이 아니라 그 서비스라고 하는 목록이 공통인 것을 말한다. 이렇게 정의를 하는게 정확하게 전달하는 의미라고 생각한다. 추상 클래스는 new 연산자를 사용하여 객체를 생성할 수 없다. 추상 클래스(부모)와 일반 클래스(자식)는 상속의 관계에 놓여있다. 추상 클래스는 새로운 일반 클래스를 위한 부모 클래스의 용도로만 사용된다. 일반 ..