내가 이해하는 추상화는 본질에 속하는 속성과 메써드를 모델화 하는 건데 이것도 지향마다 다른 거임?
둥둥(175.113)2025-09-07 18:22
답글
그게 객체지향임
ㅆㅇㅆ찡(srtdog64)2025-09-07 18:23
답글
니가 세부 구현을 몰라도 프로그램을 갖다 쓰거나 하는게 추상화임
ATM기에서 돈을 뽑으려고 통장넣고 버튼만 누르면 되잖아 우리가 내부 원리를 몰라도 돈을 뽑을 수 있는 것 처럼
컴퓨터 세계에서 이 껍데기를 표현하는게 인터페이스임
루도그담당(58.239)2025-09-07 18:23
답글
그랭.. 근데 규모 커지면 인터페이스 클래스니 이런 거 나오고 이런 걸 사용하는 이유니 필요성을 잘 모르겠고 설명봐도 질 모르겠더라고..
둥둥(175.113)2025-09-07 18:24
답글
@둥둥(175.113)
아, 그거는 객체지향 기본기가 약한거 10분후에 글씀. 지금 잠깐 커피 사러 나와서
ㅆㅇㅆ찡(srtdog64)2025-09-07 18:26
답글
차량이라는 객체가운전자라는 의존성을 주입받는데걔가 김씨건 박씨건 상관없이사람이라면 할 수 있는데 핸들 잡기 라는 행위가 있다고 생각 해보셈인터페이스 자체가 행위를 계약 하고 그 행위를 가진 공통적인 객체들을 묶을수 있다는건데인터페이스가 없으면 차량이라는 객체가 김씨 박씨 의존성에 대한 케이스 처리를 존나 해야하는데 그러면 번잡도가 커지겠지?
루도그담당(58.239)2025-09-07 18:26
답글
@ㅆㅇㅆ찡
고맙고맙
둥둥(175.113)2025-09-07 18:26
답글
@루도그담당(58.239)
그건 인터페이스 클래스가 아니라 그냥 부모 클래스도 할 수 있지 않아?
둥둥(175.113)2025-09-07 18:30
답글
@둥둥(175.113)
니 말대로 기본 클래스가 인터페이스 역할을 하기도 함
루도그담당(58.239)2025-09-07 18:31
답글
@루도그담당(58.239)
그러면 그냥 기본 클래스 상속 받아 쓰면되지 인터페이스라는 추상클래스의 필요성을 모르겠음.
둥둥(175.113)2025-09-07 18:33
답글
@둥둥(175.113)
설계 의도지
니가 휴먼이라는 상위 클래스를 만들었는데
상위 클래스는 분류군이지 그게 실체화된 개념이 아니잖아?
김씨 박씨는 실제로 존재하는 개체에 대한거고
그런 의도를 구분할려고 인터페이스를 쓰는거임
루도그담당(58.239)2025-09-07 18:37
답글
@루도그담당(58.239)
의도를 구분한다는 말이 잘 이해가 안되네..
둥둥(175.113)2025-09-07 18:41
답글
@둥둥(175.113)
니 말대로 상위클래스를 인간이라고 만들었다 치고
하위 개념으로 박씨 김씨가 있다고치면
인간은 김씨 박씨가 속하는 심볼인거지
인간 자체가 어떠한 개체가 아니잖음 개념적 의미인거지
인간 자체가 인스턴스화 됄 필요가 없잖음
루도그담당(58.239)2025-09-07 18:43
답글
@둥둥(175.113)
니가 일반클래스로 인간을 만들면 인간이라는 개념적 의미가 실체화가 될 수있고
만약 차량이 그걸로 주입받아서 운전하면 어찌되겠음
귀신이 운전할거임?
루도그담당(58.239)2025-09-07 18:46
답글
@루도그담당(58.239)
class IVehicle { virtual void getHandle(Human driver) = 0;};class Human { std::string mDriverName;};class Driver : public Human { explicit Driver(std::string driverName) : mDrivername(driverName)};class Truck : public IVehicle { getHandle(Human driver) override;};
@둥둥(175.113)
아니 그니까 저렇게 되버리면
설계 의도가 차량이라는 분류가 실체화 될 수 있음을 의미함
우리가 동물이라고 하면 개념적 의미를 떠 올리지
동물이 실체화 되는 대상이 아니잖아
루도그담당(58.239)2025-09-07 18:58
답글
@루도그담당(58.239)
설명 존나 난해하게 하네
쟤 말대로 클래스가 가벼우면 그냥 클래스 그대로 써도 아무 문제 없음
근데 클래스가 커지면 코드 보기가 어렵단말이야
그래서 리팩토링하고 서브클래스로 쪼개고 하는데 그 이전에 그냥 인터페이스에 이건 뭐다라고 정의만 해놓고
클래스는 그걸 따라서 구현만 해놓으면 인터페이스만 보고도 쓸 수 있잖아
프갤러 1(59.26)2025-09-07 19:14
답글
@프갤러1(59.26)
하아 노무현 ㅁㅈㅎ
루도그담당(58.239)2025-09-07 19:18
1 더하기 1은 귀요미 << 이것도 추상화??
익명(113.59)2025-09-07 18:33
디테일을 빼면 그게 추상화지. 차이가 있는 여러 개체(instance)들을 한가지 방법으로 표현하면 추상화임.
어 누가 API를 올려놨는데 이게 어찌 작동하는진 몰라 근데 딸각하면 존나 편해 -> 추상화
구현을 숨기는 거지 그 장도는 알긴 함. Pimp 같은 기법으로
내가 이해하는 추상화는 본질에 속하는 속성과 메써드를 모델화 하는 건데 이것도 지향마다 다른 거임?
그게 객체지향임
니가 세부 구현을 몰라도 프로그램을 갖다 쓰거나 하는게 추상화임 ATM기에서 돈을 뽑으려고 통장넣고 버튼만 누르면 되잖아 우리가 내부 원리를 몰라도 돈을 뽑을 수 있는 것 처럼 컴퓨터 세계에서 이 껍데기를 표현하는게 인터페이스임
그랭.. 근데 규모 커지면 인터페이스 클래스니 이런 거 나오고 이런 걸 사용하는 이유니 필요성을 잘 모르겠고 설명봐도 질 모르겠더라고..
@둥둥(175.113) 아, 그거는 객체지향 기본기가 약한거 10분후에 글씀. 지금 잠깐 커피 사러 나와서
차량이라는 객체가운전자라는 의존성을 주입받는데걔가 김씨건 박씨건 상관없이사람이라면 할 수 있는데 핸들 잡기 라는 행위가 있다고 생각 해보셈인터페이스 자체가 행위를 계약 하고 그 행위를 가진 공통적인 객체들을 묶을수 있다는건데인터페이스가 없으면 차량이라는 객체가 김씨 박씨 의존성에 대한 케이스 처리를 존나 해야하는데 그러면 번잡도가 커지겠지?
@ㅆㅇㅆ찡 고맙고맙
@루도그담당(58.239) 그건 인터페이스 클래스가 아니라 그냥 부모 클래스도 할 수 있지 않아?
@둥둥(175.113) 니 말대로 기본 클래스가 인터페이스 역할을 하기도 함
@루도그담당(58.239) 그러면 그냥 기본 클래스 상속 받아 쓰면되지 인터페이스라는 추상클래스의 필요성을 모르겠음.
@둥둥(175.113) 설계 의도지 니가 휴먼이라는 상위 클래스를 만들었는데 상위 클래스는 분류군이지 그게 실체화된 개념이 아니잖아? 김씨 박씨는 실제로 존재하는 개체에 대한거고 그런 의도를 구분할려고 인터페이스를 쓰는거임
@루도그담당(58.239) 의도를 구분한다는 말이 잘 이해가 안되네..
@둥둥(175.113) 니 말대로 상위클래스를 인간이라고 만들었다 치고 하위 개념으로 박씨 김씨가 있다고치면 인간은 김씨 박씨가 속하는 심볼인거지 인간 자체가 어떠한 개체가 아니잖음 개념적 의미인거지 인간 자체가 인스턴스화 됄 필요가 없잖음
@둥둥(175.113) 니가 일반클래스로 인간을 만들면 인간이라는 개념적 의미가 실체화가 될 수있고 만약 차량이 그걸로 주입받아서 운전하면 어찌되겠음 귀신이 운전할거임?
@루도그담당(58.239) class IVehicle { virtual void getHandle(Human driver) = 0;};class Human { std::string mDriverName;};class Driver : public Human { explicit Driver(std::string driverName) : mDrivername(driverName)};class Truck : public IVehicle { getHandle(Human driver) override;};
@둥둥(175.113) int main() { Truck truck1; Truck truck2; Driver mrKim("Kim"); Driver mrPark("Park"); truck1.getHandle(mrKim); truck2.getHandle(mrPark); return 0; }
@둥둥(175.113) 이러면 운전자 인터페이스는 불필요하지 않음?
@둥둥(175.113) 아니 그니까 저렇게 되버리면 설계 의도가 차량이라는 분류가 실체화 될 수 있음을 의미함 우리가 동물이라고 하면 개념적 의미를 떠 올리지 동물이 실체화 되는 대상이 아니잖아
@루도그담당(58.239) 설명 존나 난해하게 하네 쟤 말대로 클래스가 가벼우면 그냥 클래스 그대로 써도 아무 문제 없음 근데 클래스가 커지면 코드 보기가 어렵단말이야 그래서 리팩토링하고 서브클래스로 쪼개고 하는데 그 이전에 그냥 인터페이스에 이건 뭐다라고 정의만 해놓고 클래스는 그걸 따라서 구현만 해놓으면 인터페이스만 보고도 쓸 수 있잖아
@프갤러1(59.26) 하아 노무현 ㅁㅈㅎ
1 더하기 1은 귀요미 << 이것도 추상화??
디테일을 빼면 그게 추상화지. 차이가 있는 여러 개체(instance)들을 한가지 방법으로 표현하면 추상화임.
일반적인 의미의 abstraction 뜻을 이해하면 될 듯