플레이어의 키보드 입력(8종류)이 달라질 때마다
크기가 8인 배열 하나에 저장한 다음에
이 배열들을 쭉 모아놓은 자료형을 만들어서
추후에 플레이어의 입력 기록을 볼 수 있게 만들려고 했어요

처음에는 모아 놓는 자료형을 구현하는데 List를 사용했어요
새로운 입력이 들어올 때마다 list.Add(~)를 사용해서
키보드값 배열을 저장했습니다

근데 문제점이 하나 생긴거에요
list.Add()는 구조적 특성상 호출될때마다
배열을 새로 생성하고 할당하고를 반복해서
가비지를 많이 생성해버리는거죠
덕분에 키보드 입력이 와다다 엄청 많이 들어오게 되면
끔찍할 정도의 렉과 스파이크가 발생했어요...

이를 해결하고자 자료형을 LinkedList로 리팩토링했어요
LinkedList.AddLast(~)를 사용하면
노드 하나를 생성하는데에 메모리 할당이 들어갈 뿐
가비지가 많이 발생하지 않아서 부하가 적게 들어가게 되었어요
이제 키보드를 와다다 입력해도 더이상 렉이 발생하지 않더라고요
물론 이제 인덱스는 사용하지 못하니
노드들 사이를 왔다갔다 하는 불편함은 있겠다만...

오늘 개발한 것 중에서 제일 뿌듯하게 만든거라 한번 올려봤어요
역시 자료구조를 배우길 잘했어

19