Programming/JAVA
추상화 이해하기
우 선
2025. 3. 25. 10:17
추상화를 처음 접할 때
추상화는 처음 들으면 어렵게 느껴지는 개념이다. 하지만 사실 우리 일상생활에서 자주 사용하는 개념과 크게 다르지 않다.
추상화의 기본 개념
추상화란 복잡한 것을 간단하게 만드는 방법이다. 핵심은 "중요한 것만 남기고, 불필요한 것은 제거하는 것"이다.
실생활 예시
- 지하철 노선도: 실제 거리와 정확한 위치는 무시하고, 노선과 역의 연결만 보여준다.
- 리모컨: 복잡한 TV 내부 회로는 숨기고, 사용자에게 필요한 버튼만 제공한다.
프로그래밍에서의 추상화
기본적인 코드 예시
// 추상화 이전
public class Car {
// 너무 많은 세부 정보
private String engineType;
private double engineCapacity;
private int cylinderCount;
private String fuelType;
}
// 추상화 이후
public class Car {
// 핵심적인 정보만 유지
private String model;
public void start() {
System.out.println("차량 시동");
}
public void stop() {
System.out.println("차량 정지");
}
}
추상 클래스로 추상화
// 동물의 공통된 특성만 정의
public abstract class Animal {
// 모든 동물의 기본 행동
public void eat() {
System.out.println("음식을 먹는다");
}
// 각 동물마다 다른 소리
public abstract void makeSound();
}
public class Dog extends Animal {
@Override
public void makeSound() {
System.out.println("멍멍!");
}
}
추상화의 주요 목적
- 복잡성 감소
- 코드 재사용성 향상
- 핵심 기능에 집중
인터페이스를 통한 추상화
public interface Playable {
void play();
void pause();
}
public class MusicPlayer implements Playable {
@Override
public void play() {
System.out.println("음악 재생");
}
@Override
public void pause() {
System.out.println("음악 일시정지");
}
}
내가 이해한 추상화의 핵심
- 불필요한 복잡한 내용은 숨기기
- 핵심적인 기능과 특성만 노출하기
- 코드를 더 이해하기 쉽게 만들기
공부하면서 느낀 추상화의 장점
- 코드가 간결해진다
- 유지보수가 쉬워진다
- 다른 개발자들이 이해하기 쉽다
주의할 점
- 너무 과도한 추상화는 오히려 복잡해질 수 있다
- 꼭 필요한 부분만 추상화하자
결론
추상화는 복잡한 것을 단순하게 만드는 마법 같은 도구다. 처음엔 어렵게 느껴지지만, 계속 연습하다 보면 자연스럽게 익힐 수 있다.