[web framework] 웹프레임워크?
다른 공부들도 마찬가지지만 이 분야를 공부하면 공부 할 수록 새로운 용어들을 접하게 된다. 그럴때 마다 대충 넘어가는 것보다 확실히 이해하는 것이 중요하다고 느낀다.
항상 조금이라도 뭔가 쉽게 이해되지않고 걸리는 부분은 확실히 짚고 가능하면 더 깊게 파헤쳐보고 찾아보는 습관을 들이도록 해야겠다.
웹프레임워크..?
일단 프레임워크는 프로그램의 기본적인 구조, 뼈대라는 의미를 가진다.
모든 구조를 처음부터 다 만드는것이 아닌 프레임워크가 설계한 틀 안에서 작업하는 방식이다. 그렇기때문에 프레임워크에 의존하여 개발이 이루어져야 하며 준수해야 할 제약사항이 존재한다.
GoF 디자인패턴으로 유명한 랄프존슨 교수는 "소프트웨어의 구체적인 부분에 해당하는 설계와 구현을 재사용이 가능하게끔 일련의 협업화된 형태로 클래스들을 제공하는 것"
이라 정의하였다.
프레임워크와 라이브러리의 개념이 비슷하지만 확실히 다른 용어이기 때문에 혼동하지않도록 주의해야한다.
라이브러리는 재사용이 가능하며, 자주쓰이는 기능들을 필요하면 언제든지 호출하여 사용할 수 있도록 만들어진 유틸(클래스나 메소드)이다.
즉, 프레임워크는 전체적인 흐름을 제어한다. 개발자는 그 흐름안에서 기능구현을 위한 코드들을 작성한다. 라이브러리는 개발자가 전체적인 흐름을 제어하며, 필요시 원하는 도구(라이브러리)를 사용하는 것이다.
프레임워크를 잘 사용하는 것은 중요하다. 개발자가 처음부터 모든것을 다 구현 할 수도 있지만 설계되어진 기반구조에서 자신이 원하는 기능을 구현하기위한 코드를 작성하며 확장시키는 프레임워크를 사용하는것이 시간비용과 코드효율성, 품질, 유지보수에 있어 훨씬 더 유리하다.
웹 애플리케이션을 개발하기 위한 프레임워크를 웹프레임워크라고 한다.
java에는 spring
python에는 django
javascript에는 angulars
등등 많은 종류의 웹프레임워크가 존재한다.
댓글
댓글 쓰기