개인 과제를 마무리했다.
기본적으로 구현해야 하는 기능들과 추가적으로 제시해주셨던 기능들까지 모두 구현 완료했다.
개인 과제 설명을 보고 처음에는 막막했다.
이것만 보고 원하는 대로 출력하는 화면을 만들 수 있을까? 싶었다.
하지만 작성하면서 조금씩 원하는 대로 출력이 되는 모습을 보자 추가 기능들까지 다 구현하고 싶다는 욕심이 생겼다.
안되는 부분을 포기하지 않고 끝까지 붙잡아서 과제를 완성해 뿌듯했다.
자료구조에 대해서 좀 더 공부해봐야 겠다는 생각이 들었다.
나는 ArrayList로 구현했는데, Map으로 구현해서 사용하는 방법이 있었다.
추가되는 대로 넣어주어야 하니까 List 만 생각해서 단순하게 ArrayList로만 구현했는데, 시간이 되면 Map을 사용해서 다시 코드를 작성해보려고 한다.
또한, 깊은 복사와 얕은 복사의 차이점에 대해 직접 확인해 볼 수 있었다.
단순하게 생각해서 얕은 복사 방법을 이용했다가, 원본도 변경이 되는 모습을 확인해서 정말 식겁했었다.
확실하게 해당 내용만 복사하는 깊은 복사 방법을 잘 알아볼 수 있던 계기였다.
깊은 복사 방법은 사용할 일이 생길 것 같다.
이번에 깊은 복사를 할 때, 생성자를 따로 만들어서 사용해주었는데,
비슷하게 복사할 일이 생긴다면 생성자를 이용해서 복사하는 방법을 사용해야겠다.
또한 Map, ArrayList, LinkedList 등 자료구조를 상황에 맞게 잘 적용해보려고 한다.