이번주엔 김영한의 실전 자바 - 중급1편 을 수강하면서 자바의 Object 클래스와 String 클래스, 불변 객체에 대해서 공부했다. Object에 대해서 공부하면서 다운캐스팅과 업캐스팅이 메모리상에서 어떤식으로 생성되고 동작하는지 알게되어서 Override 에 대해서 더 제대로 이해할 수 있었다.
스프링에서 Interface를 만들고 거기에 맞는 구현체를 만들어서 갈아끼운다는 것을 어렴풋이 알고 있었지만 실무에서는 그냥 Service Class 를 만들어 개발을 했었어서 굳이 왜 그렇게 하는걸까? 라고 생각했었는데 이번에 좀 제대로 생각할 수 있는 기회였다.
공통적으로 필요한 기능을 Interface에 넣고 각각 개성있는 객체를 구현한 후 이들을 한번에 처리하기 위해 업캐스팅을 통해 Interface를 전달 받도록 하고 메서드를 실행하면 전달받는 클래스 입장에서는 Interface가 어떤건지만 알면 어떤 객체가 넘어오던간에 오버라이딩된 메서드를 부를 수 있어서 다형성과 OCP 원칙을 잘 지키면서 깔끔한 코드를 작성할 수 있다!
백준 문제를 간단하게 풀었다. 노는 시간을 줄여야 하는데 주중에 일 끝나고 공부를 했으니 주말은 괜찮지 않을까..? 라는 안일한 생각으로 문제 몇개 풀고 너무 푹 놀아버렸다..
일단 욕심내지 말고 다음주에도 비슷한 양의 공부를 하면서 더 늘려가도록 해야겠다!