Programming Principles [3]: 자료 구조 (Data Structures)
·
Computer Scinece/Programming Principles
1. 자동 할당 (Automatic Allocation)저장 위치: STACK할당 시점: 함수 호출 시해제 시점: 함수 종료 시크기 변경: 불가 (고정)장점: 간편, 자동 해제단점: 메모리 크기 제한 있음1. 데이터 추상화 (Data Abstraction)1.1 추상화 (Abstraction)추상화는 복잡한 시스템에서 핵심적인 부분만을 남기고 불필요한 세부 사항을 제거하는 개념이다. 너무 추상적인 설명은 실질적인 정보가 부족하고, 너무 구체적인 설명은 불필요한 정보를 포함하여 비효율적일 수 있다. 따라서 적절한 수준에서 핵심 정보만을 남기는 것이 중요하다. 프로그램 역시 추상화의 한 형태로, 프로그램이 무엇을 해야 하는지는 설명하지만, 내부적으로 어떻게 동작하는지는 숨긴다. 자동차를 운전할 때, 운전자는..
Programming Principles [2] : 객체지향 프로그래밍 (Object-Oriented Programming)
·
Computer Scinece/Programming Principles
기존의 절차지향 프로그래밍은 데이터와 함수가 분리되어 있어 프로그램의 구조가 복잡해지고 유지보수가 어려워지는 단점이 있었다. 이러한 문제를 해결하기 위해 객체지향 프로그래밍(OOP)이 등장하였으며, 이는 객체를 중심으로 소프트웨어를 구성하는 방법이다. OOP는 데이터를 포함한 객체를 통해 관련된 기능을 묶어 관리함으로써 코드의 재사용성과 모듈화를 촉진하고, 프로그램의 이해도를 높인다. Unity를 예를 들면, Player라는 클래스를 정의하고 이 클래스에 체력이나 점수같은 멤버 변수들을 포함시키고 TakeDamage()와 IncreaseScore()와 같은 멤버 함수를 통해 플레이어의 상태와 행동을 관리할 수 있다. 이러한 방식으로 각 객체는 자신만의 속성과 기능을 가지게 되어, 복잡한 게임 시스템을 보..
Programming Principles[1]: 프로그래밍 기본 (Basic Algorithms)
·
Computer Scinece/Programming Principles
프로그래밍의 기초를 배우기 위해서는 먼저 기본적인 알고리즘의 이론에 대해 이해할 필요가 있다. 알고리즘(Algorithms)은 특정 문제를 해결하기 위해 명확하게 정의된 일련의 절차나 단계들을 의미한다. 알고리즘은 주어진 입력을 처리하여 원하는 출력으로 변환하는 방법을 체계적으로 설명하며, 컴퓨터 과학, 수학, 데이터 처리, 인공지능 등 다양한 분야에서 사용된다. 알고리즘의 문제 정의와 구성 요소는 다음과 같다. 문제 (Problem) : 해결하고자 하는 특정 질문이나 과제이며 일반적으로 문제는 여러 경우에 대해 일반화된 형태로 표현파라미터 (Parameter) : 문제에서 값이 주어지지 않은 변수로, 문제의 조건이나 상황을 정의하는데 사용된다. 파라미터는 문제를 구체화하는 데 중요한 요소로, 문제의 일..