공부혜옹

프레임워크(FrameWork)란? 기본설계는 내가 할게 기능 구현은 누가 할래? 본문

LIKELION

프레임워크(FrameWork)란? 기본설계는 내가 할게 기능 구현은 누가 할래?

Blair06 2019. 9. 4. 16:43

멋쟁이 사자처럼 6기를 시작하면서 Ruby on rails를 배우게 되었었는데 타 학과 코딩 무지렁이였던 나는 ruby와 ruby on rails가 무슨 차이인지도 몰랐었다. "루비는 언어고 루비 온 레일즈는 프레임워크야!" 그래서 프레임워크가 도대체 뭔데..ㅠ

 

C# .NET설명하려다가 프레임워크를 설명하는데 너무 길어져서 따로 빼서 쓰는 글


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

 

네이버에 프레임워크를 검색하면 나오는 설명이다. 프레임워크를 몰라서 검색했는데 모르는 용어가 더 늘어났다.

 


프레임워크란?

사용자가 구현하고자 하는 기능을 쉽고 빠르게 제공해주는 역할을 한다. 

 

사용자가 구현하고자 하는 기능을 제공한다하면 라이브러리와 다를게 무엇일까? 왜 굳이 둘을 구분해 놓았을까?

라이브러리란?

자주 쓰이는 기능들을 모아 놓은 클래스들의 모음집이라고 설명할 수 있다. 프레임워크도 이와 같지만 라이브러리와 다른 점은 '기본 틀'이 추가가 된다는 점이다.

 

더욱 쉽게 설명하자면 라이브러리는 개발자가 프로그래밍중에 '이 항목을 구현하는 데에 이 기능을 갖다 쓰면 좋겠다!'라고 생각해서 그때그때 필요한 기능들을 뽑아 가져다 쓰는 대상이지 그 기능을 쓰기 위한 구조나 효율성 등을 제한(조언? 정도로 이해) 하지 않는다.

 

반면에 프레임워크는 제작자가 차후 사용자들의 편의성과 효율성을 고려하여 제작자가 '이걸 토대로 만드세요'하고 기반코드를 만들어 놓는다. 사용자들은 이를 이용해 쉽게 덧붙이고 바꾸면서 자신의 프로그램을 만들면 된다. 하지만 제작자가 있는 만큼 제작자가 설계한 구조를 유지하면서 확장해야 한다. 이를 위해 제작자에 의한 의도된 제약사항들이 존재하는 것!( 라이브러리와 달리 애플리케이션의 틀과 구조를 결정하고, 개발된 코드까지 제어한다. )

 

SUMMARY

1. 라이브러리는 유용한 기능들을 뽑아 모아놓은 도서관

2. 프레임워크는 설계를 위한 기반코드 + 라이브러리

3. 기본설계는 내가할게 기능 구현은 누가 할래?

4. 


개인적인 공부를 토대로 포스팅한 글입니다. 틀린점이나 수정할점이 있다면 알려주세요 : )


 

반응형
Comments