[내일배움캠프 Spring_3기] 4일차 TIL - Java와 객체지향

jiiim_ni·2026년 1월 2일

오늘은 Java 문법 전반과 객체지향 개념을 중심으로 공부했다.
단순히 강의를 듣는 데서 끝내기보다는,
IDE에서 직접 코드를 따라 치고 구조를 바꿔보면서
Java와 객체지향을 다시 정리하는 데 시간을 썼다.

전공 수업에서 이미 배운 내용도 많았지만,
한 번에 쭉 이어서 보니
개념들이 서로 어떻게 연결되는지가 더 잘 보였다.


Java 기초 문법 다시 보기

먼저 Java의 기본 문법과 흐름을 다시 훑었다.

  • 변수와 데이터 저장 방식
  • 메서드를 통한 로직 분리
  • 조건문과 반복문
  • 배열을 통한 데이터 관리

이미 익숙한 문법이었지만,
이 문법이 왜 이런 형태로 쓰이는지를
의식하면서 보니 예전과는 조금 다르게 느껴졌다.

특히 메서드를 기준으로
코드를 나누는 이유가
객체지향으로 넘어가기 위한 준비라는 점이 인상 깊었다.


객체지향 개념 이해하기

본격적으로 객체지향 파트에 들어가면서
Java 코드의 구조가 달라지기 시작했다.

클래스와 객체

  • 클래스는 설계도
  • 객체는 실제 사용되는 인스턴스

이론으로는 익숙했지만,
객체를 여러 개 만들어서 다뤄보니
“데이터와 기능을 묶는다”는 말이 조금 더 와닿았다.

static과 final

  • static은 클래스 단위로 공유되는 값
  • final은 변경되지 않는 값

막연히 외우던 키워드였는데,
메모리 관점에서 다시 보니
왜 이런 제한이 필요한지도 이해가 됐다.


인터페이스와 객체지향 4대 특징

이번 공부에서 가장 비중이 컸던 부분은
객체지향 4대 특징이었다.

  • 캡슐화
  • 상속
  • 추상화
  • 다형성

특히 인터페이스를 활용한 예제가 인상 깊었다.

  • 공통된 기능을 인터페이스로 정의하고
  • 구현체를 분리해서 사용
  • 참조 타입을 인터페이스로 두는 방식

이 구조를 직접 코드로 보면서
왜 객체지향에서는 구현보다 역할을 먼저 생각하라고 하는지가
조금은 이해됐다.

다형성 파트에서는
같은 인터페이스 타입으로 여러 구현체를 다루는 방식이
실제 코드에서 얼마나 유연한지 체감할 수 있었다.


Java 개념 확장 (심화)

객체지향 이후에는
Java에서 자주 쓰이는 심화 개념들도 함께 살펴봤다.

  • 예외(Exception)와 예외 처리
  • Optional을 통한 null 처리
  • 컬렉션(Collection)
  • 제네릭(Generic)
  • 람다(Lambda)
  • 스트림(Stream)
  • 쓰레드(Thread)

전부 한 번에 완전히 이해하기는 어려웠지만,
Java 코드가 점점 더 선언적으로 변해가는 흐름은 느낄 수 있었다.

특히 스트림과 람다는
나중에 Spring 코드에서 자주 보게 될 것 같아서
구조를 눈에 익히는 데 집중했다.


공부하면서 느낀 점

오늘은 내용이 많아서
하나하나 깊게 파기보다는
전체 지도를 머릿속에 그리는 데 집중했다.

전공자라고 해서 쉬운 날은 아니었고,
오히려
아, 내가 이걸 다 안다고 생각했구나
싶은 순간도 많았다.

그래도 Java 문법 -> 객체지향 -> 심화 개념이
하나의 흐름으로 이어진 하루라
정리할 가치가 충분한 날이었다.


📌 내일 할 것

  • 오늘 본 Java 코드 다시 한 번 복습
  • 객체지향 4대 특징을 말로 설명해보기
  • 이 개념들이 Spring에서 어떻게 쓰이는지 연결해보기

오늘은
Java와 객체지향을 다시 한 번
처음 배우는 마음으로 정리한 하루였다.


0개의 댓글