Byn's Research Note

AI based Mixed Reality, Human-Computer Interaction

↓ My Web CV & Portfolio 자세히보기

2024/09/18 13

Programming Principles [2] : 객체지향 프로그래밍 (Object-Oriented Programming)

기존의 절차지향 프로그래밍은 데이터와 함수가 분리되어 있어 프로그램의 구조가 복잡해지고 유지보수가 어려워지는 단점이 있었다. 이러한 문제를 해결하기 위해 객체지향 프로그래밍(OOP)이 등장하였으며, 이는 객체를 중심으로 소프트웨어를 구성하는 방법이다. OOP는 데이터를 포함한 객체를 통해 관련된 기능을 묶어 관리함으로써 코드의 재사용성과 모듈화를 촉진하고, 프로그램의 이해도를 높인다. Unity를 예를 들면, Player라는 클래스를 정의하고 이 클래스에 체력이나 점수같은 멤버 변수들을 포함시키고 TakeDamage()와 IncreaseScore()와 같은 멤버 함수를 통해 플레이어의 상태와 행동을 관리할 수 있다. 이러한 방식으로 각 객체는 자신만의 속성과 기능을 가지게 되어, 복잡한 게임 시스템을 보..

Programming Principles[1] : C++의 기본 문법 (C++ basics)

C++는 1979년 Bjarne Stroustrup이 개발한 객체지향 프로그래밍 언어로, C 언어의 성능을 유지하면서도 고급 언어 기능을 확장해 더 효율적이고 구조적인 코드 작성을 가능하게 한다. C++는 클래스, 상속, 다형성, 캡슐화 같은 객체지향 프로그래밍(OOP) 개념을 도입해 코드의 재사용성과 유지보수성을 높이며, 템플릿 기능을 통해 제네릭 프로그래밍을 지원해 코드의 유연성을 강화한다. C++는 또한 저수준 메모리 관리가 가능해 운영체제, 게임 엔진, 그래픽 처리 등 고성능 응용 프로그램 개발에 널리 사용되며 표준 라이브러리(STL)를 통해 다양한 자료구조와 알고리즘을 내장하여 개발 효율을 높인다. 본격적인 시작에 앞서 C++의 기본 문법을 정리할 것이다.1. 변수와 자료형 변수(Variable..

Programming Principles[0] : 인트로 (Introductions)

객체지향 프로그래밍(OOP)과 자료구조, 알고리즘은 프로그래밍의 기반을 구성하는 중요한 개념으로, 이를 이해하는 것은 복잡한 소프트웨어 시스템을 설계하고 효율적인 문제 해결을 가능하게 한다. 객체지향 프로그래밍(OOP)은 코드 재사용과 유연한 확장을 돕는 방법론이다. 예를 들어, C++에서 Animal이라는 추상 클래스를 정의한 후, 이를 상속받아 Dog, Cat 등 세부적인 동물 클래스를 만들면 코드 중복을 줄이고 특정 기능을 확장할 수 있다. 이런 구조는 유지보수 시 변경 범위를 최소화하며, 각각의 객체가 데이터를 포함하면서 동작을 독립적으로 관리하므로 협업과 테스트 과정에서도 효과적이다. 자료구조는 데이터를 논리적이고 효율적으로 저장하고 관리할 수 있도록 돕는 구조를 제공한다. 각 자료구조는 용도에..