poas753.log
로그인
poas753.log
로그인
내일배움캠프 27일차 TIL, 게임개발입문 프로젝트 마무리
황오영
·
2024년 5월 23일
팔로우
0
내일배움캠프
0
TIL
목록 보기
27/56
게임개발 입문주차 프로젝트 마무리
오늘 게임개발 입문주차 프로젝트 발표, 마무리르 했다. 아래는 프로젝트 깃허브 링크
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번만 프로젝트를 더 하면 최종 프로젝트가 된다니.. 한달동안 더 열심히 배워서 최종 프로젝트를 잘 진행해야겠다.
남은 한달동안 인터페이스, 디자인패턴등 많이 배우고 잘 정리해야지!
황오영
게임개발을 꿈꾸는 개발자
팔로우
이전 포스트
내일배움캠프 26일차 TIL, String과 Format
다음 포스트
내일배움캠프 28일차 TIL, 게임개발숙련
0개의 댓글
댓글 작성