추상화 와 가상화가 과연 무엇일까?

박승우·2024년 5월 2일
0
post-thumbnail

자, 열 일곱번째인 '추상화 와 가상화'를 알아 볼 것이다.

이번키워드는 유니티에서 예시로 작업한 코드와 같이 알아 볼 것이다.

일단 이 키워드는 같이 가져가는 개념이며 서로 비슷한 성질을 띈다고 생각하면 된다.

추상화와 가상화가 뭐에요?

추상화와 가상화는 프로그래밍에서 중요한 개념이지만 서로 다른 의미를 가진다.

추상화

추상화는 복잡한 시스템, 데이터, 또는 프로세스를 단순화하는 것을 의미한다.
즉, 중요한 부분을 강조하고 불필요한 부분을 무시함으로써 문제를 단순화 하는 것이라고 한다.

OOP 에서 매우 중요한 개념으로, 클래스를 사용하여 데이터와 해당 데이터를 조작하는 메서드를 결합하여 추상화를 달성한다.

가상화

가상화는 하드웨어, 운영체제, 저장공간 또는 네트워크 등의 리소스를 실제로 존재하지 않는 것 처럼 보이게 만드는 프로세스라고 한다.
이것은 리소스의 효율적인 사용과 시스템의 유연성을 향상 시킬 수 있다고 한다.

예시 - C#

한번 C#코드로 한번 구현을 해보았다.


Animal Class

  • 추상클래스로 구현하여 가상메서드와 추상메서드를 각각 정의하였다.


Dog Class

  • Animal 클래스를 상속받고 추상메서드를 오버라이드 하였고 가상은 따로 재정의하지 않았다.

Cat Class

  • Dog 클래스와 동일하게 상속 받고 오버라이드 하였으며, 가상함수도 재정의 하지 않았다.


Program Class

  • 개와 고양이 클래스의 객체를 생성하여 각 정의된 함수를 호출하였다.

실행결과

  • Program Class 에서 작성된 구문이 차례로 실행 된 모습이다.

이처럼 추상화는 복잡성을 다루고 코드를 더 이해하기 쉽게 만들어주며 , 가상화는 리소스를 최적화 하고 유연서을 높여준다.

이 개념을 사용한건 C#언어에 사용하였지만 다양한 프로그래밍 언어에서 이와같은 개념을 사용하여 개발을 진행하고 있다.

결론 - 느낀 점

추상과 가상은 코드를 작성하거나 각종 이론을 공부하며 알고있었던 지식이었다.

다시 복습한다는 개념으로 차근차근 다가가니까 어디서 써야할지 더 판단이 쉽게 될 것 같다.

profile
게임을 좋아하는 사람 입니다!

0개의 댓글