TIL

내일배움캠프 21일차 TIL (유니티 개발입문)

kimseung2331 2024. 1. 22. 20:37

오늘 학습한 내용

[절차지향]

 

데이터 정보를 프로그램에 입력하고 로직을 생성한다.
프로그램에 입력된 데이터를 그대로 가져와서 사용한다.
플레이어만 있을 때는 문제가 없지만 몬스터가 추가되면 문제가 생길 수 있다.
계속해서 무언가가 추가될 때마다 코드가 정말 길어질 것이고
코드가 길어지면 어디가 잘 못 되었는지 파악하기가 힘들다.
배열로 반복 처리는 가능하겠으나 데이터의 구조 파악이 복잡한 문제가 있다.
새로운 데이터를 추가해야 할 경우 작업이 힘들어진다.
인덱스 번호에 의존하는 구조이다.

가독성의 저하는 단순히 보기 안좋다는 것이 아니라
코드를 파악하기 힘들다는 의미이다.
디버깅이 힘들고 코드의 유지 보수가 어렵다.
작업에 크게 영향을 미친다.

 

[객체지향]

 

동일한 목적이나 기능을 하는 변수와 함수를 각각 하나로 묶어서 처리하고 연관된 데이터를 묶는다.
필요한 데이터를 묶어서 클래스화 하기 때문에 코드를 이해하기 쉬워진다.

객체지향 설계원칙
[단일책임의 원칙]
어떻게 객체지향의 기준을 잡느냐?

장착 기능

플레이어  아이템  인벤토리

아이템 : 상점이나 몬스터가 갖고 있는 아이템은 아직 장착할 수 없음
플레이어, 인벤토리 가능

플레이어에는 장착 말고도 전투, 레벨업, 구매 ,판매 등 다양한 기능이 들어갈 수 있다.
그렇다는 말은 플레이어의 코드가 복잡해 진다는 의미이다.
때문에 인벤토리에 해당 기능을 구현하면 코드관리가 좀 더 수월하다.
동일하게 구매 판매의 기능을 상점에 주는 등 목적에 맞는 클래스를 구현해 기능을 구현하는 것이 좋다.

클래스와 객체의 차이
클래스는 설계한 구조의 데이터 모음, 즉 스크립트
객체는 new를 통해 실제로 만들어진 인스턴스

클래스의 기능을 분리할 때 어디에 무슨 기능을 넣어야 할까?
정답이라는 게 없기 때문에 지금은 자신이 생각했을 때 타당하다고 생각된느 곳에 추가하면 된다.

 

오늘의 회고

 

해야 할 일

  • 1. 개인과제 제출