오늘 학습 키워드

다른 팀들 발표 정리, 객체지향 특강

오늘 학습 한 내용을 나만의 언어로 정리하기

팀 프로젝트 발표

우리 팀 피드백

  • 발표 다같이 한 점 굿
  • 게임 퀄리티 굿
  • 일정 조율 굿
  • 인스턴스 안에 메소드를 통해 값을 바꾸기 때문에 안전해보임
  • 주석 처리된 스크립트는 삭제하는게 좋음
  • 생명주기 함수도 비어있으면 삭제하는게 좋음

다른 팀 피드백

  • PersistDataPath로 해야 저장도 가능함
  • 폴더 정리가 좀 더 되어있어야 한다
  • 클래스 구조 잡는 연습하면 좋음
  • 동일한 로직 통합 중요
  • 자신감 가지기
  • 로직에 들어가는 문자열은 가급적 빼기
  • 델리게이트 구분해서 사용하기
  • 주석 쓰기
  • 타격, 피격시 이펙트가 없어서 밋밋
  • UI 해상도 변경되어도 문제없도록 짜기 (Scale with Screen Size)
  • 게임 안내 추가

1차 객체지향 특강

  • 소프트웨어 : 변화의 대응을 쉽게 할 수 있어야 한다

  • Object : 개념으로써의 객체

  • Class : 문법. 객체에 필요한 속성, 기능을 클래스로 관리함

  • Instance : 메모리에 할당된 객체

  • 빵틀/빵 보다는 이데아론이 더 이해하기 쉬울지도?

  • 객체는 기능을 제공함

객체지향의 4대 원칙

캡슐화

  • 변수를 외부에서 함부로 접근할 수 없게 막아두는 것

추상화

  • 공통점이 있는 애들을 추상화하기

상속

  • 추상화 된 클래스를 상속
  • 화살표 꼭지가 있는쪽이 부모임

다형성

  • 상속으로 다양한 클래스를 만듬

클래스 간의 관계

  • 상속
  • 의존
  • 연관
  • 실체화

의존 관계를 줄여라

  • 내가 상속(화살표)하거나 연관(실선)하지 않는 클래스의 함수 사용을 줄여라
  • 의존도/결합도가 높으면 안됨 점선이 많으면 안됨

SOLID 원칙

SRP : 단일 책임 원칙

  • 모든 클래스는 하나의 책임만 가지도록 하기

OCP : 개방 폐쇄 원칙

  • 확장은 개방적, 수정은 폐쇄적

LSP : 리스코프 치환 원칙

  • 자식은 부모로 교체할 수 있어야 함
  • 부모 말을 잘 들어라
  • override 하고 base.함수명 지우지 말고!!! 부모 말 잘 들어라!!!
  • 애초에 추상화 함수로 쓰던가 해라

ISP : 인터페이스 분리 원칙

  • 기능을 인터페이스 단위로 나누자

DIP : 의존성 역전 원칙

  • 파생 클래스 보다는 부모 클래스 쪽을 써라

객체지향 프로그래밍 중점

  • 의존성/결합도를 낮춰라!!!!
  • 객체의 자율성을 높이고 응집도를 높여라!!!
  • 왜? 수정이 용이하게 하려고!!!!
  • 응집도 : 한 클래스 내의 메소드를 얼마나 잘, 많이 활용하는가