오늘은 Java 문법 전반과 객체지향 개념을 중심으로 공부했다.
단순히 강의를 듣는 데서 끝내기보다는,
IDE에서 직접 코드를 따라 치고 구조를 바꿔보면서
Java와 객체지향을 다시 정리하는 데 시간을 썼다.
전공 수업에서 이미 배운 내용도 많았지만,
한 번에 쭉 이어서 보니
개념들이 서로 어떻게 연결되는지가 더 잘 보였다.
먼저 Java의 기본 문법과 흐름을 다시 훑었다.
이미 익숙한 문법이었지만,
이 문법이 왜 이런 형태로 쓰이는지를
의식하면서 보니 예전과는 조금 다르게 느껴졌다.
특히 메서드를 기준으로
코드를 나누는 이유가
객체지향으로 넘어가기 위한 준비라는 점이 인상 깊었다.
본격적으로 객체지향 파트에 들어가면서
Java 코드의 구조가 달라지기 시작했다.
이론으로는 익숙했지만,
객체를 여러 개 만들어서 다뤄보니
“데이터와 기능을 묶는다”는 말이 조금 더 와닿았다.
막연히 외우던 키워드였는데,
메모리 관점에서 다시 보니
왜 이런 제한이 필요한지도 이해가 됐다.
이번 공부에서 가장 비중이 컸던 부분은
객체지향 4대 특징이었다.
특히 인터페이스를 활용한 예제가 인상 깊었다.
이 구조를 직접 코드로 보면서
왜 객체지향에서는 구현보다 역할을 먼저 생각하라고 하는지가
조금은 이해됐다.
다형성 파트에서는
같은 인터페이스 타입으로 여러 구현체를 다루는 방식이
실제 코드에서 얼마나 유연한지 체감할 수 있었다.
객체지향 이후에는
Java에서 자주 쓰이는 심화 개념들도 함께 살펴봤다.
전부 한 번에 완전히 이해하기는 어려웠지만,
Java 코드가 점점 더 선언적으로 변해가는 흐름은 느낄 수 있었다.
특히 스트림과 람다는
나중에 Spring 코드에서 자주 보게 될 것 같아서
구조를 눈에 익히는 데 집중했다.
오늘은 내용이 많아서
하나하나 깊게 파기보다는
전체 지도를 머릿속에 그리는 데 집중했다.
전공자라고 해서 쉬운 날은 아니었고,
오히려
아, 내가 이걸 다 안다고 생각했구나
싶은 순간도 많았다.
그래도 Java 문법 -> 객체지향 -> 심화 개념이
하나의 흐름으로 이어진 하루라
정리할 가치가 충분한 날이었다.
오늘은
Java와 객체지향을 다시 한 번
처음 배우는 마음으로 정리한 하루였다.