오늘 배운 내용
- 팀과제 피드백.
팀과제 피드백
저번주 진행한 팀 과제의 피드백이 나왔다. 저번주 팀과제
일단 피드백 내용이 생각 보다 많았는데, 열심히 한 만큼 열심히 피드백을 주셨다는 느낌을 받아서 좋았다.
- 일단 첫번째는 DungeonGame을 싱글톤 클래스로 만들어서 다른 곳에서 항상 DungeonGame을 통해서 접근했는데
이렇게 클래스 하나가 여러가지 작업을 포괄적으로 처리하게 되면 클래스의 이해도가 떨어질 수 있다. 라는 피드백 이였다.
확실히 클래스 하나가 여러가지 작업을 하게되면 그냥 무슨 기능을 하는 클래스인지 알아보기 어렵겠고 객체 지향적이지 않다는 생각이 들었다.
- 두번째는 SceneManager에 관한 피드백이였다. SceneManager는 타입을 기반으로 객체를 생성하고 리스트로 다루고 있었는데
이런 방식은 실수가 발생할 여지가 많아서 가능하다면 변수 타입으로 핸들링을 하는것을 추천하는게 좋다고 말해 주셨다.
- 세번쨰는 List들을 래핑해서 쓴 부분이였다. List를 외부에서 수정할수 없게 하고싶어서
List는 private로 선언하고 호출하는 부분들을 List의 기본 함수들을 public으로 래핑해서 리턴하고 있었다.
그런데 이것을 프로퍼티로 만들어주면 public List
같은 효과를 낼 수 있다고 해주셨다.
- 네번째는 StringBuilder를 사용한 부분이였는데 내 코드에서는 계속해서 StringBuilder 객체를 생성하고
사용이 끝나면 이제 사라지는 (아마도 가비지 컬렉터가 처리해줬을꺼다) 과정이 반복되었는데 이걸 클래스 레벨에서
변수로 선언하고 사용하게되면 StringBuilder안의 내용만 지워주면 되니 퍼포먼스적으로 도움이 된다고 참고자료
링크를 주시면서 말해주셨다.
- 그리고 나머지는 상속을 할때 하위클래스에서 new로 계속해서 메서드를 재구현한다면 한번
올바른 상속 구조인지 판단해 볼 필요가 있다고 말해주셨고 이런식으로 구현하면 전혀 다른 동작으로 오해할 수 있다고 하셨다.
또 하나의 cs파일에는 작은 코드 구성요소들이 포함되지 않는다면 분리하는것이 좋다고 한다.