본문 바로가기
공부/개발

WPF, 패턴, 오버로딩과 오버라이딩, 박싱과 언박싱

by 호아니 2021. 5. 8.

WPF란?

- Winform의 한계를 극복하기 위해서 그리고 더 다양한 확장성을 갖기 위해서 만들어진 UI 개발 프레임워크
- 디자이너(XAML)와 프로그래머(C#) 업무 분리
- XAML이라는 마크업언어를 사용해서 UI를 작성(XAML이란 확장 응용 프로그램 마크업 언어: 클래스의 구조 표현)

 

MVC패턴
- 하나의 프로젝트, 애플리케이션을 구성할 때 구성요소를 Model, View, Controller 3가지의 역할로 구분한 패턴
- Model : 애플리케이션의 정보, 데이터와 그 데이터를 처리
- View : 사용자에게 정보를 표시 UI
- Controller: 사용자로부터 받은 입력 처리

 

왜 MVC 패턴을 사용하는지?

- 서로 분리되어 각자의 역할을 맡아 개발하기 때문에 유지보수 쉬움, 개발 효율 상승, 유연성 증가

 

MVP패턴

- Model, View, Presenter
- Presenter : View에서 요청한 정보로 Model을 가공하여 View에 전달
- 장점: MVC패턴의 단점인 View와 Model사이 의존성 해결

 

MVVM패턴

- Model, View, View Model
- View Model : View를 표현하기 위해 만든 View를 위한 Model
                    View를 나타내기 위한 데이터를 처리
- 장점: 각각의 부분이 독립적이기 때문에 모듈화 하여 개발 가능
- 단점: View Model의 설계가 어려움

 

하이딩(Hiding)
- 자식의 멤버(변수, 메서드)와 부모의 멤버간의 서로 메서드를 가리는 것

 

오버라이딩(overriding)
- 부모에서 정의된 멤버 메서드를 자식에서 재정의
override

 

오버로딩(overloading)
- 이름은 같은데 매개변수가 다른 메서드를 만드는 것

 

박싱(Boxing)
- 값타입을 Object 형식 또는 이 값 형식에서 구현된 임의의 인터페이스 형식으로 변환하는 것
- 값 형식 -> 참조형식
- 스택에 있는 데이터가 힙으로 복사
ex) object a = 10

 

언박싱(UnBoxing)
- Object 형식에서 값형식으로, 또는 인터페이스 형식에서 해당 인터페이스를 구현하는 값 형식으로 변환하는 것
- 참조형식 -> 값 형식
- 힙에 있는 데이터가 스택으로 복사
ex) object a = 10
     int b = (int) a
- 언박싱시 박싱 전 형식을 준수해야하기 때문에 형식 확인 후 캐스팅 해야 함

 

박싱과 언박싱의 성능
박싱과 언박싱의 성능에 대한 MSDN 을살펴보자면, 값 형식을 박싱 할 때는 완전히 새로운 개체가 만들어져야 하며, 이러한 작업에는 할당 작업보다 최대 20배의 시간이 걸린다. 언박싱을 할 때는 캐스팅 과정에서 할당 작업보다 4배의 시간이 걸릴 수 있다.

 

Spring 프레임워크
- 자바 플랫폼을 위한 오픈소스 애플리케이션 프레임워크

 

OOP(Object Oriented Programming)
- 객체지향 프로그램
- 모든 데이터를 객체로 다루는 프로그래밍
- 특징: 캡슐화, 정보은닉, 추상화, 상속, 다형성

 

AOP(Aspect Oriented Programming)
- 관점지향 프로그램
- OOP를 더욱 발전시키기 위한 개념
- 각 기능별로 모듈화 해서 분리