5줄 요약
- 스택(Stack)은 메모리의 한 영역으로, 데이터를 임시로 저장하기 위한 자료구조입니다.
- 스택은 후입선출(LIFO, Last In First Out)의 원리에 따라 동작합니다.
- 함수 호출 시 함수의 지역변수, 매개변수, 반환주소 등의 정보는 스택에 순서대로 저장됩니다.
- 이렇게 스택에 저장된 정보는 함수가 실행을 마치고 반환되면 스택에서 제거됩니다.
- 스택에는 데이터를 넣는 작업을 푸시(Push)라고 하고, 데이터를 빼내는 작업을 팝(Pop)이라고 합니다.
경험
- 프로그래밍 최적화에 기본적으로 중요한 것이라 무조건 기억해야 합니다.
RIsN
5줄 요약
- 프로그래밍에서 메모리는 데이터를 저장하고 읽고 쓰는 데 사용 되는 주요 자원으로 컴퓨터 내부에 위치하며, 일반적으로 물리적인 RAM(Random Access Memory)이 메모리로 사용됩니다.
- 프로그래밍에서 메모리는 크게 두 가지 영역으로 나뉩니다.
- 데이터(Data) 영역은 프로그램에서 사용하는 전역 변수(Global Variable)나 정적 변수(Static Variable)와 같은 데이터를 저장하는 영역입니다.
- 코드(Code) 영역은 프로그램 코드를 저장하는 영역이며, 메모리의 주소를 이용하여 접근할 수 없습니다.
- 프로그래밍에서 메모리는 중요한 자원 중 하나이므로, 메모리 할당과 해제를 적절히 관리하여 메모리 누수(Memory Leak)와 같은 문제를 방지해야 합니다.
경험
- 프로그래밍 최적화에 기본적으로 중요한 것이라 무조건 기억해야 합니다.
RIsN
5줄 요약
- 프로그래밍에서 사용되는 메모리는 크게 스택(stack)과 힙(heap)으로 나뉩니다.
- 스택은 지역 변수와 매개변수와 같은 작은 크기의 데이터를 저장하는 데 사용되며, 스택 메모리는 후입선출(LIFO) 방식으로 동작합니다.
- 스택 메모리는 함수가 호출될 때마다 스택 프레임(Stack Frame)이 만들어지며, 이 프레임에 지역 변수와 매개변수가 저장됩니다. 함수가 종료되면 해당 프레임은 스택에서 제거됩니다.
- 힙 메모리는 프로그램에서 동적으로 할당된 데이터를 저장하는 데 사용되며 전역 변수와 지역 변수와는 달리, 프로그램 실행 중에 크기가 변경될 수 있으며, 스택과는 달리 임의의 순서로 접근할 수 있습니다.
- 또한, 프로그램 코드는 실행 파일의 데이터 섹션에 저장 되며, 프로그램의 명령어와 상수 데이터가 저장됩니다.
경험
- 프로그래밍 최적화에 기본적으로 중요한 것이라 무조건 기억해야 합니다.
RIsN
5줄 요약
- 다형성(Polymorphism)은 객체지향 프로그래밍에서 객체들이 동일한 인터페이스를 사용하면서 다른 구현을 가질 수 있는 능력을 말합니다.
- 부모 클래스에서 파생된 자식 클래스는 부모 클래스의 메서드를 오버라이딩(Overriding)하여 자식 클래스에서 다른 구현을 제공할 수 있습니다.
- 또한, 인터페이스를 구현하는 클래스들은 같은 인터페이스를 사용하면서 서로 다른 구현을 제공할 수 있습니다.
- 다형성은 코드의 재사용성과 유지보수성을 높이는데 중요한 역할을 합니다.
- 예를 들어, 같은 인터페이스를 구현하는 다른 클래스들은 동일한 메서드 호출로 다른 동작을 수행할 수 있으므로, 코드 중복을 방지하고 개발 시간과 비용을 절약할 수 있습니다.
경험
RIsN
5줄 요약
- 상속(Inheritance)은 객체지향 프로그래밍에서 객체 간의 관계를 구현하는 방법 중 하나입니다.
- 상속은 이미 정의된 클래스(상위 클래스 또는 부모 클래스)를 기반으로 새로운 클래스(하위 클래스 또는 자식 클래스)를 생성하는 것을 말합니다.
- 이를 통해 상위 클래스의 속성과 메서드를 하위 클래스에서 상속받아 재사용할 수 있으며, 이를 기반으로 하위 클래스에서 추가적인 기능을 확장하거나 수정할 수 있습니다.
- 이미 정의된 클래스를 기반으로 새로운 클래스를 생성하면, 코드를 중복 작성하지 않아도 되므로 개발 시간과 비용을 절약할 수 있습니다.
- 또한, 상속을 통해 코드를 일관성 있게 유지할 수 있고, 수정이 필요한 경우, 하위 클래스에서만 수정하면 되므로 유지보수성이 높아집니다.
경험
- Unity에서는 Character와 Skill 등을 사용할 때 많이 사용했습니다.
- Scene마다 동일하게 쓰는 것을 가져오기 위해 해당 부분을 많이 사용했습니다.
RIsN
5줄 요약
- 캡슐화(Encapsulation)는 객체지향 프로그래밍에서 객체의 상태와 행위를 하나로 묶고, 외부에서 직접 접근하지 못하도록 차단하는 것을 말합니다.
- 이를 통해 객체의 상태를 숨기고 보호함으로써, 외부에서 객체의 상태를 무분별하게 변경하는 것을 방지하고, 객체의 일관성을 유지할 수 있습니다.
- 캡슐화를 구현하는 가장 대표적인 방법은 정보 은닉(Information Hiding)입니다.
- 정보 은닉은 객체의 내부 상태를 외부에서 접근할 수 없도록 private 등의 접근 제한자를 이용하여 제한하고, 외부에서는 제공되는 public 인터페이스를 통해 객체의 상태를 조작하도록 합니다.
- 캡슐화는 소프트웨어 개발에서 유지보수성과 재사용성을 높이고, 객체 간의 결합도를 낮추는 데 중요한 개념 중 하나입니다.
추가 내용
경험
RIsN
5줄 요약
- 객체지향 프로그래밍(Object-Oriented Programming, OOP)은 소프트웨어 개발 패러다임 중 하나로, 현실 세계의 객체를 소프트웨어 객체로 모델링하여 소프트웨어를 개발하는 방법입니다.
- 객체는 데이터와 그 데이터를 조작하는 메서드로 이루어져 있으며, 소프트웨어 개발에서는 이러한 객체를 생성하여 조합하여 프로그램을 만듭니다.
- 객체지향 프로그래밍에서는 상속, 다형성, 캡슐화와 같은 개념을 사용하여 코드의 재사용성과 유지보수성을 높이고, 복잡한 문제를 해결하는 데 유용합니다.
- 또한, 객체의 상태 변경과 관련된 동작들은 객체 내부에 캡슐화되어 있으므로, 프로그램의 안정성과 보안성도 높일 수 있습니다.
- 자바(Java), C++, 파이썬(Python)과 같은 프로그래밍 언어는 객체지향 프로그래밍을 지원하는 언어입니다.
추가 내용
경험
RIsN