enum 클래스의 사용은 저에게 새로운 도전이었습니다. 처음에는 이해가 부족하여 이를 어떻게, 어디에 적용할지 감이 오지 않았습니다. 그러나 enum 클래스를 사용하면서 그 특징과 활용 방법에 대해 점차 이해하게 되었습니다.
enum 클래스는 고정된 상수 집합을 표현하는 데 사용됩니다. 이는 상수의 값이 변경되지 않기 때문에 안정성을 제공하며, 예상치 못한 값이 할당되는 것을 방지할 수 있습니다. 그러나 이런 특성 때문에 enum 클래스의 사용에는 한계가 있음을 깨달았습니다. 즉, 추후에 값이 변할 수 있는 경우에는 enum 클래스가 적합하지 않다는 것입니다.
이런 이해를 바탕으로, 상수로써의 기능이 필요하면서 동시에 값의 변화가 없는, 즉 고정된 값을 필요로 하는 경우에 enum 클래스를 활용하기로 결정했습니다. 그래서 '맞춘 개수'와 '상금'을 enum 클래스로 구현했습니다. 이렇게 하니 코드의 가독성이 높아졌고, 값의 안정성 또한 보장할 수 있었습니다.
이 경험을 통해 enum 클래스를 사용할 때는 그 특성과 제한사항을 충분히 이해하고 활용해야 한다는 것을 배웠습니다. 이를 통해 향후 다양한 문맥과 상황에서 적절한 도구를 선택하는 능력을 향상시킬 수 있었습니다.
또한, 이번 프로젝트에서는 객체 모델링에 많은 시간을 소비했습니다. 구입한 로또와 당첨 로또의 일치 개수를 확인하는 부분은 비교적 쉬웠지만, 그 결과를 어떤 클래스에 저장하고, 그 저장된 결과를 바탕으로 어떻게 등수를 측정하고, 여러 개의 로또를 구입한 경우 각각의 등수를 어떻게 저장할지에 대한 고민을 많이 했습니다.
에러 메시지를 지정하고 다시 올바른 값을 받는 부분에 대해서도 고민을 많이 했습니다. while문을 사용하여 조건을 만족할 때까지 반복하는 방법을 고려했지만, 결국에는 valid 함수를 통해 에러를 확인하고, 에러가 발생하면 continue, 그렇지 않으면 break하는 방식을 선택했습니다.
이번 프로젝트를 통해 가장 중요하게 느낀 점은, 단순히 전체적인 알고리즘을 설계하는 것이 아니라, 각 기능들이 어떻게 서로 유기적으로 결합되고 관리되는지가 핵심이라는 것입니다.
코드를 작성하는 과정에서 개별 기능만을 고려하게 되면, 전체 시스템의 흐름과 구조를 놓칠 수 있습니다. 각 기능이 어떤 역할을 하는지, 어떻게 상호작용하는지를 파악하는 것이 중요하다는 것입니다. 이를 통해 전체 시스템의 동작 방식을 이해하고, 각 기능이 서로 어떻게 영향을 미치는지를 파악할 수 있습니다. 그래야만 각 기능의 변경이나 추가가 전체 시스템에 어떤 영향을 미칠지를 예측하고, 이에 대응할 수 있습니다.
이런 점에서, '각자의 기능을 어떻게 유기적으로 결합하고 관리하는가'는 코드의 효율성, 가독성, 유지보수성 등을 결정짓는 중요한 요소라는 것을 깨달았습니다. 각 기능이 독립적으로만 존재하는 것이 아니라, 전체 시스템의 일부로서 상호작용하고 연결되어야 한다는 사실을 명심하며 코드를 작성하는 것이 중요하다는 것을 이해하게 되었습니다.
또한, 테스트 케이스 작성에 있어서도 많은 배움이 있었습니다. 테스트 케이스에 설명을 추가함으로써 더욱 이해하기 쉬운 테스트가 되었다는 느낌을 받았습니다.
전체적으로, 이번 프로젝트는 복잡도가 조금 높아졌음에도 불구하고, 코드의 복잡성이 더욱 증가했다는 것을 느꼈습니다. 이는 아직 더 많은 스킬이 필요하다는 것을 알게 해주었습니다. 특히, 기존의 컬렉션을 사용하기 보다는 새로운 객체를 생성하여 사용하는 방법이 코드의 가독성과 이해도를 높이는 데 도움이 된다는 것을 배웠습니다.
'후기' 카테고리의 다른 글
<java> 지뢰찾기 게임 업로드 (0) | 2024.05.22 |
---|---|
<카카오클라우드 스쿨 in JEJU> 면접후기 (1) | 2024.03.24 |
<카카오클라우드 스쿨 in JEJU> 면접준비 - 서버의 기초 정독! (0) | 2024.03.21 |
우테코 4주차 후기 (0) | 2023.12.12 |
<Project> bridge완료 후기 (0) | 2022.11.21 |