본문 바로가기
won2dev-log
HomeArchiveTagsCategoriesAboutProjects
HomeArchiveTagsCategoriesAboutProjects
won2dev-logwon2dev-logwon2dev-log

비전공 개발자의 로그 | won2dev-log

Navigation
  • Home
  • Archive
  • About
  • Projects
Categories
  • Docs
  • TIL
  • Automation
  • Git · GitHub
  • Project
Tags
  • TIL
  • Java
  • Spring
  • Backend
  • n8n
더보기
About

기록을 거름 삼아 공유는 성장을 만든다.

LicensePrivacy
© won2dev 2026. All rights reserved.
Home›Docs›TIL - Java 기초: 객체지향의 4대 원칙
Docs

TIL - Java 기초: 객체지향의 4대 원칙

won2dev·2025년 03월 15일
#Java#TIL
TIL - Java 기초: 객체지향의 4대 원칙
⚠️ 이 글은 저작권 이슈로 인해 일부 내용이 수정 또는 제거되었습니다.

💬 배운 기술 / 지식

  • 캡슐화 (Encapsulation)
  • 추상화 (Abstraction)
  • 상속 (Inheritance)
  • 다형성 (Polymorphism)

🔐 캡슐화 (Encapsulation)

  • 객체의 속성과 행위를 하나로 묶고, 외부에 필요한 부분만 공개
  • 내부 구현은 숨기고(private), 외부와는 getter/setter로 소통
java
public class User {
    private String name;

    public String getName() { return name; }
    public void setName(String name) { this.name = name; }
}
public class User {
    private String name;

    public String getName() { return name; }
    public void setName(String name) { this.name = name; }
}

✅ 장점

  • 외부에서 함부로 값 변경 불가
  • 변경에 유연한 구조, 유지보수 용이

🎯 추상화 (Abstraction)

  • 공통적인 개념만 뽑아서 설계, 복잡한 구현은 숨김
  • abstract class나 interface를 통해 핵심 기능만 노출
java
public interface RemoteControl {
    void turnOn();
    void turnOff();
}
public interface RemoteControl {
    void turnOn();
    void turnOff();
}

✅ 장점

  • 불필요한 정보 제거 → 설계 명확
  • 다양한 구현 가능 (유연한 구조)

🧬 상속 (Inheritance)

  • 부모 클래스의 속성과 기능을 자식 클래스에 물려줌
  • extends 키워드 사용
java
public class Animal {
    void eat() { System.out.println("먹는다"); }
}

public class Dog extends Animal {
    void bark() { System.out.println("짖는다"); }
}
public class Animal {
    void eat() { System.out.println("먹는다"); }
}

public class Dog extends Animal {
    void bark() { System.out.println("짖는다"); }
}

✅ 장점

  • 코드 재사용
  • 공통 기능을 상위 클래스에 모아 관리 용이

🔁 다형성 (Polymorphism)

  • 같은 타입이지만 실행 결과는 다른 현상
  • 인터페이스나 상속 기반으로 다양한 구현 가능
java
Animal a = new Dog();
a.eat();  // Dog에 맞는 동작 수행
Animal a = new Dog();
a.eat();  // Dog에 맞는 동작 수행

✅ 장점

  • 확장성과 유연성 극대화
  • 객체 교체나 기능 확장 시 코드 변경 최소화

📦 정리 표

원칙핵심 개념키워드/도구기대 효과
캡슐화정보 은닉private, getter/setter안정성 ↑, 유지보수 ↑
추상화핵심만 노출interface, abstract class설계 명확, 유연성 ↑
상속기능 공유extends코드 재사용, 중복 ↓
다형성다양한 형태인터페이스, 오버라이딩확장성, 유연한 구조

💡 느낀 점 / 참고 사항

  • 객체지향의 4대 원칙은 단순한 문법보다 "설계의 철학"
  • 원칙을 제대로 이해하면 코드가 자연스럽게 확장 가능하고 유지보수도 쉬움
  • 작은 프로젝트에서도 실천하는 습관이 중요
  • 설계 패턴이나 대규모 시스템에서 이 원칙들이 중요
공유하기
이전 글TIL - Java 기초: 예외와 예외처리의 모든 것다음 글 TIL - Java 기초: 인터페이스 설계

목차

  • 💬 배운 기술 / 지식
  • 🔐 캡슐화 (Encapsulation)
  • 🎯 추상화 (Abstraction)
  • 🧬 상속 (Inheritance)
  • 🔁 다형성 (Polymorphism)
  • 📦 정리 표
  • 💡 느낀 점 / 참고 사항

카테고리

Docs

태그

#Java#TIL

최근 글

Git 요약 (1) - Rebase, Stash, Squash MergeTIL - MSA 핵심 요소 정리TIL - (4) Spring 어노테이션 정리: Mockito를 활용한 단위 테스트TIL - (3) Spring 어노테이션 정리: Lombok Getter, Setter와 생성자TIL - (2) Spring MVC와 WebFlux의 차이: 블로킹과 논블로킹