내일배움캠프 27일차 TIL, 게임개발입문 프로젝트 마무리

황오영·2024년 5월 23일
0

TIL

목록 보기
27/56
post-thumbnail
post-custom-banner

게임개발 입문주차 프로젝트 마무리

  • 오늘 게임개발 입문주차 프로젝트 발표, 마무리르 했다. 아래는 프로젝트 깃허브 링크

    https://github.com/oyounghawng/Spart_2D_Dodge

  • 작업자체는 게임이 복잡한 게임이 아니라 쉬운 장르의 게임이라 작업난이도가 높지는 않았는데 시간이 부족해서 기능적으로 부족한 부분이 많았다.
  • 팀원 구성이 챌린지반 1명 베이직~스탠다드 분들과 구성이 되어있어 콘솔프로젝트 때에도 느꼈지만 단순히 내가 모든걸 담당해서 구성하는 방식은 그렇게 좋지 않은것같다는 생각이 들어 이번 프로젝트의 경우 팀원분들과 소통을 중요시하며 프로젝트를 진행했다.
  • 굳이 엄청나게 많은것을 하려하기 보다는 하나의 기능이라도 제대로 구현하고 팀원분들과 많은 학습을 하려는 목표는 잘 이룬 것 같다.
  • 특히 이번 매니저관련한 기능들을 예전엔 잘 모르고 썻다면 이번 캠프기간동안 많은 학습을 하고 나서 보니 좀 더 수월하게 사용이 가능해진 것 같다. 오브젝트 폴링같은 디자인 패턴들도 잘 이해할 수 있게 되어서 많은 공부가 되었다다.
  • 다만 역시나 시간과 일정관리에선 아쉬운 부분이 많아 이런 부분은 잘 개선해서 다음 프로젝트때 반영해야겠다.

객체지향 특강 2부

  • 객체지향 특강 2부강의가 있었다 간단하게 정리해보고자 한다.

객체지향의 원칙들

SOLID 원칙

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

  • 모든 클래스는 각각 하나의 책임만을 가져야한다. 책임은 완전히 캡슐화 해야한다.
  • 하나의 클래스가 하나의 책임을 져야한다는 원칙으로 해석하는 것이 아니라 모듈이 여러 대상, 애터들에 책임을 지는것이 아닌 하나의 액터만 책임을 져야한다는 것으로 받아들여야 한다.
  • 어떤 클래스의 변경이 일어났을 때 이 원칙은 더 중요해진다. 수정할 대상이 모호해 지는것이 아닌 명확하게 책임 대상을 수정하면 되기 때문이다.

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

  • 확장에 대해 열려있고 수정에 대해서는 닫혀있어야 한다.
  • 확장에 대해 열려 있다는 의미는 요구사항이 변경될 때 동작의 추가를 통해 기능을 확장 할 수 있어야한다는 의미고
  • 수정에 대해 닫혀 있다는 의미는 기존의 코드를 수정하지 않고 동작을 추가하거나 변경할 수 있어야 한다.
  • 이 원칙을 위해선 추상화의 과정이 필요하다. 변하지 않는 부분은 고정하고 변하는 부분은 추상화로 변경하면 되기 때문이다.

인터페이스 분리 원칙(Interface segregation principle, ISP)

  • 인터페이스를 각각 사용에 맞게 끔 잘게 분리해야한다.
  • SRP는 클래스의 단일책임을 강조하고 ISP는 인터페이스의 단일 책임을 강조한다.
  • ISP는 인터페이스의 분리를 통해 설계를 해야한다는것
  • 클라이언트의 목적과 용도에 적합한 인터페이스 만을 제공해야한다.
  • 인터페이스의 경우 다중상속이 가능하기 때문에 분리할 수 있으면 분리하는 것이 좋다.

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

  • 서브 타입은 언제가 부모 타입으로 교체할 수 있어야 한다.
  • 다형성 원리를 이용하기 위한 원칙 다형성의 특징을 이용하기 위해 상위클래스 타입으로 객체를 선언하여 하위 객체에 받아도 부모의 메서드를 사용해도 동작이 의도된 대로 흘러가야 한다.
  • 그래서 부모 메서드의 오버라이딩을 조심히 사용해야 한다.

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

  • 어떤 클래스를 참조해서 사용하는 상황이 생긴다면 그 클래스를 직접 참조하는 것이 아니라 대상의 상위 요소로 참조하라는 원칙
  • 구현 클래스에 의존하는 것이 아니라 인터페이스에 의존해야한다.
  • 의존 관계에선 변화하기 쉬운것보다 변화가 어렵고 거의 없는것에 의존하는 것이 좋다.
  • 의존역전 원칙의 지향점은 결합도를 낮추는것

오늘의 회고

  • 객체지향은 들으면 들을수록 많이 어려운것 같다. 막상 이런 원칙들을 있어도 설계하는 방향에서 아직 인터페이스와 추상화를 잘 못쓰다보니 문제점이 생기는것같다. 인터페이스와 추상화도 많이 공부해야지
  • 내일부터 다음주 금요일까지 유니티 숙련주차 강의가 진행된다. 벌써 2번만 프로젝트를 더 하면 최종 프로젝트가 된다니.. 한달동안 더 열심히 배워서 최종 프로젝트를 잘 진행해야겠다.
  • 남은 한달동안 인터페이스, 디자인패턴등 많이 배우고 잘 정리해야지!
profile
게임개발을 꿈꾸는 개발자
post-custom-banner

0개의 댓글