TIL(Today I Learned)

객체 지향 프로그래밍, Unity 개인 과제 - TIL#21

Najdorf 2024. 1. 22. 21:07
728x90

객체지향 프로그래밍 특강


절차지향 프로그래밍?
레벨, 체력, 공격력, 방어력 등의 동일한 속성의 변수들이
몬스터 같은 객체들이 추가될 때마다 비슷한 코드가 반복되고 길어지는 현상이 생김
이걸 배열로 반복 처리는 가능
문제1 - 데이터 구조 파악의 복잡함.
문제2 - 중간에 데이터 추가가 필요하다면??
가독성 저하 -> 코드 이해가 어려움 -> 버그 발생이 빈번해짐 -> 유지 보수가 힘듦

객체지향 프로그래밍
동일한 목적이나 기능을 하는 변수와 함수들을 하나로 묶어서 관리한다
연관된 데이터 묶기
객체 사용으로 코드가 간결해짐
가독성 증가 -> 코드 파악이 쉽다
길어 질 수 있는 코드를 나눠서 관리, 코드 관리에 좋음 -> 코드 분석 쉬움, 협업에도 유리
목적에 맞게 기능도 포함가능 -> 함수 사용

1. 목적에 맞게 코드를 분리해서 관리
2. 연관된 데이터 묶어서 사용
-> 코드 파악이 쉽다, 가독성 증가, 유지보수 쉽다.
=> 코드를 이해하기 쉽다!

객체지향 특징 4가지:
추상화 : 객체의 공통적인 속성과 기능을 추출하여 정의하는 것을 말한다.
다형성 : 하나의 변수, 또는 함수가 상황에 따라 다른 의미로 해석될 수 있는 것을 말한다.
상속 : 상속은 자식 클래스가 부모 클래스의 특성과 기능을 그대로 물려받는 것을 말한다.
캡슐화 : 변수와 함수를 하나의 단위로 묶는 것을 의미한다.

 


객체지향 설계원칙 5가지 (SOLID):


SRP(Single Responsibility Principle), 단일책임의 원칙 : 

객체는 오직 하나의 책임만을 가져야 한다


OCP(Open-Closed Principle), 개방폐쇄의 원칙 : 

Open(확장은 되면서), Closed(수정은 안 되게 하라)


LSP(Liskov Substitution Principle), 리스코프 치환 원칙 : 

자식 클래스는 언제나 자신의 부모 클래스를 대체할 수 있어야 한다. (상속의 본질)


ISP(Interface Segregation Principle), 인터페이스 분리 원칙 : 

인터페이스를 작게 나누어 만들어서, 클라이언트에서 필요없는 메서드는 사용하지 않게 한다.


DIP(Dependency Inversion Principle), 의존관계 역전 원칙 : 

추상성이 높고 안정적인 고수준의 클래스는 구체적이고 불안정한 저수준의 클래스에 의존해서는 안 된다.

 

https://namu.wiki/w/%EA%B0%9D%EC%B2%B4%20%EC%A7%80%ED%96%A5%20%ED%94%84%EB%A1%9C%EA%B7%B8%EB%9E%98%EB%B0%8D/%EC%9B%90%EC%B9%99

 

객체 지향 프로그래밍/원칙 - 나무위키

객체지향 5원칙(SOLID). 객체지향에서 꼭 지켜야 할 5개의 원칙을 통틀어 객체지향 5원칙이라 칭한다. 일단 한번 보면 개념은 알아 듣긴 하지만 막상 실현하려면 생각보다 어려움이 따른다. 이 5개

namu.wiki

(출처가 나무위키이긴 하지만 정리가 너무 잘 되어있다...)


메타버스 모방 개인 과제

 

필수요구사항은 아래와 같이 총 7개인데,

  • 캐릭터 만들기
  • 캐릭터 이동
  • 방 만들기
  • 카메라 따라가기
  • 캐릭터 애니메이션 추가
  • 이름 입력 시스템
  • 캐릭터 선택 시스템

이 중 캐릭터 애니메이션 추가 기능 까지는 구현이 빠르게 가능했다.

나머지는 내일까지 제출이라 내일 오전 중으로 마무리를 빠르게 지을 계획이다.

728x90