프레임워크란?
프레임워크란 소프트웨어의 구체적인 부분에 해당하는 설계와 구현을 가능하게 형태를 제공해주는 것이다. 실생활에서의 예시를 찾아보면 가구 회사에서 자재와 부품들을 자사에서 제작하지 않고 하청 업체들이 제공해주는 것과 같은 원리이다.
IT 개발 환경에서 프레임워크가 필요한 이유는 무엇일까? 코딩의 특성 상 많은 반복과 오류수정이 필연적이다. 이러한 작업에 소요되는 시간을 줄이기 위해서 작업의 틀을 잡고 개발을 시작하면 개발자들의 입장에서는 비용. 시간, 인력을 효율적으로 관리할 수 있게된다. 또한, 공동 프로젝트를 진행할 때 프레임워크라는 공통된 틀이 존재하면 더 효율적인 작업이 가능해진다.
가장 대표적인 프레임워크에는 Java Spring, Django, Flask가 있다. Flask에 대해서는 밑에서 자세하게 살펴볼 것이기 때문에 이 단락에서는 Java Spring과 Django에 대해서 자세하게 살펴보자.
Java Spring은 가장 많이 사용이 되고 있는 프레임워크이다. 대형 프로젝트의 POJO(Plain Old Java Object, Java로 생성하는 순수한 객체를 의미한다) 기반 개발에서도 가장 많이 사용되고, XML(eXtensible Markup Language, W3C에서 개발된 특수한 목적을 갖는 마크업 언어를 만드는데 사용하도록 권장하는 다목적 마크업 언어이다)을 기반으로 한 컴포넌트를 개발하는 것도 가능하다. 또한, 컨테이너를 통해 라이프사이클 관리까지 가능한 프레임워크이다. EJB(Enterprise Java Bean)에 비해서 배우기도 쉽고 POJO를 기반으로 한 특징 때문에 특정 인터페이스에 종속되지 않아서 테스트 하기에도 용이하다.
Django는 스크립트 언어로 간결하고 쉬운 편이다. 이 때문에 개발 시간이 단축된다는 장점이 있다. 또한, 다양한 운영체제에 활용되기 때문에 개발자의 입맛에 맞추는 것이 가능하다. Django의 가장 매력적인 장점은 강력하고 많은 라이브러리라고 할 수 있다. 이는 생산성 향상에 도움을 준다. 또한, 파이썬으로 작성된 웹 프레임워크기 때문에 파이썬의 라이브러리를 사용할 수 있다. 그리고 풀 스택 웹 프레임워크이기 때문에 웹 개발에 필요한 모든 요소를 갖추었다는 특징이 있다.
Spring의 경우 정부에서 오픈소스로 제공을 하기 때문에 스타트업 및 개인이 사용하는데 부담이 없다는 장점이 있다. Django는 최근 빅데이터 및 클라우드 그리고 AI산업의 핵심 언어인 파이썬을 활용하고 있기 때문에 앞으로 필요도가 높아질 것이다.
Flask란?
Flask는 오스트리아의 오픈소스 개발자인 아르민 로나허가 만든 웹어플리케이션 프레임워크이다. Flask는 마이크로 프레임워크로 불린다. 이때 마이크로 프레임워크는 프레임워크를 간결하게 유지하고 확장할 수 있게 만들었다는 의미이다.
Flask의 특징에는 간결성과, 확장성, 자유도가 있다.
간결하다는 뜻은 아주 짧은 코드만으로도 완벽하게 동작하는 웹 프로그램을 만들 수 있다는 것을 의미한다.
Flask는 확장성이 뛰어나다. 또 다른 대표적인 파이썬 웹 프레임워크인 Django와 달리 Flasks는 프레임워크 자체에 폼과 데이터베이스를 처리하는 기능이 포함되어있지 않다. 이러한 기능을 Flask는 확장 모듈을 사용하는 것으로 대신한다. 개발자가 필요한 모듈을 포함시키면서 개발을 하면 되기 때문에 플라스크로 만든 프로젝트는 확장성이 뛰어나면서도 가볍다.
또한, Flask에는 최소한의 규칙이 존재한다. 이 때문에 다른 프레임워크에 비해 개발자는 규칙에서 자유롭다.