오늘 학습 키워드
다른 팀들 발표 정리, 객체지향 특강
오늘 학습 한 내용을 나만의 언어로 정리하기
팀 프로젝트 발표
우리 팀 피드백
- 발표 다같이 한 점 굿
- 게임 퀄리티 굿
- 일정 조율 굿
- 인스턴스 안에 메소드를 통해 값을 바꾸기 때문에 안전해보임
- 주석 처리된 스크립트는 삭제하는게 좋음
- 생명주기 함수도 비어있으면 삭제하는게 좋음
다른 팀 피드백
- PersistDataPath로 해야 저장도 가능함
- 폴더 정리가 좀 더 되어있어야 한다
- 클래스 구조 잡는 연습하면 좋음
- 동일한 로직 통합 중요
- 자신감 가지기
- 로직에 들어가는 문자열은 가급적 빼기
- 델리게이트 구분해서 사용하기
- 주석 쓰기
- 타격, 피격시 이펙트가 없어서 밋밋
- UI 해상도 변경되어도 문제없도록 짜기 (Scale with Screen Size)
- 게임 안내 추가
1차 객체지향 특강
-
소프트웨어 : 변화의 대응을 쉽게 할 수 있어야 한다
-
Object : 개념으로써의 객체
-
Class : 문법. 객체에 필요한 속성, 기능을 클래스로 관리함
-
Instance : 메모리에 할당된 객체
-
빵틀/빵 보다는 이데아론이 더 이해하기 쉬울지도?
-
객체는 기능을 제공함
객체지향의 4대 원칙
캡슐화
- 변수를 외부에서 함부로 접근할 수 없게 막아두는 것
추상화
- 공통점이 있는 애들을 추상화하기
상속
- 추상화 된 클래스를 상속
- 화살표 꼭지가 있는쪽이 부모임
다형성
- 상속으로 다양한 클래스를 만듬
클래스 간의 관계
- 상속
- 의존
- 연관
- 실체화
의존 관계를 줄여라
- 내가 상속(화살표)하거나 연관(실선)하지 않는 클래스의 함수 사용을 줄여라
- 의존도/결합도가 높으면 안됨 ⇒ 점선이 많으면 안됨
SOLID 원칙
SRP : 단일 책임 원칙
- 모든 클래스는 하나의 책임만 가지도록 하기
OCP : 개방 폐쇄 원칙
- 확장은 개방적, 수정은 폐쇄적
LSP : 리스코프 치환 원칙
- 자식은 부모로 교체할 수 있어야 함
- 부모 말을 잘 들어라
- override 하고 base.함수명 지우지 말고!!! 부모 말 잘 들어라!!!
- 애초에 추상화 함수로 쓰던가 해라
ISP : 인터페이스 분리 원칙
- 기능을 인터페이스 단위로 나누자
DIP : 의존성 역전 원칙
- 파생 클래스 보다는 부모 클래스 쪽을 써라
객체지향 프로그래밍 중점
- 의존성/결합도를 낮춰라!!!!
- 객체의 자율성을 높이고 응집도를 높여라!!!
- 왜? 수정이 용이하게 하려고!!!!
- 응집도 : 한 클래스 내의 메소드를 얼마나 잘, 많이 활용하는가