메모리 구조
·
CS
1. 프로그램의 메모리 구조 개요프로그램이 실행될 때 운영체제가 할당하는 메모리 공간은 일반적으로 다음과 같은 주요 논리적 영역들로 나눌 수 있습니다. (실제 운영체제나 아키텍처에 따라 구현 방식은 다를 수 있지만, 개념적인 구분은 중요합니다.)코드(Code) 영역 (또는 텍스트 영역): 실행될 프로그램의 기계어 코드(컴파일된 명령어) 자체가 저장되는 공간입니다. 읽기 전용(Read-only)이며, 프로그램 실행 중에 변경되지 않습니다.데이터(Data) 영역: 프로그램이 시작될 때 할당되어 프로그램이 종료될 때까지 유지되는 데이터를 저장합니다. 주로 전역 변수(Global Variables)와 정적 변수(Static Variables)가 여기에 해당합니다. 보통 초기화된 데이터(.data)와 초기화되지 ..
캡슐화, 상속, 다형성, 추상화
·
CS
1. 캡슐화 (Encapsulation)정의: 관련된 데이터(상태, 속성, 필드)와 해당 데이터를 조작하는 메서드(행위, 기능)를 하나의 단위(객체, 클래스)로 묶고, 객체의 내부 구현 세부 사항을 외부로부터 보호하고 숨기는(정보 은닉, Information Hiding) 것을 의미합니다.설명: 캡슐화는 객체의 데이터를 외부에서 직접 접근하여 임의로 변경하는 것을 막고, 오직 객체가 외부에 공개하기로 결정한 메서드(또는 프로퍼티 접근자)를 통해서만 상태 변경이나 접근이 이루어지도록 제어합니다. 이는 접근 제한자(public, private, protected, internal)와 프로퍼티(Property)를 통해 주로 구현됩니다. private 멤버는 클래스 내부에서만 접근 가능하게 하여 내부 구현을 숨..
SOLID 원칙
·
CS
1. SRP (Single Responsibility Principle) - 단일 책임 원칙정의: "클래스는 단 하나의 변경 이유만을 가져야 한다." (A class should have only one reason to change.)설명: 이 원칙은 클래스가 오직 하나의 책임, 즉 하나의 주요 기능 또는 역할만을 가져야 한다는 것을 의미합니다. 만약 한 클래스가 여러 가지 서로 관련 없는 책임(예: 플레이어 이동 처리, 체력 관리, 데이터 저장/로드)을 동시에 가지고 있다면, 그중 하나의 기능을 수정할 때 다른 기능에 예기치 않은 영향을 미칠 위험이 커집니다. 또한, 클래스가 너무 비대해져 이해하고 관리하기 어려워집니다. 각 클래스가 명확하고 응집력 있는 단일 책임을 가지도록 설계해야 합니다.Bad ..