복잡한 걸 숨기고, 꼭 필요한 부분만 드러내는 것.
함수
func add(a: Int, b: Int) -> Int { return a + b } - 내부에서 + 연산이 어떻게 동작하는지 몰라도, 그냥 "두 수를 더한다"는 기능만 제공 = 추상화
프로토콜
protocol Animal { func makeSound() } - 구체적으로 개는 멍멍, 고양이는 야옹 하지만 -> 사용자 입장에서는 "동물이 소리를 낸다"라는 인터페이스만 알면 됨 = 추상화
왜 중요한가?
- 복잡성 감소: 세부 구현 몰라도 쓸 수 있음.
- 재사용성 증가: 인터페이스만 같으면 다른 구현을 쉽게 교체 가능
- 유지보수 용이: 내부 바꿔도 외부에는 영향이 없음