오늘의 양식은 Framework(프레임워크)이다
이해하는데 조금 애를 먹은 놈이다
일단 프레임워크의 정의에 대해 먼저 알아보자
"소프트웨어의 구체적인 부분에 해당하는 설계와 구현을 재사용이 가능하게끔 일련의 협업화된 형태로 클래스들을 제공하는 것"
이라고 한다
음 코딩공부를 하면서 느낀점은 보통 어떤 개념의 정의를 살펴보면 그렇게 확 와닿지가 않는다(그만큼 내 지식이 모자라다는 것이겠지?)
영어로 된 정의를 살펴보자
A framework is a structure that you can build sofrtware on
번역하면 소프트웨어의 구조를 의미한다
그렇다
프레임워크는 복잡하게 생각할것이 없고, 그냥 소프트웨어 구조! 라고 생각하면 되겠다
조금 더 생각을 구체화하여 사람에 비유하자면, 아래와 같이 표현할 수 있을 것이다
사람의 팔을 생각해보자
팔의 구성요소로는 뼈대도 있을 것이고, 피부도 있을 것이고, 혈관도 있을 것이고, 근육도 있을 것이고, 또 깊이 들어가자면 지방, 단백질, 적혈구, 백혈구, 혈장 등등 있을 것이다
여기서 프레임워크는 뼈대이다! 뼈대를 통해서 팔의 구조를 생성할 수 있다!
팔에 영양분과 산소를 공급해주는 기능을 하는 혈관, 팔의 움직임을 담당하는 근육, 혈관 및 근육을 보호해주는 피부 등 기능을 담당하는 녀석들은 라이브러리 라고 표현할 수 있겠다!
이로써 프레임워크의 개념을 다졌다
"그래서 프레임워크를 왜 써야하는데?"
라는 의문이 생긴다
프레임워크를 사용하는 장단점에 대하여 말해보자면
<장점>
1) 효율적이다
: 설계도도 없이 나무와 못을 가지고 책상을 만드는 것보단, 설계도를 미리 그린 뒤 재료를 가지고 책상을 만들면 훨씬 효율적이고 계산적이지 않겠는가?
2) 퀄리티
: 설계도 없이 책상을 만들다가 길이가 안맞는다던가, 높이가 안맞는다던가 하는 잔고장을 예방할 수 있다!
3) 유지보수
: 설계도 없이 책상을 만들어놓고, 전목수는 이직을하고 새로운 목수가 와서 책상을 고쳐야한다면 꽤나 힘들 것이다. 하지만 설계도가 있다면?! 설계도 대로만 책상을 만든다면 안정적이게 될것이다!
장점만 있을 순 없다
<단점>
1) 학습하는데 시간이 오래걸린다
: 다른 사람이 제작한 100 페이지 짜리 설계도를 다 읽고 이해해야하는데, 오래 걸릴 수 밖에 없다!
2) 제약
: 설계도라는 구조를 이미 만들어 놓은 것이기에, 설계도대로 움직이는 수밖에 없다, 즉 뭔가 새로운 기능을 추가하는데 어느정도 제약이 생긴다는 것이다.
정리하자면
<프레임워크 장점>
1. 효율적이다
2. 퀄리티
3. 유지보수
<프레임워크 단점>
1. 학습에 오랜시간 소요
2. 제약
현업에 아직 종사해보진 않았지만, 이직으로 인해 개발자가 변경되게 되는것을 고려하여 프레임워크를 많이 쓸 것이라 예상해본다
고로 프레임워크는 내가 꼭 잘 알아야 할 부분이다!
수업에서 진행했던 프레임워크를 다음 포스팅에서 한번 다 뜯어보겠다