우와테크

자습하다가 찾게 되는 '프레임워크' FrameWork 1 정의, 특징 본문

c#-visualStudio

자습하다가 찾게 되는 '프레임워크' FrameWork 1 정의, 특징

uwaTech 2022. 1. 11. 15:58

내가 눈에 안보이는 걸 공부하자니 상상할만한 대체품이 필요하다. 상상해봤다.

 

프레임 워크?

>>>그릇이다. 

 

소프트웨어 개발할 때 복잡한 문제를 해결하거나 서술하는데 사용되는 기본 개념 구조 라고 정의한다.

>>>소프트웨어 개발은 내 직업이고

>>>복잡한 문제를 해결하거나 서술하는 것은 회사에서 나한테 준 일거리이다.

>>>이 일거리들을 담아내는 그릇이다.

 

이 그릇(Framework)는 특징이 있다.

 

1. 모듈화 : 프레임워크는 구현을 인터페이스 뒤에 감추는 캡슐화를 통해 모듈화를 강화한다.

>>>암산 같은거다. 눈높이 학습지에 나오는 네개 숫자를 더하는 문제가 있다고 치자. 

>>>1+2+3+4 =? 과 같은 문제다. 난 그 학습지에 1+2=3 -> 3+3=6 -> 6+4=10이라고 쓰지 않고

>>>암산으로 계산하여 숫자 10만 적었다 치자.

>>>나는 '복잡한 문제를 해결하거나 서술하는 것'을 내 머리 속에 감추고 암산을 통해 답을 구했다.

>>>모듈화는 좀 다른 얘기다. 우와처럼 덧셈 암산을 잘하는 사람을 합계 구하는 업무에 배치하고

>>>곱셈 암산을 잘하는 사람을 다른 업무에 배치하는 것 처럼

>>>'뭉치' = 모듈

>>>어떤 문제를 해결하거나 서술하는 '뭉치'를 해당 문제에 배치하는 것이다.

 

           : 또한 프레임워크 모듈화는 설계와 구현의 변경에 따른 영향을 최소화 시킴으로써 쉽게 소프트웨어 품질을 향상시킬 수 있다.

>>>소프트웨어 품질은 다음에 자세히 다루도록하고... 품질이 좋은건 무튼 좋은거다. 좋다이거야.

>>>문제를 해결하는 '뭉치' 형태로 소프트웨어를 개발하면 그 '뭉치'안에 있는 알맹이만 따져서 보면 된다.

>>>육수를 내려고 삼베주머니안에 재료를 넣은 '뭉치'가 있다 치자.

>>>멸치 '뭉치'와 새우 '뭉치', 대추'뭉치' 로 끓은 육수 맛을 바꾸기 위해 다음에는 대추'뭉치'를 빼려고 한다. 

>>>'뭉치'가 없다면 멸치와 새우와 대추가 섞여 있는 삼베주머니 안에서 대추를 일일히 분리해서 빼야 한다.

>>>육수맛을 바꾸는 것에 따른 귀찮음을 최소화 했다.

 

 

2. 재사용성 : 프레임워크가 제공하는 인터페이스는 여러 애플리케이션에서 반복적으로 사용할 수 있는 일반적인 컴포넌트를 정의할 수 있게 함으로써 재사용성을 높여준다.

>>>나는 카페사장이다. 내 카페에는 원두와 우유와 바닐라 시럽과 생크림이 있다.

>>>이 네가지 재료로 만들 수 있는 메뉴를 만든다.

>>>여러 손님이 주문하는 음료를 반복적으로 사용할 수 있는 일반적인 메뉴를 만들 수 있게 함으로써 재사용성을 높여준다. 

 

                : 프로그래머의 생산성을 상당히 높여준다.

>>>카페 음료를 만드는 생산성을 상당히 높여준다.