본문 바로가기
IT_Developers/코딩이론

프레임워크란? - 정의, 비유, 장단점을 알아보자

by 고코더 2020. 3. 18.

Framework란?


안녕하세요.
고코더 입니다.



오늘은 좀 더 넓은 범위에 개념을 써봅니다. 프레임워크란 무엇인가? 항상 들어온 이 단어의 뉘앙스는 잘 알겠지만 정리하기 참 어려운 말입니다. 프레임워크 없는 개발을 찾는게 더 어려운 시대가 왔습니다. 이 단어에 대해 한번 다양한 방면으로 설명을 해보겠습니다.



 1. 사전적 의미


"소프트웨어 어플리케이션이나 솔루션의 개발을 수월하게 하기 위해 소프트웨어의 구체적 기능들에 해당하는 부분의 설계와 구현을 재사용 가능하도록 협업화된 형태로 제공하는 소프트웨어 환경"

"복잡한 문제를 해결하거나 서술하는데 사용하는 기본 개념 구조"

"특정한 목적에 사용되는 사고체계"

"어떤 일에 대한 판단이나 결정 따위를 위한 틀."


 2. 랄프 존슨(Ralph Johnson)이 정의한 프레임워크



"소프트웨어의 구체적인 부분에 해당하는 설계와 구현을 재사용이 가능하게끔 일련의 협업화된 형태로 클래스들을 제공하는 것"


● 3. 프레임워크 비유


프레임워크는 개발을 편하게 해주는 도구입니다. 실생활에서도 우리의 삶을 편하게 해주는 도구들이 있습니다. 고코더가 방을 청소합니다. 먼지도 많고 쓰레기도 많네요. 하지만 집에 아무런 도구가 없습니다. 손으로 쓰레기를 줍고 먼지는 손바닥 날을 이용해서 모아 모아 청소를 하였습니다. 1시간이나 걸렸네요.


이번에는 전자제품 매장에가서 청소기를 사왔습니다. 이 제품은 먼지를 흡입하면서 동시에 물청소까지 해주는 제품입니다. 고코더는 청소기를 사용해 5분만에 청소가 완료되었습니다. 이처럼 프레임워크의 기본적인 개념은 어떤걸 해결하기 위해 빠르게 할 수 있도록 도와주는 기능입니다. 



 4. 프레임워크 장단점


장점

1. 효율적
- 어떤 프로그램을 개발 할때 뼈대부터 개발하는 경우는 거의 없습니다. 비싼 개발자들을 사용하여 기초부터 개발하는건 비용이 발생합니다. 이를 생산성이라고 합니다. 프레임워크는 이미 만들어진 코드를 사용하게 하여 시간과 비용을 아낄 수 있습니다.

2. 완성도
- 현업에서 자주 사용하는 함수를 직접 개발하는 경우는 결국 나중에는 유지보수 대상이 됩니다. 오래동안 쓸 수 있는 함수를 만드는건 쉽지가 않죠. 하지만 프레임워크에서 제공하는 기능들은 검증된 코드입니다. 이를 사용함으로 오류가 적은 품질을 살릴 수 있습니다.

3. 유지보수 
- 프레임워크를 사용하면 다른 회사에서 같은 프레임워크로 다른 시스템을 개발해왔다면 쉽게 적응할 수 있습니다. 현업에서 느끼는 가장 큰 장점입니다. 물런 프레임워크를 어떻게 쓰고 있냐에 따라 적응해야하는 숙제는 있습니다.

4. 확장성
- 새로운 이슈나 기능이 업데이트 되고 이를 사용할 수 있습니다. 확장성으로 인해 업데이트된 기능을 통해 프로그램의 품질을 끌어 올릴 수 있습니다.

단점

1. 학습 필요
- 특정 프로그램 언어를 배우고 해당 프레임워크 사용법과 철학을 익혀야 하는 학습이 필요로 합니다. 현업에서 바쁜 개발자에게 학습을 시키는건 좀 부담스러운 면이 있습니다. 

2. 제약사항
- 프레임워크는 사용법이 정해져 있습니다. 예외적인 소스를 작성할때는 조금 복잡해지는 문제가 있습니다. 하지만 프레임워크 자체가 제약사항을 따르기 위한 것입니다. 청소기로 빨래를 할 수는 있지만 추천하지 않는 방법처럼요.



마무리


프레임워크에게 감사를!


댓글