Framework(프레임워크)는 어떤 어플리케이션을 개발하기 위해 필요한 기본적인 클래스와
라이브러리등이 모두 포함되어있는 환경을 의미합니다.
쉽게 생각하자면, FrameWork라는 명칭에서 볼 수 있듯이
Frame(틀 속에서)Work(작업한다)라고 생각하시면 됩니다.
기본적인 도구를 제공하는 환경 속에서 애플리케이션을 만드는 것이죠.
어떤 서비스나 애플리케이션을 개발할때는 공통적으로 사용되는 기능이 있기 마련입니다.
웹 애플리케이션을 예로 들자면 회원 가입/로그인/로그아웃 등의 사용자 관리 기능이 있겠죠?
그런데 하나의 웹 애플리케이션을 만들 때 마다 저런 기능을 계속해서 손수 구현하는것은 정신건강에도 좋지 못할 뿐더러 시간적으로도 상당한 손실입니다. 매번 웹을 만들 때 마다 손수 유효성 검사 코드를 짜고 로그인/아웃 코드를 한 땀 한 땀 코딩한다면..
이러한 상황을 방지할 수 있는게 프레임워크라고 생각하시면 됩니다.
상기한 웹 애플리케이션을 예로 들자면, 사용자 관리 등의 기능을 빠르고 쉽게 구현할 수 있도록 환경을 제공해 주는 것이 프레임워크의 역할입니다.
다만 "환경을 제공한다" 라는 말에서 알 수 있듯, 프레임워크를 이용한 개발을 할 때에는 절대적으로 프레임워크의 룰에 따라야 합니다. 개발자의 입맛대로만 코드를 구성 할 수는 없습니다.
그렇다면 프레임워크와 라이브러리의 차이는 무엇일까요?
둘의 차이는 극명하고도 단순합니다.
라이브러리는 내가 원하는 시점에 라이브러리를 호출해서 사용하는 형태입니다.
즉, 내 코드에 라이브러리가 포함되어있는 형태입니다. 주도권이 개발자에게 있는 것이죠.
하지만 프레임워크는 반대입니다. 프레임워크 속에서 코드를 써 내려가는 형태라고 생각하시면 됩니다.
즉, 프레임워크에게 주도권이 있기 때문에 프레임워크의 룰(가이드라인)을 절대적으로 따라야 합니다.
프레임워크의 장/단점
장점
1. 유지보수가 용이하다.
2. 코드를 재사용하기 쉽다.
3. 개발 시간을 단축시켜주기 때문에 생산성이 높고 안정적이다.
4. 통일성을 보장한다(팀 단위 작업에 유리).
단점
1. 프레임워크에 대한 추가적인 학습을 필요로 하며, 경우에 따라 그 난이도가 높을 수도 있다.
2. 완벽하게 자유로운 코딩을 제한한다.
3. 필요로 하지 않는 기능도 포함되어 있을 수 있기 때문에 전체적인 애플리케이션의 용량이 증가한다.
'웹개발' 카테고리의 다른 글
HTTP(Hypertext Transfer Protocol)란? (0) | 2020.10.23 |
---|---|
CSRF(Cross Site Request Forgery)란? (0) | 2020.10.10 |
XSS(Cross Site Scripting)란? (0) | 2020.10.09 |
서버리스(Serverless)의 개념 (2) | 2020.10.09 |
클라우드 컴퓨팅(Cloud Computing)의 개념 (0) | 2020.10.09 |